SlideShare une entreprise Scribd logo
1  sur  34
Automaçãode Aplicativos:scripting com Python Prof. Fabio AlexandreSpanhol
Linguagem de Script Linguagem que permite controlar aplicações Também chamada de linguagem de extensão Normalmente  distinta do código principal da aplicação Usada por usuários finais Interpretada  a partir do código-fonte ou bytecodes Prof. Fabio Alexandre Spanhol, M.Sc. 2
Tipos de Linguagens de Script Controle de Lote e shell AppleScript+Cocoa, Command, bash, powershell, etc. GUI Linguagens de macro Específicas de Aplicação Autolisp, QuakeC, etc. Prof. Fabio Alexandre Spanhol, M.Sc. 3
Tipos de Linguagens de Script Navegadores Web Javascript, XUL (Mozilla) Processamento de Texto AWK, Perl, re, etc. Propósito Geral Python, Perl, Ruby, etc. Prof. Fabio Alexandre Spanhol, M.Sc. 4
Tipos de Linguagens de Script Extensão/Embarcáveis Substituir linguagens de script específicas de aplicação flexibilização O desenvolvedor da aplicação inclui hooks para que a linguagem de script externa possa controlar a aplicação alvo Python, Lua, Javascript, Tcl, MEL (AutodeskMaya 3D) Prof. Fabio Alexandre Spanhol, M.Sc. 5
Python? é uma linguagem  interpretada  interativa  funcional orientada a objetos  dinamicamente tipada com gerenciamento automático de memória  Similar, em certos aspectos, a Perl, Ruby, Scheme, Smalltalk e Tcl 6 Prof. Fabio Alexandre Spanhol, M.Sc.
Python, onde obter? Python foi desenvolvido como um projeto open source, sem fins lucrativos e gerenciado pela PSF (Python Software Foundation) Para obter o interpretador python acessar http://www.python.org/download/  7 Prof. Fabio Alexandre Spanhol, M.Sc.
Aplicação Web e Internet  Database GUIs Científico e processamento numérico Educação Programação de rede  Construção e teste de software Desenvolvimento de jogos e renderização 3D Onde mais sua imaginação mandar! Prof. Fabio Alexandre Spanhol, M.Sc. 8
Quem usa? http://www.python.org/about/success/ Google NASA Yahoo InfoSeek MCI Worldcom IBM  Higway Industrial Light and Magic AstraZeneca Honeywell 9 Prof. Fabio Alexandre Spanhol, M.Sc.
Também no Brasil Governo Federal Petrobras Serpro Embratel Globo.com StarOne Conectiva CPqD Async Haxent UTFPR 10 Prof. Fabio Alexandre Spanhol, M.Sc.
Por que Python? De altíssimo nível e poderosa Elegante, com sintaxe simples e concisa Fácil de aprender, “cabe” no seu cérebro  Multiparadigma: Funcional, Procedural e Orientado a Objetos Possui suporte nativo a estruturas de dados complexas 11 Prof. Fabio Alexandre Spanhol, M.Sc.
Extensa biblioteca padrão Um módulo para o que você precisar sys, random, re, datetime, calendar, csv, os, webbrowser, string, urlib, Tkinter, codecs, pickle, types, array, mutex, queue, zlib, gzip, md5, thread, socket, email, xml.dom, locale, etc. Python possui “baterias incluídas”! 12 Prof. Fabio Alexandre Spanhol, M.Sc.
O GIMP GNU ImageManipulationProgram Ferramentas para edição e processamento de imagens GPL Multiplataforma Trata múltiplas camadas Processamento em lote de imagens Retoque de fotos digitais Composição Conversão de formatos Autoração Etc. Prof. Fabio Alexandre Spanhol, M.Sc. 13
O GIMP Prof. Fabio Alexandre Spanhol, M.Sc. 14
O GIMP Expansível e extensível Projetado para ser estendido com plug-ins e extensões para praticamente qualquer propósito De tarefas simples a processamento complexo de imagem Prof. Fabio Alexandre Spanhol, M.Sc. 15
Console script-fu A customização “tradicional” é com um dialeto de Scheme Disponível a console script-fu Prof. Fabio Alexandre Spanhol, M.Sc. 16
GIMP & Python Prof. Fabio Alexandre Spanhol, M.Sc. 17 O GIMP pode ser customizado com python também Disponível uma console python Também permite a execução de scripts que podem ser registrados e incorporados ao aplicativo
Console Python no GIMP Prof. Fabio Alexandre Spanhol, M.Sc. 18
O que é necessário? GIMP 2.4.7 ou superior (www.gimp.org) Python (www.python.org) GTK (www.gtk.org) PyGTK (www.pygtk.org) PyObject PyCairo (http://www.cairographics.org/pycairo/) Prof. Fabio Alexandre Spanhol, M.Sc. 19
GTK GTK é um toolkitmulti-plataforma para a criação de interfaces gráficas desenvolvido para o GIMP Juntamente com QT são os dois conjuntos de widgets mais usados no X É GPL e muito popular, p.ex. GNOME Escrito em C, mas com projeto OO Bindings para C, C++, Pascal, Perl, Java, Ruby, PHP, Lua, C#; e claro, Python Prof. Fabio Alexandre Spanhol, M.Sc. 20
PyGTK Prof. Fabio Alexandre Spanhol, M.Sc. 21 PyGTK é um wrapperpara python criado por James Henstridge construído sobre o GTK Permite facilmente a criação de GUI usando python Multiplataforma ótimo desempenho  elementos ricos  visual agradável Licença LGPL
PyCairo PyCairo é um conjunto de bindings python para a bibliotecagráficacairo Cairo é uma biblioteca gráfica 2D com suporte para múltiplos dispositivos de saída Atualmente suporta X Window System, Quartz, Win32, image buffers, PostScript, PDF, e arquivo SVG Prof. Fabio Alexandre Spanhol, M.Sc. 22
Importando módulos  o módulo gimpfu provê uma interface simples para escrever plugins, similar ao script-fu Fornece a GUI paraentrada de parâmetros no modointerativo e realizaalgumaschecagens no registro do plugin Com "from gimpfu import *", é um modo simples de obtertodosossímbolos no namespace Prof. Fabio Alexandre Spanhol, M.Sc. 23
Importando módulos A maior parte da extensão está em gimp, importando junto com gimpfu gimpenums é um conjunto de constantes úteis também importadas automaticamente com gimpfu A variável pdb é a variável para acessar a procedural database É importada para o namespace do plugin juntamente com o gimpfu Prof. Fabio Alexandre Spanhol, M.Sc. 24
A Procedural DataBase (PDB) A PDB é um registro de coisasque o gimp e ospluginspodemfazer Quando se instala a procedure de um plugin, se estáextendendo a PDB É  auto-documentada, quando se instalauma procedure, também se instala a documentaçãodamesma, dos seusparâmetros e retornos PDB Browser plugin (no menu Help) consulta a documentação Prof. Fabio Alexandre Spanhol, M.Sc. 25
A Procedural DataBase (PDB) Prof. Fabio Alexandre Spanhol, M.Sc. 26
A Procedural DataBase (PDB) No script a PDB pode ser consultada com o método pdb.query(name, [blurb, [help, [author, [copyright, [date, [type]]]]]]) Cada parâmetro é uma expressão-regular Retorna uma lista com os nomes das procedures com matchings bem sucedido >>> pdb.query(‘rect’) Chamando sem parâmetros, serão devolvidas todas as procedures da PDB Prof. Fabio Alexandre Spanhol, M.Sc. 27
A Procedural DataBase (PDB) Procedures podem ser acessadascomo procedures outratandopdbcomo um objeto de mapeamento gimp_edit_fillpode ser acessadacomopdb.gimp_edit_filloucomopdb[‘gimp_edit_fill’] A segunda forma é principalmenteutilizadaparanomesinválidosem Python Prof. Fabio Alexandre Spanhol, M.Sc. 28
Plug-ins Os pluginsescritosem python podem ser armazenadosem ~/.gimp-2.n/plug-ins  Setar o script comoexecutável Prof. Fabio Alexandre Spanhol, M.Sc. 29
Plug-ins Tipos de entrada Prof. Fabio Alexandre Spanhol, M.Sc. 30
Estrutura do Plug-inPython Prof. Fabio Alexandre Spanhol, M.Sc. 31
Questões ???? Prof. Fabio Alexandre Spanhol, M.Sc. 32
Prof. Fabio Alexandre Spanhol, M.Sc. 33
Contato Prof. Fabio Alexandre Spanhol faspanhol@gmail.com faspanhol@utfpr.edu.br Prof. Fabio Alexandre Spanhol, M.Sc. 34

Contenu connexe

Tendances

Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em PythonRodrigo Hübner
 
Seminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonSeminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonGiancarlo Silva
 
Python como primeira linguagem de programação
Python como primeira linguagem de programaçãoPython como primeira linguagem de programação
Python como primeira linguagem de programaçãoSimples Consultoria
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonPriscila Mayumi
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e TkCarlos Campani
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação PythonCarlos Schults
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do GoogleLuciano Ramalho
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoLuciano Ramalho
 
Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando PythonHelio Loureiro
 
CoGrOO 4.0 no FISL 13
CoGrOO 4.0 no FISL 13CoGrOO 4.0 no FISL 13
CoGrOO 4.0 no FISL 13William Colen
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores RubyEric Hideki
 

Tendances (20)

Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
 
Seminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonSeminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem Python
 
Python como primeira linguagem de programação
Python como primeira linguagem de programaçãoPython como primeira linguagem de programação
Python como primeira linguagem de programação
 
Python WTFAQ?
Python WTFAQ?Python WTFAQ?
Python WTFAQ?
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação Python
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
 
Canivete suíço do Python
Canivete suíço do PythonCanivete suíço do Python
Canivete suíço do Python
 
Hello, Python!
Hello, Python!Hello, Python!
Hello, Python!
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação Python
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Mini Curso Python
Mini Curso PythonMini Curso Python
Mini Curso Python
 
Arduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojoArduino: hardware hacking & coding dojo
Arduino: hardware hacking & coding dojo
 
Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando Python
 
Como tornar-se um programador Python melhor
Como tornar-se um programador Python melhorComo tornar-se um programador Python melhor
Como tornar-se um programador Python melhor
 
Calourada2010
Calourada2010Calourada2010
Calourada2010
 
Python para Programadores
Python para ProgramadoresPython para Programadores
Python para Programadores
 
Python 3k
Python 3kPython 3k
Python 3k
 
CoGrOO 4.0 no FISL 13
CoGrOO 4.0 no FISL 13CoGrOO 4.0 no FISL 13
CoGrOO 4.0 no FISL 13
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores Ruby
 

En vedette

CLASE 5 GRUPOS DE GOOGLE
CLASE 5 GRUPOS DE GOOGLECLASE 5 GRUPOS DE GOOGLE
CLASE 5 GRUPOS DE GOOGLEluvicaypa
 
Grm presentation (working 1)
Grm presentation (working 1)Grm presentation (working 1)
Grm presentation (working 1)koehle26
 
Presentación nº 5 microsoft word y sus aplicaciones
Presentación nº 5 microsoft  word y sus aplicacionesPresentación nº 5 microsoft  word y sus aplicaciones
Presentación nº 5 microsoft word y sus aplicacionesClaudio Pradenas
 

En vedette (7)

Fase9
Fase9Fase9
Fase9
 
Cronogramas De Atividades Do Op
Cronogramas De Atividades Do OpCronogramas De Atividades Do Op
Cronogramas De Atividades Do Op
 
CLASE 5 GRUPOS DE GOOGLE
CLASE 5 GRUPOS DE GOOGLECLASE 5 GRUPOS DE GOOGLE
CLASE 5 GRUPOS DE GOOGLE
 
Grm presentation (working 1)
Grm presentation (working 1)Grm presentation (working 1)
Grm presentation (working 1)
 
Demeure
DemeureDemeure
Demeure
 
Justiça Premium - Ignite Portugal
Justiça Premium - Ignite PortugalJustiça Premium - Ignite Portugal
Justiça Premium - Ignite Portugal
 
Presentación nº 5 microsoft word y sus aplicaciones
Presentación nº 5 microsoft  word y sus aplicacionesPresentación nº 5 microsoft  word y sus aplicaciones
Presentación nº 5 microsoft word y sus aplicaciones
 

Similaire à Automação Python GIMP

Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + PythonMateus Padua
 
Apostila php
Apostila phpApostila php
Apostila phpfelgamer
 
Apostila básica de PHP
Apostila básica de PHPApostila básica de PHP
Apostila básica de PHPKratos879
 
python_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfpython_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfProfIvanSaboia
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeAlessandro Binhara
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6 Fabio Spanhol
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6Fabio Spanhol
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação PythonJunior Sobrenome
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsHelio Colombe
 
Python Training #1 - ed5
Python Training #1 - ed5Python Training #1 - ed5
Python Training #1 - ed5Fabio Spanhol
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonAlvaro Oliveira
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porteFelipe Ribeiro
 
Gerenciando aspectos e eventos com Zend Framework 2
Gerenciando aspectos e eventos com Zend Framework 2Gerenciando aspectos e eventos com Zend Framework 2
Gerenciando aspectos e eventos com Zend Framework 2Flávio Lisboa
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)Rudá Moura
 

