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.
Installazione
Basta decomprimere il pacchetto nello stesso folder di Project DogWaffle.
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)
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, 50)
if 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
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
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!