Marco Pontello's Home Page
DogLua
This page in English

(Last updated: 30/05/15)
 

 


Project Dogwaffle + The Programming Language Lua

DogLua - Project Dogwaffle Lua scriptable interface

DogLua è un'interfaccia di scripting per Project Dogwaffle, un tool per il disegno e l'animazione di Dan Ritchie. Fornisce un ambiente per la sperimentazione rapida con algoritmi di elaborazione delle immagini, usando Lua come linguaggio di scripting.

DogLua è largamente ispirato a gluas, di OEyvind Kolaas, con cui cerca di essere il più compatibile possibile, offrendo una sintassi molto simili per le funzioni di manipolazione pixel di base.

DogLua main window

Installazione

Basta decomprimere il pacchetto nello stesso folder di Project DogWaffle.

DogLua in the plugin list

gluas compatible API
v = get_value(x, y)
set_value(x, y, v)
r, g, b = get_rgb(x, y)
set_rgb(x, y, r, g, b)
r, g, b, a = get_rgba(x, y)
set_rgba(x, y, r, g, b, a)
h, s, v = get_hsv(x, y)
set_hsv(x, y, h, s, v)
progress(v)
flush()

gluas-like API
y, u, v = get_yuv(x, y)
set_yuv(x, y, y, u, v)
y, i, q = get_yuv(x, y)
set_yiq(x, y, y, i, q)

Project Dogwaffle API
Dog_MessageBox(textline1[, textline2][, textlinen])
Dog_ValueBox(title, caption, min, max, default)
Dog_Refresh()
Dog_GetTotalFrames()
Dog_GetCurrentFrame()
Dog_GotoFrame(n)
Dog_GetBuffer()
Dog_SaveUndo()
Dog_RestoreUndo()
Dog_ShellExe(command_string)

GUI Server API
GUI_SetCaption(Caption)
GUI_AddLogo(filename)
GUI_SetSpacing(x)
GUI_AddControl(Type, Caption, value, min, max, flags)
GUI_OpenPanel()
index, value, string = GUI_WaitOnEvent()
value, string = GUI_GetSettings(index)
GUI_SetSettings(index, value, string)
GUI_SetList(index, value, string)
GUI_ClosePanel()

Ecco un esempio di script per generare un'immagine negativa:


 -- negative (from a gluas sample)   

 for y = 0, height - 1 do
   for x = 0, width - 1 do
     r, g, b = get_rgb(x, y)
     r = 1 - r
     g = 1 - g
     b = 1 - b
     set_rgb(x, y, r, g, b)
   end
   progress(y / height)
 end

Uno script appena più complesso per un effetto threshold con livello selezionabile:


 -- Simple threshold

 level = Dog_ValueBox("Threshold",
         "Choose level", 0, 100, 50if level >= 0 then
   level = level / 100
   for y = 0, height - 1 do
     for x = 0, width - 1 do
       v = get_value(x, y)
       if v > level then
         v = 1.0
       else
         v = 0.0
       end
       set_value(x, y, v)
     end
     progress(y / height)
   end
 end

Altri esempi si possono trovare nella "gluas examples" gallery. La maggior parte di essi può già girare con DogLua, senza nessuna modifica. Altri ottimi script da vedere sono nel tutorial "Image Processing with gluas - introduction to pixel molding" sempre nel sito di gluas.

Ulteriori script si possono trovare nelle pagine di Artweaver; un plugin Lua offre compatibilità a livello di funzioni di manipolazione pixel.

Ultima ma non ultima, nella pagina dedicata a DogLua su The Best 3D si può trovare una galleria di script per una varietà di effetti.

Per i primi passi con Lua, invece, c'è l'ottima sezione Lua Tutorial del lua-users wiki, in aggiunta al sito ufficiale di Lua.

Download

DogLua v0.61b, 196KB ZIP - Mirror alternativo da TheBest3D.com, link

 

Monitor this page!

by ChangeDetect

 

 

Change Log

DogLua v0.61b - 11/09/05:
+ Editor & DogLua runtime ora sono due esegubili separati
+ Ora usa LuaJIT, basato su Lua 5.1
+ Miglioramento generalizzato delle prestazioni, di circa un 3x
+ DogLua riporta eventuali errori nello standard output
+ DogLuaEdit si posiziona sulla linea incriminata in caso di errori
+ Aggiornamento della Progress bar ottimizzato
+ GUI Server: automatismi per l'apertura e chiusura della dialog box
+ GUI Server: GUI_AddLogo() cerca la bitmap nel folder DogLuaScripts se non è specificato nessun path
+ Lua helper: decimal2rgb() per convert i valori ottenuti con GUI_Colorbox()

DogLua v0.59b - 11/09/05:
+ GUI Server API: GUI_SetSpacing, GUI_SetList, GUI_AddLogo
+ Dogwaffle API: Dog_SaveUndo, Dog_RestoreUndo
+ gluas-like API: set_yiq, get_yiq
+ Lua helper: hex() per convertire una stringa hex in un numero
* Modificati i getter & setter per il colorspace YUV

DogLua v0.58b - 05/09/05:
+ gluas-like API: set_yuv, get_yuv (simili alle funzioni gluas, ma per il color space YUV)
+ GUI Server API: GUI_SetCaption, GUI_AddControl, GUI_OpenPanel, GUI_WaitOnEvent, GUI_ClosePanel, GUI_GetSettings, GUI_SetSettings

DogLua v0.57b - 02/09/05:
+ API Dogwaffle: Dog_GetTotalFrames, Dog_GetCurrentFrame, Dog_GotoFrame, Dog_GetBuffer, Dog_ShellExe
* L'alpha veniva considerato anche se non abilitato

DogLua v0.56b - 29/08/05:
+ Info dettagliate riguardo ad eventuali errori Lua
+ gluas API & var: get_hsv, set_hsv, bound_x0, bound_x1, bound_y0, bound_y1
+ Finestra ridimensionabile

DogLua v0.55b - 25/08/05:
+ Progress bar sul pannello dei plugin
+ API Dogwaffle: funzione Dog_ValueBox per gestire l'input dall'utente
+ Aggiunti menu accelerators

DogLua v0.54b - 21/08/05:
+ Possibilità di lanciare uno script (sorgente & bytecode) da linea di comando
* Sistemato un memory leak

DogLua v0.53b - 20/08/05:
+ La voce "New" ora resetta l'ambiente Lua
+ Le funzioni che modificano pixel ora controllano l'alpha channel
* Ora funziona sia con PD Pro che con la versione free

DogLua v0.52b - 18/08/05:
+ API Dogwaffle: Dog_Refresh
+ API gluas compatibile: get_rgba, set_rgba, flush
* La voce "Open file..." ora si apre sul folder corretto

DogLua v0.51b - 16/08/05:
+ Font non proporzionale nella finestra del codice
+ Librerie standard Lua (math, table, strings, etc.) incluse
+ Aggiunta la voce "Save As..." nel menu
- La categoria del plugin passa da "filter" a "misc"

DogLua v0.50b - 15/08/05:
+ Prima versione disponibile!