Tutorial
PNG-Bilder anzeigen und speichern
von Volta | Seite 2 von 5 |
Die FBpng-Bibliothek
Die FreeBASIC PNG Library wird von Simon Nash (yetifoot) entwickelt und ist innerhalb von FreeBASIC (zumindest unter Windows) wohl die einfachste Lösung, PNG-Bilder zu laden und zu speichern.
Sie bietet unter anderem die Möglichkeit an, die Bilder gleich in einen OpenGL-kompatiblen Bildpuffer zu laden.
Die Bibliothek kann hier heruntergeladen werden: Download
Deklaration, Laden von PNG-Grafiken
Das Einbinden der Bibliothek ist inzwischen recht einfach, da sie direkt mit FreeBASIC als statische Bibliothek mitgeliefert wird und somit keine externen Bibliotheken nötig sind:
#include "fbpng.bi"
Das war's auch schon. Nun kann mit der Funktion png_load() ein Bild in einen FB-Bildpuffer geladen werden.
#include "fbgfx.bi" 'für "fb.Image"-Referenz
#include "fbpng.bi"
Dim buffer As fb.Image Ptr = png_load("bild.png")
Und schon befindet sich in "buffer" ein FBGFX-Bildpuffer mit dem geladenen Bild! Ist etwas schief gelaufen, wird 0 zurückgegeben.
Soll das Bild als OpenGL-Textur dienen, so empfiehlt es sich, dieses gleich automatisch umwandeln zu lassen:
#include "fbgfx.bi" 'für "fb.Image"-Referenz
#include "fbpng.bi"
Dim buffer As fb.Image Ptr = png_load("texture.png", PNG_TARGET_OPENGL)
Wichtig: Ab Version 1.9.1 muss ein mit png_load() ersteller Puffer auch mit png_destroy() zerstört werden!
png_destroy(buffer)
Speichern
Das Speichern von Grafiken im PNG-Format ist genau so einfach wie das Laden solcher:
png_save("neuegrafik.png", buffer)
Der erste Parameter gibt den Dateinamen an, der zweite die Adresse eines gültigen FBGFX-Puffers.
Abfrage der Grafikgröße
#include "fbpng.bi" 'alle nötigen PNG - Routinen werden in unser Programm eingebunden.
Dim As Integer hoch, breit 'damit fragen wir die Werte ab
png_dimensions("test.png", breit, hoch)
If breit > 0 And hoch > 0 Then
Print "Breite : "; breit; " Pixel"
Print "Hoehe : "; hoch; " Pixel"
Else
Print "Fehler, PNG-Datei beschaedigt oder nicht vorhanden!"
End If
Sleep
Die Sub png_dimensions öffnet die PNG - Datei und gibt die ermittelten Werte an die angegebenen Variablen.
Im Fehlerfall wird 0 in den Variablen angegeben.
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|