Aritm.plugin - proměnné a výrazy |
Význam parametrů v aritmetickém modulu
I1, I2 .. Ix pořadové číslo obrázku. Pořadí se určuje podle toho, jak jsou obrázky seřazeny ve spodním okně (přesunout do požadovaného pořadí je můžete tahem doleva se stisknutým pravým tlačítkem)
Barvy: jsou určeny ve vzorci v decimálním tvaru #RRGGBB (podobně jako kód barvy v HTML). Barva se dá vložit kliknutím na barevné tlačítko
Celočíselné hodnoty - musí se povinně psát na klávesnici a musí být v rozmezí -2147483647 a +2147483647 (přesnost 32 bitů)
4 obvyklé operátory + - * / Jako u normálních matematických operací má i zde násobení a dělení přednost před sčítáním/odčítáním
Dělení nulou není považováno za chybu a jsou dosazena následující "nekonečná" čísla
Je-li N > 0: N/0 je +2147483647
Je-li N < 0: N/0 je -2147483647
Je-li N = 0: N/0 je 0
mocnina: ^ umožňuje získat čtverec, krychli
modulo: MOD umožňuje získat zbytek po dělení
6 srovnávacích operátorů : = < > < > < = > = Jsou obzvláště užitečné s funkcí IF Operátor vrací 255 (bílá), když je podmínka pravdivá a 0 (černá) když není.
Logické nebo binární funkce: and, or, xor, not Jsou zvlášť užitečné pro funkci If.
Závorky - fungují stejně jako v tradičních matematických vzorcích
Komentáře - začínají dvěma lomítky // na každém řádku
Jiné Funkce
Max(x1.., xn) Vezme maximum z argumentu pro každou barevnou komponentu RGB
Např: Max(#FF0000, #00FF00, #0000FF) dává # FFFFFF
Min(x1...,yn) Vezme minimum z argumentů pro každou z komponent RGB.
Např: Min(#00FFFF, #FF00FF, #FFFF00) dá #000000
MaxLum(x1...,yn) Dává nejjasnější barvu
např: MaxLum(#FF0000, #80FF00) dá #80FF00
MinLum(x1...,yn) Dává nejméně jasnou barvu
Např: MinLum(#FF0000, #80FF00) dá # FF0000 Avg(x1...,yn) < = > (x1+... +yn)/n
AvgRGB(x) vrací průměr ze 3 složek RGB, což umožní transformovat barevný obrázek na černobílý
Lum(x) vrací jas 3 komponent RGB podle vzorce 0.299R + 0.587G + 0.114B
RGB2HSL(x) konvertuje RGB na ekvivalent HSL
HSL2RGB(x) konvertuje HSL na ekvivalent RGB
RGB2YUV(x) konvertuje RGB na ekvivalent YUV
YUV2RGB(x) konvertuje YUV na ekvivalent RGB
R(x) odkaz na červenou barvu
G(x) zelená
B(x) modrá
Abs(x) Odkaz na absolutní hodnotu barvy při porovnání obrázků ??
Root(x[,N ]) n tá odmocnina z x (není-li n určeno, jedná se o druhou odmocninu) ??
If(<podmínka>, <pravda>, <nepravda >) tato funkce umožňuje dělat podmíněné testy na bodech obrázku
Např: If(I1>I2, #FF0000, #00FF00) dává červenou a zelenou z obrázku nebo červené body představují body z I1, které jsou jasnější než ty v I2 a nebo zelené body představují ty body z I1, které jsou méně (nebo stejně) jasné jako ty v I2.
X(x) Koordináty na X, umožňuje horizontální výřezy
Y(x) koordináty na Y umožňuje vertikální výřezy
W(x) šířka obrázku (užitečné pro inverzi horizontálního výřezu) ??
H(x) výška obrázku e (užitečné pro inverzi vertikálního výřezu)
Stretch(x, y) změna rozměrů obrázku X na rozměry obrázku Y (např stretch (I1,I2) způsobí, že z obrázku I1 se vyrobí nový obrázek ořezaný na rozměry obrázku I2). Taky se dá napsat stretch(Ix, šířka, výška)
BStretch(x, y) identické s stretch ale s bilineárním filtrováním ??.
Tile(x, y) obrázek x se "vydláždí" na rozměry obrázku y.
Scroll(x, dx, Dy) Umožní posunout obrázek o určitý počet pixelů Co zmizí na jedné straně, objeví se na druhé
-dx je horizontální posun (záporný je doleva, kladný doprava)
-Dy je vertikální posun (záporný nahoru, kladný dolů)
Ten posun nemusí být nutně stejný pro všechny body nebo komponenty obrázku
Např: Scroll(I1, W(I1)/2, H(I1)/2) Posune obrázek tak, že ho rozdělí na 4 kusy a přeskládá na rohy 4 rohy
Např: Scroll(I1,Y(I1),0) progresivní posun řady, první není posunuta, poslední nejvyšší je posunuta o obrázek - 1)
Např: Scroll(I1, -x(i1), -y(i1)): Velikost obrázku se podělí dvěma a pak se vyplní, jako by to byl vzor
AlphaBlend(x vzor, y, mask, max) AlphaBlending používá obrázek X a obrázek Y a masku a specifikované maximum pro invertování masky.
Např: AlphaBlend(I1, I2, X(I1), W(I1)) dělá umělecké prolínání obrázků I1 a I2
Proměnné
proměnné umožňují rozdělit komplexní výrazy na několik částí. To také umožňuje vyhnout se otravnému opakovanému zápisu nějaké operace a zrychluje to výpočet. Proměnné musí začínat písmenem nebo _ . Pak mohou být použita i čísla.
Deklarace proměnné: < Název proměnné>:<Výraz >;
Použití proměnné: < Název proměnné >
Různé informace
Všechny operace s obrázky se provádějí v režimu 32 bitů pro každou složku RGB. Operace jsou aplikovány individuálně na každou z 3 komponent. Celé číslo je považováno za barvu nebo jsou všechny komponenty identické (úroveň šedi)
Např: celé číslo 10 je ekvivalent barvy # 0A0A0A.
Když se operace vztahuje ke 2 obrázkům různé velikosti, jsou rozměry obrázků upraveny na největší velikost
Když je detekována chyba ve výrazu, indikuje chybová zpráva tu část výrazu, která je špatně (nebo je tam neočekávaný řetězec) a je nabídnut seznam možností. Na špatnou část se umístí kurzor
Mezery, tabulátory a konce řádků lze použít na oddělení prvků výrazu (např I1 + I2)