Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Tutorial

Grafiken mit der FreeImage-Bibliothek laden

von Mitgliedcsde_ratsSeite 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 Gehe zu Seite  1  2  
Zusätzliche Informationen und Funktionen
  • Das Tutorial wurde am 20.09.2007 von Mitgliedcsde_rats angelegt.
  • Die aktuellste Version wurde am 24.02.2008 von Mitgliedcsde_rats gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen