Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Multimedia

k23:k23.4:k23.4.2:k23.4.2.8:start

23.4.2.8 Klasse Image (gb.image.io)

23.4.2.8.1 GUI-Toolkit

Die Gambas-GUI-Toolkits QT und GTK implementieren gb.image.io, so dass es nicht erforderlich ist, diese Komponente in den Projekt-Eigenschaften zu aktivieren, wenn Sie eine GUI-Applikation erstellen wollen. Sie müssen gb.image.io nur dann hinzufügen, wenn die Anwendung kein GUI-Toolkit verwendet, so das Ihnen dann alle Eigenschaften und Methoden aus gb.image.io-Methoden zur Verfügung stehen.

Diese Klasse ist eine Neuimplementierung von Image in gb.image. Unterstützt werden alle Bild-Formate, die von der gdk-pixbuf-Bibliothek bereitgestellt werden (mindestens JPEG, PNG, BMP, GIF und XPM). Die Klasse ist erzeugbar und funktioniert wie ein Lese- und Schreiben-Array. Die Neuimplementierung von Image in gb.image.io wurde im Vergleich zu Image (gb.image) um 4 Methoden ergänzt.

23.4.2.8.2 Methoden

Die Klasse Image (gb.image.io) verfügt über diese neu implementierten Methoden:

MethodeRückgabetypBeschreibung
Static Function FromString ( Data As String )ImageLädt ein Bild aus dem Inhalt eines Strings.
Static Function Load ( Path As String )ImageLädt ein Bild aus einer Datei. Der Parameter Path ist der Dateipfad.
Sub Save ( Path As String [ , Quality As Integer ] )-Speichert das Bild in einer Datei. Die Dateierweiterung von Path gibt das Format des gespeicherten Bildes an. Das Argument Quality wird nur dann verwendet, wenn ein Bild im jpeg- oder png-Format gespeichert wird.
Function Stretch ( Width As Integer, Height As Integer )ImageDie Funktion ändert die Größe eines Bildes auf die angegebenen Werte für Width und Height, was für Vektor-Grafiken nicht gilt. Wenn Width oder Height negativ ist, dann wird die Bild-Proportion beibehalten.

Tabelle 23.4.2.8.1 : Methoden der Klasse Image

Hinweise:

Der Bezeichner für die Funktion 'Stretch(…) ist irreführend. Die Funktion gibt per se keine 'gestreckte Version' eines Bildes als Funktionswert zurück. Nur wenn ein Parameter – entweder Width oder Height – negativ ist, dann wird die Bild-Proportion bei der Größenänderung beibehalten.

23.4.2.8.3 Projekt

Im vorliegenden Projekt werden die beiden Funktionen Function Load (Path As String) und Stretch (Width As Integer, Height As Integer) sowie die Prozedur Save (Path As String [ , Quality As Integer ]) eingesetzt.

Sie können

  • ein Bild (fractal.png) mit einem vorgegebenen Pfad laden,
  • es in der Größe in den angegebenen Grenzen für die Bildbreite und die Bildhöhe ändern und
  • das geänderte Bild (fractal.stretch.png) mit dem modifizierten Namen abspeichern.

Das ist der Quelltext:

' Gambas class file
 
Public hImage As New Image
Public hImageMod As New Image
Public sPath As String
 
Public Sub Form_Open()
 
    FMain.Caption = "Image.Stretch"
 
End
 
Public Sub btnLoad_Click()
 
'-- Show the original image in PictureBox1
    hImage = Image.Load(Application.Path &/ "images/fractal.png")
 
'-- Show the original image in PictureBox1
    PictureBox1.Picture = hImage.Picture
 
'-- Stretch ( Width As Integer, Height As Integer )
    hImageMod = hImage.Stretch(spboxW.Value, spboxH.Value)
 
'-- Display the modified image in the PictureBox2
    PictureBox2.Picture = hImageMod.Picture
 
End
 
Public Sub spboxW_Change()
 
    PictureBox2.Picture = hImageMod.Stretch(spboxW.Value, spboxH.Value).Picture
 
End
 
Public Sub spboxH_Change()
 
  PictureBox2.Picture = hImageMod.Stretch(spboxW.Value, spboxH.Value).Picture
 
End
 
Public Sub btnSave_Click()
 
    If Not IsNull(hImageMod) Then hImageMod.Save(Application.Path &/ "images/fractal.stretch.png")
 
End

Wenn das Programm gestartet wird, dann werden die Start-Parameter für die Stretch(…)-Funktion auf W = 150 und H = 200 gesetzt:

BILD

Abbildung 23.4.2.8.1: Anzeige nach dem Programmstart

Anschließend wurden die Parameter auf W = 120 und H = 370 gesetzt. Die Bild-Proportion wird nicht beibehalten:

BILD

Abbildung 23.4.2.8.2: Anzeige mit geänderten Parametern

Wenn Sie jedoch einen der beiden Parameter – hier die Bildweite W – auf einen (beliebigen) negativen Wert setzen und anschließend die Bildhöhe H ändern, dann wird das Bild auf die ausgewählte Bildhöhe gesetzt und die Bildweite (automatisch) so geändert, dass die Bildproportion beibehalten wird:

BILD

Abbildung 23.4.2.8.3: Anzeige mit einem negativen Parameter

Das Projekt wird Ihnen im Download-Bereich als Projekt-Archiv zur Verfügung gestellt.

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.8/start.txt · Zuletzt geändert: 29.12.2023 von honsek

Seiten-Werkzeuge