FG Bildvariablen und -Infos mit [cX.Bild(ID).X]:
Mit diesen Platzhaltern können Bilder verwaltet und analysiert werden.
Wird als Parameter zu dem Platzhalter ein Bilddateiname bzw. eine Bildquelle angegeben, etwa [cX.Bild(ID).Breite(C:\Test.jpg)], wird dieses Bild in die gegebene Bildvariable geladen und kann darin weiter verarbeitet werden. Dies kann auch durch einfaches Setzen von [cX.Bild(ID)] auf die Bildquelle stattfinden.
Jeder weitere Zugriff auf die [cX.Bild(ID).X]-Platzhalter ohne Bildquellen-Parameter betrifft dann das geladene Bild.
Die Angabe der ID ist optional, wird aber benötigt, wenn mehrere Bilder gleichzeitig verwaltet oder per Bildquelle ausgelesen werden sollen.
Zugriffe ohne ID betreffen immer das zuletzt geladene Bild, unabhängig davon, in welchem Zusammenhang es geladen worden ist.
Das Bild aus einer Bildvariablen mit ID kann über die Bildquelle %Bild(ID)% verwendet werden.
Folgende Platzhalter stehen als [cX.Bild(ID).X] bzw. [cX.Bild(ID).X Bilddateiname] zur Verfügung:
.Abblenden | Setzen auf Richtung;Farbe;Deckung blendet das Bild von einer zur anderen Seite aus, mit Schwarz bzw. der angegebenen Farbe (bzw. Hintergrundfarbe des Referenzelements) als Zielfarbe. Für Richtung kann stehen: 0=unten nach oben, 1=oben nach unten, 2=rechts nach links, 3=links nach rechts. Die Deckung gibt den Deckungsgrad des Ziels in % an (Standard=100%) |
.Drehen | Setzen auf einen der folgenden Werte rotiert bzw. spiegelt das Bild: 1, 90: 90° nach rechts 2, 180: 180° 3, 270: 90° nach links 4: Spiegeln X 5: Spiegeln Y 6: Spiegeln X und Y |
.Einzelbild | Stellt das Bild aus dem als Index angegebenen Einzelbild (1 bis .Einzelbilder) dar (z.B. bei animierten GIF-Dateien) |
.Einzelbilder | Liefert die Anzahl der in dem Bild enthaltenen Einzelbilder (z.B. bei animierten GIF-Dateien) |
.Breite | Bildbreite ermitteln |
.Höhe | Bildhöhe ermitteln |
.Neu(Breite;Höhe) | Erstellt ein neues Bild mit der angegebenen Größe. Optional kann auch noch die gewünschte Hintergrundfarbe als 3. Parameter angegeben werden. |
.Laden(Bild) | angegebenes Bild in Bildvariable (wahlweise mit ID, z.B. [cX.Bild(ID).Laden(%ICON%)]) laden; Ergebnis 1 bei Erfolg |
.Löschen | Bildvariable ID löschen |
.Farbe(X;Y) | Farbwert an Position X;Y (0-basiert, also oben links ist 0;0) Siehe auch [cX.Farbe.X] |
.Base64 | liest/schreibt die Bilddaten als JPG-Datenstrom im Base64-Format Hinweise: - Der bei diesen beiden Platzhaltern verwendete Datenstrom entspricht Dateiinhalt einer JPG-Datei - dieses Verfahren kommt ohne temporäre Dateierstellung aus und ist daher recht schnell - diese Daten können auch als Bildquelle %AUSJPGBASE64(xxx)% verwendet werden |
.Speichern(X) | Bild unter dem angegebenen Dateinamen speichern (Setzen auf Dateiname, z.B. C:\Temp\Test.jpg) Optional kann als Parameter ein Dateiformat angegeben werden: bmp (Standard), emf, exif, gif, ico, jpg, png, tif, wmf oder bei einem numerischen Wert die Qualität des Ergebnisses (JPG-Format) von 0 (höchste Kompression) bis 100 (keine Kompression) |
.Suchen(Farbe;Toleranz) | Sucht die angegebene Farbe im Bild und liefert die Pixelkoordinaten zurück. Optional kann eine Farbtoleranz angegeben werden (0...255 oder in %), die bei der Farbsuche berücksichtigt werden soll. Wird die Toleranz mit vorangesetztem - angegeben, wird das erste Pixel gesucht, das NICHT der Zielfarbe entspricht. |
.Nummer | Bildhandle ermitteln, wenn das Bild eine geladene Bitmap ist (z.B. für DLL-Funktionen - siehe [cX.System.DLLAufruf]) |
.Zeile | bzw. |
.Spalte | liefert Pixelfarben als Liste dezimal oder Hex ([cX.Bild.ZeileH] bzw. [cX.Bild.SpalteH]) |
Bildbearbeitung:
.Beschneiden | Setzen auf X;Y;X2;Y2 (alle Angaben optional) schneidet das Rechteck von X/Y bis X2/Y2 aus dem Bild aus |
.Effekt | Bildeffekt auf enthaltenes Bild anwenden durch Setzen auf Effektnummer;Effektparameter Effekte siehe auch Bildquellen: 1: Graustufen. 2: Invertiert, 3: deaktivierte Darstellung (nicht bei TrueColor-Bildern), 4: gerastert, 5: Helligkeit: 5;Helligkeit in % (+-100) oder 5; Rot%;Grün%;Blau%; Hintergrundfarbe, 6: gespiegelt hor. und/oder vert.: 6;X (X=0/1 = hor, 2=vert, 3=beides), 7: gedreht: 7;X dreht um x Grad im Uhrzeigersinn, wahlweise weiterer Parameter mit Hintergrundfarbe Beispiel: [cX.Bild().Effekt]=2 invertiert das Bild. |
.Farbsättigung | Stellt die Farbsättigung des Bildes ein (0=Graustufen, größer als 0=Sättigung, kleiner als 0=Farben invertieren |
.Helligkeit | Verändert die Helligkeit des Bildes von -100 (schwarz) über 0 (unverändert) bis 100 (weiß) |
.Kontrast | Setzt den Kontrast in % (unter 100=schwacher Kontrast, 100=normal, über100=starker Kontrast) |
.Mischen(Alpha) | Einmischen des angegebenen Bildes in das aktuelle Bild. Als Parameter kann der Mischungsfaktor in % angegeben werden von 0 (nicht sichtbar) bis 100 (deckend) |
.Skalieren | Setzen auf Prozentwert (z.B. "10%") oder neue Breite skaliert das Bild (Höhe wird angepasst). |
EXIF-Daten:
.Exif(Tag) | Auslesen oder Ändern (nur Textwerte) von EXIF-Metadaten aus JPG-Dateien Das Ergebnis ist der Exif-Tag (Kamera- und Bildinformationen bei JPG-Bildern) mit dem angegebenen Index, falls im Bild enthalten. Beispiele: 36867=Originaldatum, 50709=Kameramodell, 37378=Blende, 33434=Belichtung in Sekunden Die in JPG-Dateien enthaltenen EXIF-Daten variieren je nach Kameramodell. Tag-Nr.=-1 liefert eine Liste der vorhandenen Tag-IDs. Tag-Nr.=0 liefert die Anzahl der Einträge. Wird der Dateiname nicht angegeben, wird die zuletzt verwendete Datei verwendet (schneller bei mehrfachen Zugriffen auf ein Bild). Im Internet finden sich übersichtliche Tabellen mit möglichen Infos (Suche z.B. nach EXIF TAGS LISTE), etwa https://exiv2.org/tags.html. |
Beispiel:
Setze in [Bildname]: '%ICON%'
Anzeigefenster 'Bilder-Test' (B=110, H=60, Aktivieren)
*** Bildvariable setzen Setze in [Erfolg]: '[cX.Bild(Test).Laden([Bildname])]' Anzeige-Element Bild: '%Bild(Test)%' (ID='Bild1', X=1, Y=1, B=50, H=50)
*** Bild in [BildText] serialisieren Setze in [BildText]: '[cX.Bild.InBase64(%Bild1%)]' *** und wieder auslesen/anzeigen Anzeige-Element Bild: '%AusBase64([BildText])%' (ID='Bild2', X=51, Y=1, B=50, H=50)
*** Bildinfos in Titel anzeigen Anzeigefenster 'Bilder-Test: Typ=[cX.Bild(Test).Typ], Breite=[cX.Bild(Test).Breite]'
Warte endlos... |
Das Beispielskript zeigt den Einsatz einer Bildvariablen für das Zwischenspeichern eines Bildes sowie dessen Serialisierung und Informationsermittlung.
cX-Webseite: http://www.clickexe.net