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)

  1. //FFSubmenu=Test
  2. //FFName=Gedreht einfügen
  3. //Idee und Realisation : Walter Wichmann (Walter-46) im Februar 2012
  4.  
  5. var xx=FF_GetImagewidth();var yy=FF_GetImageheight();
  6. FF_PushImage();FF_PushImage();
  7.  
  8. //********** Maske erstellen : Innen schwarz + Außen weiss für Mixbild B ****
  9.  
  10. FF_NewImage(xx, yy, 16777215);FF_Rotate(17,0,255); FF_HQScale(xx/3, yy/3,1)
  11. var xk=FF_GetImagewidth();var yk=FF_GetImageheight();
  12.  
  13. FF_ExtendCanvas((xx-xk)/2-3,(xx-xk)/2-3, (yy-yk)/2-3,(yy-yk)/2-3 ,255,0,0)
  14. FF_ExtendCanvas(3,3,3,3,128,0,64)
  15. FF_HQScale(xx, yy,0);
  16.  
  17. FF_PushImage();FF_SpectralSaturation(360,350, 0);
  18. FF_Diff();FF_Monochrome(1,1,1);FF_Autocontrast();
  19.  
  20. FF_Negate();FF_Killmask();FF_Putmask();FF_PopImage();
  21.  
  22. //********** Mixbild A vorbereiten : kleines Bild innen + Umgebung schwarz *****
  23.  
  24. FF_PopImage(); FF_Rotate(17,0,0); FF_HQScale(xx/3, yy/3,1)
  25. FF_ExtendCanvas((xx-xk)/2,(xx-xk)/2, (yy-yk)/2,(yy-yk)/2 ,0,0,0)
  26. FF_HQScale(xx, yy,0);
  27.  
  28. //********** Mixbild B vorbereiten *******************************
  29.  
  30. FF_SwapImage();FF_rgbgamma(0,1,0.5,0,0, 0,1,0.5,0,0, 0,1,0.5,0,0)
  31.  
  32. FF_MixImage(0,0,xx,yy,-1); // addieren
  33.  
  34. FF_PopImage();
  35. 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.

  1. 'FFSubmenu=Test
  2. 'FFName=Gedreht einfügen
  3.  
  4. 'Idee und Realisation als Javaskript: Walter Wichmann (Walter-46) im Februar 2012
  5.  
  6. 'Gekürzt durch Nutzung der Produktion von schwarzen Flächen mit den
  7. 'Befehlen 'FF_Rotate' und 'FF_ExtendCanvas'
  8. 'und übersetzt in ein VB-Skript: Harald Maeckler (Mecki14) im Februar 2012
  9. '---------------------------------------------------------------------------
  10. Option Explicit
  11. const dw = -30 'Drehwinkel, kann auch negativ sein
  12. const vk = 1 'Verkleinerung 1:vk (vk >= 1)
  13. Dim xx,yy,xk,yk
  14. '---------------------------------------------------------------------------
  15. xx=FF_GetImagewidth
  16. yy=FF_GetImageheight
  17. FF_PushImage
  18. FF_PushImage
  19.  
  20. '********** Maske erstellen : Innen weiß + Außen schwarz für Mixbild B *****
  21.  
  22. FF_NewImage xx, yy, 16777215 'Neues Bild mit Originalmaße in weiß
  23. FF_Rotate dw,0,0 'Drehen ohne Beschnitt, Hintergrund schwarz
  24. FF_HQScale xx/vk, yy/vk,true 'Verkleinern um Verkleinerungsfaktor
  25. ' dabei Seitenverhältnis beibehalten
  26. xk = FF_GetImagewidth
  27. yk = FF_GetImageheight
  28.  
  29. FF_ExtendCanvas (xx-xk)/2,(xx-xk)/2,(yy-yk)/2,(yy-yk)/2,0,0,0 'Erweitern um schwarz auf Originalmaße
  30. FF_HQScale xx,yy,false 'Skalieren auf Originalmaße
  31.  
  32. FF_Putmask
  33.  
  34. '********** Mixbild A vorbereiten : kleines Bild innen + Umgebung schwarz *****
  35.  
  36. FF_PopImage 'Originalbild nach oben holen
  37. FF_Rotate dw,0,0 'Drehen ohne Beschnitt, Hintergrund schwarz
  38. FF_HQScale xx/vk,yy/vk,true 'Verkleinern um Verkleinerungsfaktor
  39. FF_ExtendCanvas (xx-xk)/2,(xx-xk)/2,(yy-yk)/2,(yy-yk)/2,0,0,0 'Erweitern um schwarz auf Originalmaße
  40. FF_HQScale xx, yy,false 'Skalieren auf Originalmaße
  41. ' ohne Rücksicht auf das Seitenverhältnis
  42. '********** Mixbild B vorbereiten und addieren *********************************
  43.  
  44. FF_SwapImage 'Original nach oben /verkl. Bild nach unten
  45. FF_rgbgamma 0,1,0.5,0,0, 0,1,0.5,0,0, 0,1,0.5,0,0 'Tonwertkorrektur + Begrenzung
  46.  
  47. FF_MixImage 0,0,xx,yy,-1 'Addition der beiden Bilder
  48.  
  49. FF_PopImage
  50. FF_Reload
  51.  
  52. '---------------------------------------------------------------------------
  53.