Similaire à Automação Python GIMP (20)

Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
Apostila php
Apostila phpApostila php
Apostila php
 
Apostila básica de PHP
Apostila básica de PHPApostila básica de PHP
Apostila básica de PHP
 
python_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfpython_para_desenvolvedores.pdf
python_para_desenvolvedores.pdf
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente Mainframe
 
Iniciando com django
Iniciando com djangoIniciando com django
Iniciando com django
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6
 
Linguagem Python
Linguagem PythonLinguagem Python
Linguagem Python
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação Python
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - Português
 
aula5_python.pdf
aula5_python.pdfaula5_python.pdf
aula5_python.pdf
 
Comparativo do uso de linguagens de programação e geradores de código no dese...
Comparativo do uso de linguagens de programação e geradores de código no dese...Comparativo do uso de linguagens de programação e geradores de código no dese...
Comparativo do uso de linguagens de programação e geradores de código no dese...
 
Isc aula 7
Isc   aula 7Isc   aula 7
Isc aula 7
 
Python Zope Plone - Fiocruz
Python Zope Plone - FiocruzPython Zope Plone - Fiocruz
Python Zope Plone - Fiocruz
 
Python Training #1 - ed5
Python Training #1 - ed5Python Training #1 - ed5
Python Training #1 - ed5
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porte
 
