práce s alfa kanály

usage

usage: alf < alf.in
format souboru alf.in je pochopitelný z následujícího příkladu:

#
# za znakem '#' je komentář, az do konce řádku
#
-x 1024 # x-velikost obrazků (implicitně x= 256) 
-y 111  # y-velikost obrazků (=256)

#
# vysledek1.rgba - vysledný obrázek (můze být shodny se vstupními)
# a.rgba  - vstupní obrázek
# A darken ro - ztmavení obrázku A 
#                

vysledek.rgba= a.rgba darken (20 + 3 * 7) ;

#
# operatory typu obrazek-float.
#
# <RGB,A> darken ro = <ro * RGB,A>
# <RGB,A> fade delta = <delta * RGB, delta * A> 
# <RGB,A> opaque omega = <RGB, omega * A>
# <RBG,A> alfa new_alfa = <RGB, new_alfa>
#
# pozn cislo je v procentech takze vetsinou v mezích <0,100>

#
# operatory typu obrazek-obrazek
#
# 		Fa	Fb	preklad
# a atop b	Ab	1 - Aa	na povrchu
# a xor b	1 - Ab	1 - Aa	mimo
# a over b	1	1 - Aa	pres
# a in b	Ab	0	v
# a heldout b	1 - A2	0	mimo
# a plus b	1	1	plus:)
#
# <RGBa, Aa> op <RGBb, Ab> =
# <RGBa * Fa * Aa + RGBb * Fb * Ab, Aa * Fa + Ab + Fb>
#

#
# pro vytvaření sekvencí obrázku, lze zadat interval
#

-s  1 # prvni frame (implicitně -1)
-e  30 # posledni frame (implictně -1)

# v číselných vyrazech pak lze pouzit promene %f %F %t
# %f právě provaděný frame
# %F počet framesů celkem
# %t čas,  %t= %f / %F

# prolnutí dvou obrázku je pak následně.
# (budou vytvoreny obrázky prolnuti001.rgba ... prolnuti030.rgba)

prolnuti.rgba= (a.rgba fade %t) plus (b.rgba fade (100 - %t));

# poznamka k formatu rgba: 
# jde o velice raw format,
# pokud ma obrazek 16x16 je prvnich 256(= 16*16) byte cervena slozka
# pak 256B zelene, potom 256B modre, 256B alfy obvykle nasleduje
# (pokud konec souboru chybi je doplnen 255-kami).
# 
# format rgba se ziska snadno napr pomoci programu convert
#
# $ convert a.jpg a.rgba
#
# inverzni operace (je nutno uvest rozmery):
#
# $ convert -size 256x256 out.rgba out.jpg


ukázky

vstupy

výchozí obrázky

muhamed al chorezmi; [a.jpg]
státní hrad bouzov; [b.jpg]
jejich alfy:
ma.jpg
mb.jpg

výstupy

a in (a alfa 100); [ainaa.jpg]
b in (b alfa 100); [binbb.jpg]
a xor b; [axorb.jpg]
a heldout b; [ahelb.jpg]
a over ( b alfa 100 ); [axorb.jpg]
b atop a; [batoa.jpg]
b fade 50; [afad50.jpg]
(a alfa 100) in b [aainb.jpg];

prolnutí

(aa fade %t) plus (bb fade (100 - %t));[aprob50.mpg]

alf.tar zdrojaky, poslední verze

./* adresar ve kterem je alf vyvíjen

alf binarka, zkompilovane na ulabu-1 :-(

slide přenasky j.pelikána pokud se chcete více dozvědět o kompozici obrázků pomocí alfa kanálu.

tento program je volně siřitelný dle pravidel GPL. ( viz též: gplcz.html gpl.html, )

__________________ @;;
[ home | oprava | tabor | spoluzaci | kolega kacenka| cimrman ]
vitas's mail: vstr4611@barbora.ms.mff.cuni.cz