meta data for this page
Transparenz
Die Möglichkeit Transparenz in FF-Skripten zu verwenden, soll an einem Skriptbeispiel gezeigt werden.
Walter Wichmann (Walter-46) hat ein Javaskript geschrieben, mit dem ein Bild verkleinert und gedreht in das Originalbild eingefügt wird.
- Dazu wird eine Maske in der Größe des Originalbildes mit schwarzem Hintergrund erstellt, in der ein weißes, gedrehtes Rechteck in der verkleinerten Größe des Bildes eingefügt ist.
- Dann wird das Originalbild verkleinert und gedreht.
- Nach Tonwertkorrektur werden die beiden Bilder addiert.
Gedreht einfügen (js)
//FFSubmenu=Test //FFName=Gedreht einfügen //Idee und Realisation : Walter Wichmann (Walter-46) im Februar 2012 var xx=FF_GetImagewidth();var yy=FF_GetImageheight(); FF_PushImage();FF_PushImage(); //********** Maske erstellen : Innen schwarz + Außen weiss für Mixbild B **** FF_NewImage(xx, yy, 16777215);FF_Rotate(17,0,255); FF_HQScale(xx/3, yy/3,1) var xk=FF_GetImagewidth();var yk=FF_GetImageheight(); FF_ExtendCanvas((xx-xk)/2-3,(xx-xk)/2-3, (yy-yk)/2-3,(yy-yk)/2-3 ,255,0,0) FF_ExtendCanvas(3,3,3,3,128,0,64) FF_HQScale(xx, yy,0); FF_PushImage();FF_SpectralSaturation(360,350, 0); FF_Diff();FF_Monochrome(1,1,1);FF_Autocontrast(); FF_Negate();FF_Killmask();FF_Putmask();FF_PopImage(); //********** Mixbild A vorbereiten : kleines Bild innen + Umgebung schwarz ***** FF_PopImage(); FF_Rotate(17,0,0); FF_HQScale(xx/3, yy/3,1) FF_ExtendCanvas((xx-xk)/2,(xx-xk)/2, (yy-yk)/2,(yy-yk)/2 ,0,0,0) FF_HQScale(xx, yy,0); //********** Mixbild B vorbereiten ******************************* FF_SwapImage();FF_rgbgamma(0,1,0.5,0,0, 0,1,0.5,0,0, 0,1,0.5,0,0) FF_MixImage(0,0,xx,yy,-1); // addieren FF_PopImage(); FF_Reload();
Gedreht einfügen (vbs)
Und hier noch die vbs-Version. Bei der wurden die Möglichkeiten mit den Befehlen 'FF_Rotate' und 'FF_ExtendCanvas' direkt schwarze Flächen zu erzeugen, genutzt und so das Skript etwas gekürzt. Außerdem wurden dem Drehwinkel und dem Verkleinerungsfaktor Konstanten zugewiesen, so dass mit diesen Werten experimentiert werden kann.
'FFSubmenu=Test 'FFName=Gedreht einfügen 'Idee und Realisation als Javaskript: Walter Wichmann (Walter-46) im Februar 2012 'Gekürzt durch Nutzung der Produktion von schwarzen Flächen mit den 'Befehlen 'FF_Rotate' und 'FF_ExtendCanvas' 'und übersetzt in ein VB-Skript: Harald Maeckler (Mecki14) im Februar 2012 '--------------------------------------------------------------------------- Option Explicit const dw = -30 'Drehwinkel, kann auch negativ sein const vk = 1 'Verkleinerung 1:vk (vk >= 1) Dim xx,yy,xk,yk '--------------------------------------------------------------------------- xx=FF_GetImagewidth yy=FF_GetImageheight FF_PushImage FF_PushImage '********** Maske erstellen : Innen weiß + Außen schwarz für Mixbild B ***** FF_NewImage xx, yy, 16777215 'Neues Bild mit Originalmaße in weiß FF_Rotate dw,0,0 'Drehen ohne Beschnitt, Hintergrund schwarz FF_HQScale xx/vk, yy/vk,true 'Verkleinern um Verkleinerungsfaktor ' dabei Seitenverhältnis beibehalten xk = FF_GetImagewidth yk = FF_GetImageheight FF_ExtendCanvas (xx-xk)/2,(xx-xk)/2,(yy-yk)/2,(yy-yk)/2,0,0,0 'Erweitern um schwarz auf Originalmaße FF_HQScale xx,yy,false 'Skalieren auf Originalmaße FF_Putmask '********** Mixbild A vorbereiten : kleines Bild innen + Umgebung schwarz ***** FF_PopImage 'Originalbild nach oben holen FF_Rotate dw,0,0 'Drehen ohne Beschnitt, Hintergrund schwarz FF_HQScale xx/vk,yy/vk,true 'Verkleinern um Verkleinerungsfaktor FF_ExtendCanvas (xx-xk)/2,(xx-xk)/2,(yy-yk)/2,(yy-yk)/2,0,0,0 'Erweitern um schwarz auf Originalmaße FF_HQScale xx, yy,false 'Skalieren auf Originalmaße ' ohne Rücksicht auf das Seitenverhältnis '********** Mixbild B vorbereiten und addieren ********************************* FF_SwapImage 'Original nach oben /verkl. Bild nach unten FF_rgbgamma 0,1,0.5,0,0, 0,1,0.5,0,0, 0,1,0.5,0,0 'Tonwertkorrektur + Begrenzung FF_MixImage 0,0,xx,yy,-1 'Addition der beiden Bilder FF_PopImage FF_Reload '---------------------------------------------------------------------------