Gerenciando aspectos e eventos com Zend Framework 2
Gerenciando aspectos e eventos com Zend Framework 2Gerenciando aspectos e eventos com Zend Framework 2
Gerenciando aspectos e eventos com Zend Framework 2
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)
 

Plus de Fabio Spanhol

Classificação Automatizada de Câncer de Mama - Imagens Histopatológicas
Classificação Automatizada de Câncer de Mama - Imagens HistopatológicasClassificação Automatizada de Câncer de Mama - Imagens Histopatológicas
Classificação Automatizada de Câncer de Mama - Imagens HistopatológicasFabio Spanhol
 
Quem Tem Medo do Terminal?
Quem Tem Medo do Terminal?Quem Tem Medo do Terminal?
Quem Tem Medo do Terminal?Fabio Spanhol
 
Python Training #0.5 ed. 7
Python Training #0.5 ed. 7Python Training #0.5 ed. 7
Python Training #0.5 ed. 7Fabio Spanhol
 
Aprendizado Profundo & CNNs
Aprendizado Profundo & CNNsAprendizado Profundo & CNNs
Aprendizado Profundo & CNNsFabio Spanhol
 
Linguagem C 01 - Tópicos Introdutórios
Linguagem C 01 - Tópicos IntrodutóriosLinguagem C 01 - Tópicos Introdutórios
Linguagem C 01 - Tópicos IntrodutóriosFabio Spanhol
 
