Diese Klasse implementiert ein Bild als Image. Der Bildinhalt wird im Prozessspeicher gespeichert, nicht im Anzeigeserver wie ein Picture.
Um einzelne Pixelwerte zu erhalten oder zu setzen, können Sie die Klasse Image als zweidimensionales Array behandeln: Image[x,y] würde sich auf das Pixel an der Position (x, y) innerhalb des Bildes beziehen. Alle Methoden verändern das Bild und geben sich selbst zurück. Für die Methode Copy() jedoch trifft das nicht zu.
Die Klasse Image verfügt über diese zwei Integer-Konstanten:
Konstante | Wert | Beschreibung |
---|---|---|
Standard | 0 | Diese Konstante repräsentiert ein Bild, dessen Pixel im ARGB-Format kodiert sind. Jedes Pixel wird mit vier Bytes im Speicher kodiert. Das erste Byte ist die Alphakomponente, wobei 0 völlig transparent und 255 völlig undurchsichtig ist. Das zweite Byte ist die Rotkomponente. Das dritte Byte ist die Grünkomponente. Das vierte Byte ist die Blaukomponente. |
Premultiplied | 1 | Diese Konstante repräsentiert ein Bild, dessen Pixel im vormultiplizierten ARGB-Format kodiert sind. Jedes Pixel wird mit vier Bytes im Speicher kodiert. Das erste Byte ist die Alphakomponente, wobei 0 völlig transparent und 255 völlig undurchsichtig ist. Das zweite Byte ist die Rotkomponente, die bereits mit der Alphakomponente dividiert durch 255 multipliziert wurde. Das dritte Byte ist der Grünanteil, bereits multipliziert mit der Alphakomponente geteilt durch 255. Das vierte Byte ist die Blaukomponente, bereits multipliziert mit der Alphakomponente geteilt durch 255. |
Tabelle 23.4.2.3.1 : Konstanten der Klasse Image
Die statische Eigenschaft Debug legt den Debugging-Modus fest oder gibt den boolschen Wert zurück, ob der Debugging-Modus aktiviert ist oder nicht. Wenn der Debugging-Modus aktiviert ist, wird bei jeder internen Bildkonvertierung eine Meldung auf der Standardfehlerausgabe angezeigt.
Die Klasse Image (gb.image) hat diese Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Data | Pointer | Gibt einen Zeiger auf die Bilddaten zurück. |
Depth | Integer | Liefert die Tiefe des Bildes in Bits zurück. |
Format | String | Gibt das interne Bildformat als String zurück. Der Format-String kann „RGBA“, „ARGB“, „BGRA“ usw. sein. |
Height or H | Integer | Gibt die Höhe des Bildes zurück (Einheit Pixel). |
Width or W | Integer | Gibt die Breite des Bildes zurück (Einheit Pixel). |
Pixels | Integer[ ] | Seit Gambas-Version 3.5. Gibt eine Kopie der Farben der Bildpixel als Array von 32-Bit-Ganzzahlen zurück. |
Tabelle 23.4.2.3.2 : Eigenschaften der Klasse Image
Hinweise
Die Klasse Image verfügt über diese Methoden:
Methode | Rückgabetyp | Beschreibung |
---|---|---|
BeginBalance ( ) | Image | Seit Gambas-Version 3.5. Start einer globalen Bildbalance. Alle Aufrufe der folgenden Methoden: Helligkeit, Kontrast, Sättigung, Helligkeit, Farbton und Gamma werden aufgeschoben, bis die Methode EndBalance aufgerufen wird. Die Gruppierung des Abgleichs auf diese Weise ist schneller, als jede Methode einzeln aufzurufen. |
EndBalance ( ) | Image | Seit Gambas-Version3.5. Beendet einen globalen Bildabgleich. Die Gruppierung der Balance mit BeginBalance() und EndBalance() ist schneller, als jede Methode - siehe BeginBalance() - einzeln aufzurufen. |
Brightness ( Brightness As Float ) | Image | Seit Gambas-Version 3.5. Passt die Bildhelligkeit an. Brightness ist eine Zahl zwischen -1.0 und +1.0. Ist sie 0.0, wird nichts verändert. |
Clear ( ) | - | Leert das Bild. |
Colorize ( Color As Integer ) | Image | Färbt den Bildinhalt unter Verwendung der angegebenen Farbe ein. Es werden nur der Farbton und die Sättigung verwendet. Die Value-Komponente bleibt unverändert. |
Contrast ( Contrast As Float ) | Image | Seit Gambas-Version 3.5. Stellt den Bildkontrast ein. Contrast ist eine Zahl zwischen -1,0 und +1,0. Bei einem Wert von 0,0 wird nichts verändert. |
Copy ( [ X As Integer, Y As Integer, Width As Integer, Height As Integer ] ) | Image | Gibt eine Kopie des Bildes oder eine Kopie eines Teils des Bildes zurück. |
Desaturate ( ) | Image | Entsättigt ein Bild; wandelt es in Graustufen um. |
DrawAlpha ( Image As Image [ , X As Integer, Y As Integer, SrcX As Integer, SrcY As Integer, SrcWidth As Integer, SrcHeight As Integer ] ) | Image | Kopiert den Alphakanal von Image in das aktuelle Bild. X, Y sind das Ziel der Kopie. Die Vorgabe ist der Ursprung des aktuellen Bildes. SrcX, SrcY, SrcWidth, SrcHeight bestimmen den zu kopierenden Teil von Image. Standardmäßig wird das gesamte Bild kopiert. |
DrawImage ( Image As Image [ , X As Integer, Y As Integer, Width As Integer, Height As Integer, SrcX As Integer, SrcY As Integer, SrcWidth As Integer, SrcHeight As Integer ] ) | Image | Kopiert das Bild innerhalb des aktuellen Bildes. X, Y ist der Zielort der Zeichnung. Standardmäßig ist dies der Ursprung des aktuellen Bildes. Width, Height sind die Abmessungen der Kopie. |
Erase ( [ Color As Integer ] ) | Image | Erzeugt einen Alphakanal im Bild, indem es die angegebene Farbe löscht. Standardmäßig wird die weiße Farbe verwendet. |
Fill ( Color As Integer ) | Image | Füllt das Bild mit der angegebenen Farbe. |
FillRect ( X As Integer, Y As Integer, Width As Integer, Height As Integer, Color As Integer ) | Image | Füllt im Bild das definierte Rechteck mit der angegebenen Farbe. X, Y, Width, Height definieren das zu füllende Rechteck. Color ist die Füllfarbe und kann auch eine transparente Farbe sein. |
Fuzzy ( [ Radius As Integer ] ) | Image | Verwischt ein Bild und gibt sich selbst zurück. Radius ist der Unschärferadius in Pixeln (standardmäßig 8). Wenn der Radius kleiner oder gleich 0 oder größer oder gleich 256 ist, bewirkt die Methode nichts. |
Gamma ( Gamma As Float ) | Image | Seit Gambas-Version 3.5. Passt das Gamma des Bildes an. Gamma ist eine Zahl zwischen -1,0 und +1,0. Bei einem Wert von 0,0 wird nichts verändert. |
Gray ( ) | Image | Konvertiert ein Bild in Graustufen. |
Hue ( Hue As Float ) | Image | Seit Gambas-Version 3.5. Passt den Farbton des Bildes an. Der Hue ist eine Zahl zwischen -1,0 und +1,0. Bei einem Wert von 0,0 wird nichts verändert. |
Invert ( [ KeepHue As Boolean ] ) | Image | Invertiert ein Bild und gibt es zurück. Wenn KeepHue TRUE ist, wird die Farbtonkomponente der Farbe beibehalten. Wenn KeepHue FALSE ist (Standardeinstellung), werden alle Farbkomponenten invertiert. |
Lightness ( Lightness As Float ) | Image | Seit Gambas-Version 3.5. Passt die Helligkeit des Bildes an. Lightness ist eine Zahl zwischen -1,0 und +1,0. Bei einem Wert von 0,0 wird nichts verändert. |
Mask ( Color As Integer ) | Image | Multipliziert jede Farbkomponente eines jeden Pixels mit der Farbkomponente der angegebenen Farbe. |
Mirror ( Horizontal As Boolean, Vertical As Boolean ) | Image | Gibt das vertikal und/oder horizontal gespiegelte Bild zurück. |
Opacity ( Opacity As Float ) | Image | Seit Gambas-Version 3.2. Ändert die Deckkraft eines Bildes. Opacity ist der Multiplikationsfaktor der Deckkraft zwischen 0 und 1. Ist er 0, so wird das Bild vollständig transparent. Ist er gleich 1, bleibt die Deckkraft unverändert. |
Replace ( OldColor As Integer, NewColor As Integer [ , NotEqual As Boolean ] ) | Image | Ersetzt eine Farbe durch eine andere. |
Resize ( Width As Integer, Height As Integer ) | Image | Ändert die Größe des Bildes. Der Bildinhalt wird ausgeschnitten, jedoch nicht gedehnt oder erweitert. |
RotateLeft ( ) | Image | Seit Gambas-Version 3.3. Dreht ein Bild um 90° nach links und gibt es zurück. |
RotateRight ( ) | Image | Seit Gambas-Version 3.3. Dreht ein Bild um 90° nach rechts und gibt es zurück. |
Saturation ( Saturation As Float ) | Image | Seit Gambas-Version 3.5. Passt die Sättigung des Bildes an. Saturation ist eine Zahl zwischen -1,0 und +1,0. Bei einem Wert von 0,0 wird nichts geändert. |
Transparent ( [ Color As Integer ] ) | Image | Macht das Bild mit der angegebenen Farbe transparent. Je näher eine Pixelfarbe an der angegebenen Farbe liegt, desto transparenter wird sie. Wird der optionale Parameter nicht angegeben, wird sie als weiß angenommen. |
Tabelle 23.4.2.3.3 : Methoden der Klasse Form
Hinweise
Für einige der o.a. Methoden der Klasse Image (gb.image) wird Ihnen je ein Beispiel präsentiert. Wenn die Methoden Parameter verwenden, dann werden diese und die Bilder – das originale und das geänderte – angezeigt. Ergänzend wird der jeweils verwendete Quelltext in Auszügen angegeben.
Beispiel 1 – Methode Image.Desaturate()
Die Methode wandelt das Original in ein Graustufen-Bild um. Beachten Sie: Die Methode Gray() gilt als veraltet und sollte durch die Methode Desaturate() ersetzt werden.
Abbildung 23.4.2.3.1: Methode Desaturate()
Quelltext-Ausschnitt
Public Sub btnDoGray_Click() lblChanged.Text = "C H A N G E D >> " & "G R A Y S C A L E ( )" '-- imgChanged = imgOriginal.Gray() '-- Warning: Image.Gray is deprecated, use Image.Desaturate instead. imgChanged = imgOriginal.Desaturate() pboxChanged.Picture = imgChanged.Picture End
Beispiel 2 – Methoden-Mix
In diesem Beispiel werden 6 Methoden eingesetzt, die nacheinander das Original manipulieren:
Abbildung 23.4.2.3.2: Methoden_Mix (Balance)
Quelltext-Ausschnitt
Public Sub btnDoBalanceMix_Click() imgChanged = imgOriginal imgChanged = imgChanged.Brightness(-0.2) imgChanged = imgChanged.Contrast(0.4) imgChanged = imgChanged.Saturation(-0.1) imgChanged = imgChanged.Lightness(0.3) imgChanged = imgChanged.Hue(-0.4) imgChanged = imgChanged.Gamma(-0.33) pboxChanged.Picture = imgChanged.Picture End
Beispiel 3 – Methode Image.Implode(…)
Die Methode verleiht dem Original einen Effekt, der den Bildinhalt mittig zu implodieren scheint:
Abbildung 23.4.2.3.3: Methode Implode()
Quelltext-Ausschnitt
lblChanged.Text = "C H A N G E D >> " & "I M P L O D E (...)" lblValue.Text = hSliderV.Value / 100 imgChanged = imgOriginal.Implode(hSliderV.Value / 100, Color.Red) pboxChanged.Picture = imgChanged.Picture