Oficina de GIFs animados

De Garoa Hacker Clube
Revisão de 11h57min de 6 de março de 2025 por Villares (discussão | contribs)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

Um encontro divertido para interessados em programação com ou sem experiência!

Atividades:

  • Ensinar/aprender como exportar GIFs animados com Python
  • Jogar conversa fora e criar GIFs animados!
  • Referência sobre animações com py5 - Como exportar animações
Olha o mouse.gif

Próxima edição

TBD

Edicões anteriores

Segunda-feira 2/3/2025 15h Carnahacking_2025

Segunda-feira 12/2/2018 15h Carnahacking_2018

Terça 24/5/2016 19h

Sábado 6/2/2016 Carnahacking_2016

Como foi:

Começou lá pelas 19h30...

  • Instalação do Processing e da biblioteca nos computadores
  • Demonstração do exemplo da biblioteca, no Modo Java/Standard
  • Portar um exemplo para o Modo Python (rolou)
  • Exportar GIFs de outros sketchs/exemplos (não rolou)

Carnahacking.gif

Pasta completa do 'sketch' portado para Processing Modo Python pela Yumi: Google Drive: python_Sukita.zip

 """
 Exemplo do uso da biblioteca gifAnimation portado de Processing Java para Processing Python pela Yumi
 na Oficina de GIFs animados do Villares no Carnahaking_2016 - usa imagem Sukita.png na pasta /data
 """

 add_library('gifAnimation')      # usa-se esta sintaxe para importar bibliotecas Java no Python Mode
 rotation = 0.0

 def setup():
   global logo
   logo = loadImage("Sukita.png") # carrega num objeto PImage arquivo da pasta /data
   size(400, 500, P3D)            # canvas OPGL está deprecado, nova constante P3D ativa canvas com 3D
   frameRate(12)
   global gifExport
   gifExport = GifMaker(this, "exportsukita.gif") # (this é p/ bibl. Java, "arquivo que vai ser exportado")
   gifExport.setRepeat(0)                         # número de loops no GIF exportado, ou 0 = loopa infinitamente
   gifExport.setTransparent(0,0,0)                # seta R, G, B da cor transparente (alpha) no GIF

 def draw():
   background(0)
   translate(width/2, height/2)
   global rotation
   rotation+=0.12
   rotateY(rotation)
   image(logo, -logo.width/2,-logo.height/2)
   gifExport.setDelay(1)          # seta delay do frame no GIF exportado
   gifExport.addFrame()           # põe um frame do canvas atual no GIF sendo exportado

 def keyPressed():       # se apertada uma tecla no teclado
   gifExport.finish()    # termina a exportação do GIF
   print("gif saved")



O que é Processing?

Processing é uma plataforma livre/aberta de programação criada em 2001 por Casey Reas e Ben Fry, largamente utilizada por artistas e para o ensino de programação num contexto visual. O Processing IDE (da sigla em inglês para ambiente integrado de desenvolvimento – simplificando, um editor de texto para código) pode ser baixado em https://www.processing.org (curiosamente ele deu origem ao IDE do Arduino).

A versão 'standard' do Processing é uma linguagem baseada em Java, mas hoje existem outros projetos da Fundação Processing como P5*JS (baseado em JavaScript). Durante algum tempo foi mantido o Processing Modo Python, baseado em Jython 2.7, que não tem mais um mantenedor nem atualizações.

Outras ferramentas de programação incorporaram o vocabulário e/ou a infraestrutura gráfica do Processing como por exemplo py5 (https://py5coding.org) uma biblioteca/framework para programação criativa em Python 3.