Tutorial
Grafiken mit der FreeImage-Bibliothek laden
von csde_rats | Seite 2 von 2 |
Um ein Bild zu konvertieren kann man wie folgt vorgehen:
Function ConvImage(InputF As Integer, InputFA As Integer, _
OutputF As Integer, OutputFA As Integer, _
InFile As String, OutFile As String) As Integer
Dim Dib As FIBITMAP Ptr
Dim Result As Integer
' Bild laden:
Dib = FreeImage_Load(InputF, InFile, InputFA)
' Wenn ein Fehler aufgetreten ist, liefert es 0 zurück
If Dib = 0 Then Return 0
' Die Bilddaten sind verkehrt herum in der Datei...
FreeImage_FlipVertical(Dib)
' Ab hier gehts mit 32 Bit Farbtiefe weiter
Dib = FreeImage_ConvertTo32Bits(Dib)
Result = FreeImage_Save(OutputF, Dib, StrPtr(OutFile), OutputFA)
FreeImage_Unload(Dib)
Return Result
End Function
Das war schnell gemacht, allerdings will diese Funktion nun eine Menge Parameter haben. Ein Makro um ein JPEG-Bild in ein PNG-Bild zu konvertieren könnte so aussehen:
#Define SImage_JPGtoPNG(InF, OutF) ConvImage(FIF_JPEG, JPEG_DEFAULT, FIF_PNG, PNG_DEFAULT, InF, OutF)
Auch hier kann man wieder mit allen Makros Schreibarbeit sparen:
#Define SImage_JPGtoPNG(InF, OutF) ConvImage(FIF_JPEG, JPEG_DEFAULT, FIF_PNG, PNG_DEFAULT, InF, OutF)
#Define SImage_JPGtoTGA(InF, OutF) ConvImage(FIF_JPEG, JPEG_DEFAULT, FIF_TARGA, TARGA_DEFAULT, InF, OutF)
#Define SImage_JPGtoTIFF(InF, OutF) ConvImage(FIF_JPEG, JPEG_DEFAULT, FIF_TIFF, TIFF_DEFAULT, InF, OutF)
#Define SImage_PNGtoJPG(InF, OutF) ConvImage(FIF_PNG, PNG_DEFAULT, FIF_JPEG, JPEG_DEFAULT, InF, OutF)
#Define SImage_PNGtoTGA(InF, OutF) ConvImage(FIF_PNG, PNG_DEFAULT, FIF_TARGA, TARGA_DEFAULT, InF, OutF)
#Define SImage_PNGtoTIFF(InF, OutF) ConvImage(FIF_PNG, PNG_DEFAULT, FIF_TIFF, TIFF_DEFAULT, InF, OutF)
#Define SImage_TGAtoJPG(InF, OutF) ConvImage(FIF_TARGA, TARGA_DEFAULT, FIF_JPEG, JPEG_DEFAULT, InF, OutF)
#Define SImage_TGAtoPNG(InF, OutF) ConvImage(FIF_TARGA, TARGA_DEFAULT, FIF_PNG, PNG_DEFAULT, InF, OutF)
#Define SImage_TGAtoTIFF(InF, OutF) ConvImage(FIF_TARGA, TARGA_DEFAULT, FIF_TIFF, TIFF_DEFAULT, InF, OutF)
#Define SImage_TIFFtoJPG(InF, OutF) ConvImage(FIF_TIFF, TIFF_DEFAULT, FIF_JPEG, JPEG_DEFAULT, InF, OutF)
#Define SImage_TIFFtoPNG(InF, OutF) ConvImage(FIF_TIFF, TIFF_DEFAULT, FIF_PNG, PNG_DEFAULT, InF, OutF)
#Define SImage_TIFFtoTARGA(InF, OutF) ConvImage(FIF_TIFF, TIFF_DEFAULT, FIF_TARGA, TARGA_DEFAULT, InF, OutF)
Aber… da ist ja ICO gar nicht dabei! Ja richtig, das ICO-Format wurde weggelassen, da es nicht gerade sehr leistungsfähig ist und auch nur sehr selten gebraucht wird.
Aktualisiert für neue FreeBASIC-Versionen von Jojo
Gehe zu Seite 1 2
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|