Mostrando a Cobra - Breve Introdução à Linguagem Python
Mostrando a Cobra - Breve Introdução à Linguagem Python Mostrando a Cobra - Breve Introdução à Linguagem Python
Mostrando a Cobra - Breve Introdução à Linguagem Python Fabio Spanhol
 
Python Training #1 - ed4
Python Training #1 - ed4Python Training #1 - ed4
Python Training #1 - ed4Fabio Spanhol
 
ENEM - Exame Nacional do Ensino Médio
ENEM - Exame Nacional do Ensino MédioENEM - Exame Nacional do Ensino Médio
ENEM - Exame Nacional do Ensino MédioFabio Spanhol
 
Paradigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoParadigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoFabio Spanhol
 
Elaboração e Gerenciamento de Projetos
Elaboração e Gerenciamento de Projetos Elaboração e Gerenciamento de Projetos
Elaboração e Gerenciamento de Projetos Fabio Spanhol
 
XML-RPC: Tópicos Introdutórios
XML-RPC: Tópicos IntrodutóriosXML-RPC: Tópicos Introdutórios
XML-RPC: Tópicos IntrodutóriosFabio Spanhol
 
Tutorial Python ed. #2
Tutorial Python ed. #2Tutorial Python ed. #2
Tutorial Python ed. #2Fabio Spanhol
 
Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010Fabio Spanhol
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialFabio Spanhol
 
