Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Multimedia

k23:k23.4:k23.4.2:k23.4.2.3:start

23.4.2.3 Klasse Image (gb.image)

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.

23.4.2.3.1 Konstanten

Die Klasse Image verfügt über diese zwei Integer-Konstanten:

KonstanteWertBeschreibung
Standard0Diese 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.
Premultiplied1Diese 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.

23.4.2.3.2 Eigenschaften

Die Klasse Image (gb.image) hat diese Eigenschaften:

EigenschaftDatentypBeschreibung
DataPointerGibt einen Zeiger auf die Bilddaten zurück.
DepthIntegerLiefert die Tiefe des Bildes in Bits zurück.
Format StringGibt das interne Bildformat als String zurück. Der Format-String kann „RGBA“, „ARGB“, „BGRA“ usw. sein.
Height or HIntegerGibt die Höhe des Bildes zurück (Einheit Pixel).
Width or WIntegerGibt 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

  • Pixels: Das Pixelformat der zurückgegebenen Daten hängt davon ab, welches Toolkit oder welche Bibliothek verwendet wird. Um das Pixelformat zu bestimmen, lesen Sie die Eigenschaft Format aus. Das Ändern des zurückgegebenen Arrays hat keine Auswirkungen auf die ursprünglichen Bilddaten.
  • Weitere Informationen zu den Pixelformaten finden Sie unter 'Image Management in Gambas' (https://gambaswiki.org/wiki/doc/imageconv).

23.4.2.3.3 Methoden

Die Klasse Image verfügt über diese Methoden:

MethodeRückgabetypBeschreibung
BeginBalance ( )ImageSeit 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 ( )ImageSeit 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 )ImageSeit 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 )ImageFä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 ) ImageSeit 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 ] )ImageGibt eine Kopie des Bildes oder eine Kopie eines Teils des Bildes zurück.
Desaturate ( )ImageEntsä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 ] )ImageKopiert 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 ] )ImageKopiert 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 ] )ImageErzeugt einen Alphakanal im Bild, indem es die angegebene Farbe löscht. Standardmäßig wird die weiße Farbe verwendet.
Fill ( Color As Integer )ImageFüllt das Bild mit der angegebenen Farbe.
FillRect ( X As Integer, Y As Integer, Width As Integer, Height As Integer, Color As Integer ) ImageFü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 ] )ImageVerwischt 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 )ImageSeit 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 ( ) ImageKonvertiert ein Bild in Graustufen.
Hue ( Hue As Float )ImageSeit 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 ] )ImageInvertiert 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 )ImageSeit 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 )ImageMultipliziert jede Farbkomponente eines jeden Pixels mit der Farbkomponente der angegebenen Farbe.
Mirror ( Horizontal As Boolean, Vertical As Boolean )ImageGibt das vertikal und/oder horizontal gespiegelte Bild zurück.
Opacity ( Opacity As Float )ImageSeit 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 ] )ImageErsetzt 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 ( )ImageSeit Gambas-Version 3.3. Dreht ein Bild um 90° nach links und gibt es zurück.
RotateRight ( )ImageSeit Gambas-Version 3.3. Dreht ein Bild um 90° nach rechts und gibt es zurück.
Saturation ( Saturation As Float )ImageSeit 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 ] )ImageMacht 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

  • DrawImage (…): Wenn W und H sich von SrcWidth, SrcHeight unterscheiden, wird das Quellbild skaliert. SrcX, SrcY, SrcWidth, SrcHeight bestimmen den zu kopierenden Teil des Bildes. Standardmäßig wird das gesamte Bild kopiert.
  • Mask(): Wenn beispielsweise die Rotkomponente von Color 0 ist, wird der Rotwert aller Pixel gelöscht; wenn die Rotkomponente von Color 255 ist, bleibt der Rotwert aller Pixel unverändert; wenn die Rotkomponente zwischen 0 und 255 liegt, wird der Rotwert aller Pixel proportional reduziert. Mit anderen Worten: Pixelanteil = Pixelanteil * Farbanteil / 255. Das gleiche Verfahren gilt für die Blau-, Grün- und Alphakomponente.

23.4.2.3.4 Beispiele

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.

BILD Desaturate

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:

BILD Mix

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:

BILD Implode

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

Download

Die Website verwendet zwei temporäre Session-Cookies. Diese technisch notwendigen Cookies werden gelöscht, wenn der Web-Browser geschlossen wird! Informationen zu Cookies erhalten Sie in der Datenschutzerklärung.
k23/k23.4/k23.4.2/k23.4.2.3/start.txt · Zuletzt geändert: 29.11.2023 (Externe Bearbeitung)

Seiten-Werkzeuge