Oficina de Desenho

20 July 2007 - 18:06   

A Oficina de Desenho é um software de desenho parecido com o Paint, leve e com recursos básicos de edição e manipulação de imagens, é programada em python e utiliza biblioteca gráfica PyGTK. Ela está sendo adaptada para o XO por uma equipe do NATE.

Clique na imagem abaixo para ver um Screen-shot da Oficina rodando no Sugar:

Entre as dificuldades para programar, uma das maiores foi a baixa velocidade de processamento dos objetos do tipo lista em python. Isto trazia problemas por exemplo para a função de preenchimento que era baseada no algoritmo Flood Fill e executava muito lentamente. Então decidiu-se utilizar um binding de C para esta função, já que C tem lista mais eficiente e de complexidade de ordem menor.

A estrutura básica de widgets do gtk é uma área de desenho (gtk.DrawingArea) com dois pixmaps, um temporário que não aparece na tela e é utilizado para receber modificações e outro que é o original e mostra a situação final do desenho. Os outros widgets, como toolbox, button, frame entre outros, interagem com a área de desenho enviando sinais para desenhar retas, formas pré-definidas (shapes), aplicar efeitos na imagem etc.

Na atividade, as ferramentas Undo e Redo copiam pixmaps a cada alteração que o usuário faz no desenho. Os pixmaps guardam informações da imagem que deve ser desenhada. Tendo todos os pixmaps da imagem armazenados, a ferramenta Undo ou Redo pode desfazer ou refazer qualquer parte perdida do desenho e recuperar informações de maneira muito eficaz.

A Oficina de Desenho encontra-se em estágio final de desenvolvimento e a equipe do NATE se orgulha do nível que a atividade está alcançando.

Para mais informações, visite http://wiki.laptop.org/go/Oficina_de_Desenho.

Categorias: Programação, PyGTK, Python | Sem Comentários »


Obtendo valores de pixels de uma imagem através de pygtk

20 June 2007 - 23:54   

PyGTK é uma bliblioteca que serve para desenvolver interfaces gráficas em python.

Tudo que você precisa saber (ou quase tudo) está em www.pygtk.org.

Como trabalhar com manipulação de imagens não é um dos objetivos do pygtk, os meios para conseguir o valor de um pixel em um determinado ponto de uma imagem são bem precários.

No programa manipulador.py o meio mais curto que encontrei para conseguir isto é mostrado!

Sempre que possível, utilize o PIL para manipulação de imagens.

Categorias: CookBook, PyGTK, Python, Tutoriais | Sem Comentários »


Editor Musical

30 March 2007 - 2:07   

No próximo mês, devo trabalhar na finalização do Editor Musical para o XO.

http://wiki.laptop.org/go/Editor_Musical

O que falta:
* Reescrever pedaços do código da interface gráfica para rodar como atividade no sugar
* Começar a programar os módulos de som com o CSound
* Compartilhamento de atividade pela mesh

Categorias: Programação, PyGTK, Python | Sem Comentários »