E essa tal Virtualização?
E essa tal Virtualização?E essa tal Virtualização?
E essa tal Virtualização?Fabio Spanhol
 
"Mostrando a Cobra" - ou Breve Introdução à Linguagem Python
"Mostrando a Cobra" - ou Breve Introdução à Linguagem Python"Mostrando a Cobra" - ou Breve Introdução à Linguagem Python
"Mostrando a Cobra" - ou Breve Introdução à Linguagem PythonFabio Spanhol
 
"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2
"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2
"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2Fabio Spanhol
 

Plus de Fabio Spanhol (19)

Classificação Automatizada de Câncer de Mama - Imagens Histopatológicas
Classificação Automatizada de Câncer de Mama - Imagens HistopatológicasClassificação Automatizada de Câncer de Mama - Imagens Histopatológicas
Classificação Automatizada de Câncer de Mama - Imagens Histopatológicas
 
Quem Tem Medo do Terminal?
Quem Tem Medo do Terminal?Quem Tem Medo do Terminal?
Quem Tem Medo do Terminal?
 
Python Training #0.5 ed. 7
Python Training #0.5 ed. 7Python Training #0.5 ed. 7
Python Training #0.5 ed. 7
 
Aprendizado Profundo & CNNs
Aprendizado Profundo & CNNsAprendizado Profundo & CNNs
Aprendizado Profundo & CNNs
 
Linguagem C 01 - Tópicos Introdutórios
Linguagem C 01 - Tópicos IntrodutóriosLinguagem C 01 - Tópicos Introdutórios
Linguagem C 01 - Tópicos Introdutórios
 
Mostrando a Cobra - Breve Introdução à Linguagem Python
Mostrando a Cobra - Breve Introdução à Linguagem Python Mostrando a Cobra - Breve Introdução à Linguagem Python
Mostrando a Cobra - Breve Introdução à Linguagem Python
 
Python Training #1 - ed4
Python Training #1 - ed4Python Training #1 - ed4
Python Training #1 - ed4
 
Python tutorial-ed3
Python tutorial-ed3Python tutorial-ed3
Python tutorial-ed3
 
ENEM - Exame Nacional do Ensino Médio
ENEM - Exame Nacional do Ensino MédioENEM - Exame Nacional do Ensino Médio
ENEM - Exame Nacional do Ensino Médio
 
Paradigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoParadigmas de Linguagens de Programação
Paradigmas de Linguagens de Programação
 
Elaboração e Gerenciamento de Projetos
Elaboração e Gerenciamento de Projetos Elaboração e Gerenciamento de Projetos
Elaboração e Gerenciamento de Projetos
 
XML-RPC: Tópicos Introdutórios
XML-RPC: Tópicos IntrodutóriosXML-RPC: Tópicos Introdutórios
XML-RPC: Tópicos Introdutórios
 
Tutorial Python ed. #2
Tutorial Python ed. #2Tutorial Python ed. #2
Tutorial Python ed. #2
 
Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo Tutorial
 
Tutorial Python - 1
Tutorial Python - 1Tutorial Python - 1
Tutorial Python - 1
 
E essa tal Virtualização?
E essa tal Virtualização?E essa tal Virtualização?
E essa tal Virtualização?
 
"Mostrando a Cobra" - ou Breve Introdução à Linguagem Python
"Mostrando a Cobra" - ou Breve Introdução à Linguagem Python"Mostrando a Cobra" - ou Breve Introdução à Linguagem Python
"Mostrando a Cobra" - ou Breve Introdução à Linguagem Python
 
"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2
"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2
"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2
 

