Mudanças entre as edições de "Oficina de GIFs animados"

De Garoa Hacker Clube
Ir para navegação Ir para pesquisar
Linha 25: Linha 25:
 
[https://drive.google.com/file/d/0B1vJ6aH--6MJQUFqVDNueGROMUdCazZXWDlUTF9tWHU4WDlN/view?usp=sharing Google Drive: python_Sukita.zip]
 
[https://drive.google.com/file/d/0B1vJ6aH--6MJQUFqVDNueGROMUdCazZXWDlUTF9tWHU4WDlN/view?usp=sharing Google Drive: python_Sukita.zip]
   
  +
<code>
<syntaxhighlight lang="Python">
 
   
"""
+
"""
Exemplo portado de Processing Java para Processing Python pela Yumi
+
Exemplo portado de Processing Java para Processing Python pela Yumi
na Oficina de GIFs animados do Villares no Carnahaking_2016
+
na Oficina de GIFs animados do Villares no Carnahaking_2016
"""
+
"""
   
add_library('gifAnimation') # usa-se esta sintaxe para importar bibliotecas Java no Python Mode
+
add_library('gifAnimation') # usa-se esta sintaxe para importar bibliotecas Java no Python Mode
 
rotation = 0.0
   
 
def setup():
rotation = 0.0
 
 
global logo
 
 
logo = loadImage("Sukita.png") # carrega num objeto PImage arquivo da pasta /data
def setup():
 
 
size(400, 500, P3D) # canvas OPGL está deprecado, nova constante P3D ativa canvas com 3D
global logo
 
 
frameRate(12)
logo = loadImage("Sukita.png") # carrega num objeto PImage arquivo da pasta /data
 
 
global gifExport
size(400, 500, P3D) # canvas OPGL está deprecado, nova constante P3D ativa canvas com 3D
 
 
gifExport = GifMaker(this, "exportsukita.gif") # (this é p/ bibl. Java, "arquivo que exporta")
frameRate(12)
 
 
gifExport.setRepeat(0) # número de loops no GIF exportado, ou 0 = loopa infinitamente
global gifExport
 
 
gifExport.setTransparent(0,0,0) # seta R, G, B da cor transparente (alpha) no GIF
gifExport = GifMaker(this, "exportsukita.gif") # (this é p/ bibl. Java, "arquivo que exporta")
 
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():
+
def draw():
background(0)
+
background(0)
translate(width/2, height/2)
+
translate(width/2, height/2)
global rotation
+
global rotation
rotation+=0.12
+
rotation+=0.12
rotateY(rotation)
+
rotateY(rotation)
image(logo, -logo.width/2,-logo.height/2)
+
image(logo, -logo.width/2,-logo.height/2)
gifExport.setDelay(1) # seta delay do frame no GIF exportado
+
gifExport.setDelay(1) # seta delay do frame no GIF exportado
gifExport.addFrame() # põe um frame do canvas atual no GIF sendo exportado
+
gifExport.addFrame() # põe um frame do canvas atual no GIF sendo exportado
   
def keyPressed(): # se apertada uma tecla no teclado
+
def keyPressed(): # se apertada uma tecla no teclado
gifExport.finish() # termina a exportação do GIF
+
gifExport.finish() # termina a exportação do GIF
print("gif saved")
+
print("gif saved")
  +
</code>
</syntaxhighlight>
 

Edição das 18h39min de 12 de fevereiro de 2016

Carnahacking.gif

Primeira edição: Carnahacking_2016 Sábado 6/2 à 18h

Começou lá pelas 19h30...

Atividades:

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

Foi usado Processing (http://processing.org) e o Processing Python Mode (http://py.processing.org)

O IDE Processing pode ser baixado em http://processing.org/download

Biblioteca gifAnimation para Processing 1.0 e 2.0 http://extrapixel.github.io/gif-animation/

Biblioteca gifAnimation para Processing 3.0 https://github.com/01010101/GifAnimation ou Google Drive: gifAnimation.zzz(renomeie .zzz -> .zip)

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

 """
 Exemplo portado de Processing Java para Processing Python pela Yumi
 na Oficina de GIFs animados do Villares no Carnahaking_2016
 """
 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 exporta")
   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")