Automação Python GIMP

  • 1. Automaçãode Aplicativos:scripting com Python Prof. Fabio AlexandreSpanhol
  • 2. Linguagem de Script Linguagem que permite controlar aplicações Também chamada de linguagem de extensão Normalmente distinta do código principal da aplicação Usada por usuários finais Interpretada a partir do código-fonte ou bytecodes Prof. Fabio Alexandre Spanhol, M.Sc. 2
  • 3. Tipos de Linguagens de Script Controle de Lote e shell AppleScript+Cocoa, Command, bash, powershell, etc. GUI Linguagens de macro Específicas de Aplicação Autolisp, QuakeC, etc. Prof. Fabio Alexandre Spanhol, M.Sc. 3
  • 4. Tipos de Linguagens de Script Navegadores Web Javascript, XUL (Mozilla) Processamento de Texto AWK, Perl, re, etc. Propósito Geral Python, Perl, Ruby, etc. Prof. Fabio Alexandre Spanhol, M.Sc. 4
  • 5. Tipos de Linguagens de Script Extensão/Embarcáveis Substituir linguagens de script específicas de aplicação flexibilização O desenvolvedor da aplicação inclui hooks para que a linguagem de script externa possa controlar a aplicação alvo Python, Lua, Javascript, Tcl, MEL (AutodeskMaya 3D) Prof. Fabio Alexandre Spanhol, M.Sc. 5
  • 6. Python? é uma linguagem interpretada interativa funcional orientada a objetos dinamicamente tipada com gerenciamento automático de memória Similar, em certos aspectos, a Perl, Ruby, Scheme, Smalltalk e Tcl 6 Prof. Fabio Alexandre Spanhol, M.Sc.
  • 7. Python, onde obter? Python foi desenvolvido como um projeto open source, sem fins lucrativos e gerenciado pela PSF (Python Software Foundation) Para obter o interpretador python acessar http://www.python.org/download/ 7 Prof. Fabio Alexandre Spanhol, M.Sc.
  • 8. Aplicação Web e Internet Database GUIs Científico e processamento numérico Educação Programação de rede Construção e teste de software Desenvolvimento de jogos e renderização 3D Onde mais sua imaginação mandar! Prof. Fabio Alexandre Spanhol, M.Sc. 8
  • 9. Quem usa? http://www.python.org/about/success/ Google NASA Yahoo InfoSeek MCI Worldcom IBM Higway Industrial Light and Magic AstraZeneca Honeywell 9 Prof. Fabio Alexandre Spanhol, M.Sc.
  • 10. Também no Brasil Governo Federal Petrobras Serpro Embratel Globo.com StarOne Conectiva CPqD Async Haxent UTFPR 10 Prof. Fabio Alexandre Spanhol, M.Sc.
  • 11. Por que Python? De altíssimo nível e poderosa Elegante, com sintaxe simples e concisa Fácil de aprender, “cabe” no seu cérebro  Multiparadigma: Funcional, Procedural e Orientado a Objetos Possui suporte nativo a estruturas de dados complexas 11 Prof. Fabio Alexandre Spanhol, M.Sc.
  • 12. Extensa biblioteca padrão Um módulo para o que você precisar sys, random, re, datetime, calendar, csv, os, webbrowser, string, urlib, Tkinter, codecs, pickle, types, array, mutex, queue, zlib, gzip, md5, thread, socket, email, xml.dom, locale, etc. Python possui “baterias incluídas”! 12 Prof. Fabio Alexandre Spanhol, M.Sc.
  • 13. O GIMP GNU ImageManipulationProgram Ferramentas para edição e processamento de imagens GPL Multiplataforma Trata múltiplas camadas Processamento em lote de imagens Retoque de fotos digitais Composição Conversão de formatos Autoração Etc. Prof. Fabio Alexandre Spanhol, M.Sc. 13
  • 14. O GIMP Prof. Fabio Alexandre Spanhol, M.Sc. 14
  • 15. O GIMP Expansível e extensível Projetado para ser estendido com plug-ins e extensões para praticamente qualquer propósito De tarefas simples a processamento complexo de imagem Prof. Fabio Alexandre Spanhol, M.Sc. 15
  • 16. Console script-fu A customização “tradicional” é com um dialeto de Scheme Disponível a console script-fu Prof. Fabio Alexandre Spanhol, M.Sc. 16
  • 17. GIMP & Python Prof. Fabio Alexandre Spanhol, M.Sc. 17 O GIMP pode ser customizado com python também Disponível uma console python Também permite a execução de scripts que podem ser registrados e incorporados ao aplicativo
  • 18. Console Python no GIMP Prof. Fabio Alexandre Spanhol, M.Sc. 18
  • 19. O que é necessário? GIMP 2.4.7 ou superior (www.gimp.org) Python (www.python.org) GTK (www.gtk.org) PyGTK (www.pygtk.org) PyObject PyCairo (http://www.cairographics.org/pycairo/) Prof. Fabio Alexandre Spanhol, M.Sc. 19
  • 20. GTK GTK é um toolkitmulti-plataforma para a criação de interfaces gráficas desenvolvido para o GIMP Juntamente com QT são os dois conjuntos de widgets mais usados no X É GPL e muito popular, p.ex. GNOME Escrito em C, mas com projeto OO Bindings para C, C++, Pascal, Perl, Java, Ruby, PHP, Lua, C#; e claro, Python Prof. Fabio Alexandre Spanhol, M.Sc. 20
  • 21. PyGTK Prof. Fabio Alexandre Spanhol, M.Sc. 21 PyGTK é um wrapperpara python criado por James Henstridge construído sobre o GTK Permite facilmente a criação de GUI usando python Multiplataforma ótimo desempenho elementos ricos visual agradável Licença LGPL
  • 22. PyCairo PyCairo é um conjunto de bindings python para a bibliotecagráficacairo Cairo é uma biblioteca gráfica 2D com suporte para múltiplos dispositivos de saída Atualmente suporta X Window System, Quartz, Win32, image buffers, PostScript, PDF, e arquivo SVG Prof. Fabio Alexandre Spanhol, M.Sc. 22
  • 23. Importando módulos o módulo gimpfu provê uma interface simples para escrever plugins, similar ao script-fu Fornece a GUI paraentrada de parâmetros no modointerativo e realizaalgumaschecagens no registro do plugin Com "from gimpfu import *", é um modo simples de obtertodosossímbolos no namespace Prof. Fabio Alexandre Spanhol, M.Sc. 23
  • 24. Importando módulos A maior parte da extensão está em gimp, importando junto com gimpfu gimpenums é um conjunto de constantes úteis também importadas automaticamente com gimpfu A variável pdb é a variável para acessar a procedural database É importada para o namespace do plugin juntamente com o gimpfu Prof. Fabio Alexandre Spanhol, M.Sc. 24
  • 25. A Procedural DataBase (PDB) A PDB é um registro de coisasque o gimp e ospluginspodemfazer Quando se instala a procedure de um plugin, se estáextendendo a PDB É auto-documentada, quando se instalauma procedure, também se instala a documentaçãodamesma, dos seusparâmetros e retornos PDB Browser plugin (no menu Help) consulta a documentação Prof. Fabio Alexandre Spanhol, M.Sc. 25
  • 26. A Procedural DataBase (PDB) Prof. Fabio Alexandre Spanhol, M.Sc. 26
  • 27. A Procedural DataBase (PDB) No script a PDB pode ser consultada com o método pdb.query(name, [blurb, [help, [author, [copyright, [date, [type]]]]]]) Cada parâmetro é uma expressão-regular Retorna uma lista com os nomes das procedures com matchings bem sucedido >>> pdb.query(‘rect’) Chamando sem parâmetros, serão devolvidas todas as procedures da PDB Prof. Fabio Alexandre Spanhol, M.Sc. 27
  • 28. A Procedural DataBase (PDB) Procedures podem ser acessadascomo procedures outratandopdbcomo um objeto de mapeamento gimp_edit_fillpode ser acessadacomopdb.gimp_edit_filloucomopdb[‘gimp_edit_fill’] A segunda forma é principalmenteutilizadaparanomesinválidosem Python Prof. Fabio Alexandre Spanhol, M.Sc. 28
  • 29. Plug-ins Os pluginsescritosem python podem ser armazenadosem ~/.gimp-2.n/plug-ins Setar o script comoexecutável Prof. Fabio Alexandre Spanhol, M.Sc. 29
  • 30. Plug-ins Tipos de entrada Prof. Fabio Alexandre Spanhol, M.Sc. 30
  • 31. Estrutura do Plug-inPython Prof. Fabio Alexandre Spanhol, M.Sc. 31
  • 32. Questões ???? Prof. Fabio Alexandre Spanhol, M.Sc. 32
  • 33. Prof. Fabio Alexandre Spanhol, M.Sc. 33
  • 34. Contato Prof. Fabio Alexandre Spanhol faspanhol@gmail.com faspanhol@utfpr.edu.br Prof. Fabio Alexandre Spanhol, M.Sc. 34