Servus zusammen,
ich habe im Internet schon geschaut und eine spährliche Ausgabe
bekommen. Gefunden habe ich unter SourceForge.net libtga, entweder
stellt mir diese Bibliothek kein RawData zu Verfügung oder ich habe
diese Funktion übersehen. Darum habe ich mal eine bescheidene Frage.
Gibt es die Möglichkeit mit Qt 4.3.x TGA Dateien zu lesen?
Wenn nicht, welche Möglichkeiten habe ich dann?
[gelöst] Laden von TGA Dateien
[gelöst] Laden von TGA Dateien
Zuletzt geändert von ChMaster am 6. Juli 2007 16:29, insgesamt 1-mal geändert.
Hallo upsala,
danke für deine Antwort. Den Wikipedia-Artikel habe ich schon gelesen und er ist wirklich interessant.
Nur das ich dort Paint.Net sehe was in C# geschrieben wurde. Dieses kann ich zwar mit Qt43 nutzen,
aber das kommt für mich nicht in Frage, da ich Plattformunabhängig programmieren will.
Die Bibliothek paintlib werde ich mir mal genauer anschauen. Danke für deinen Tipp.
danke für deine Antwort. Den Wikipedia-Artikel habe ich schon gelesen und er ist wirklich interessant.
Nur das ich dort Paint.Net sehe was in C# geschrieben wurde. Dieses kann ich zwar mit Qt43 nutzen,
aber das kommt für mich nicht in Frage, da ich Plattformunabhängig programmieren will.
Die Bibliothek paintlib werde ich mir mal genauer anschauen. Danke für deinen Tipp.
servus,
paintlib war nicht das richtige. Habe mal etwas genauer im Internet geschaut und etwas
ordentliches gefunden. Die Bibliothek nennt sich FreeImage, diese Bibliothek ist auch
unter Windows verfügbar.
Bin gerade dabei diese Bibliothek einzubinden, wenn ich es geschaft habe werde ich evtl.
ein kleines Tutorial erstellen wie man TGA Dateien läd und darstellt. (Mal schauen)
paintlib war nicht das richtige. Habe mal etwas genauer im Internet geschaut und etwas
ordentliches gefunden. Die Bibliothek nennt sich FreeImage, diese Bibliothek ist auch
unter Windows verfügbar.
Bin gerade dabei diese Bibliothek einzubinden, wenn ich es geschaft habe werde ich evtl.
ein kleines Tutorial erstellen wie man TGA Dateien läd und darstellt. (Mal schauen)
servus,
so habe es geschaft mit FreeImage3 TGA Dateien zu laden.
Hier mal der CodeSnippe: Originalsource FreeImageQt, leider in Qt3 gehalten.
Der hier aufgeführte CodeSnippe ist für Qt4.
so habe es geschaft mit FreeImage3 TGA Dateien zu laden.
Hier mal der CodeSnippe: Originalsource FreeImageQt, leider in Qt3 gehalten.
Der hier aufgeführte CodeSnippe ist für Qt4.
Code: Alles auswählen
#include <FreeImage.h>
.......
QImage MyClass::LoadTgaFile( const QString &name ) {
if( name.isEmpty() || name.isNull() )
return QImage();
FREE_IMAGE_FORMAT fif = FreeImage_GetFIFFromFilename( QString( name ).toAscii().data() );
FIBITMAP *bitmap;
if( fif == FIF_TARGA )
bitmap = FreeImage_Load( fif, QString( name ).toAscii().data(), 0 );
else
return QImage();
QImage img;
if( bitmap ) {
if( FreeImage_GetBPP( bitmap ) == 32 )
bitmap = FreeImage_ConvertTo24Bits( bitmap );
int _width = FreeImage_GetWidth( bitmap );
int _height = FreeImage_GetHeight( bitmap );
if( FreeImage_IsTransparent( bitmap ) ) {
QImage image( _width, _height, QImage::Format_ARGB32 );
img = image;
} else {
QImage image( _width, _height, QImage::Format_RGB32 );
img = image;
}
img.setDotsPerMeterX( (FreeImage_GetDotsPerMeterX != NULL) ? FreeImage_GetDotsPerMeterX( bitmap ) : 0 );
img.setDotsPerMeterY( (FreeImage_GetDotsPerMeterY != NULL) ? FreeImage_GetDotsPerMeterY( bitmap ) : 0 );
for( unsigned a = 0; a < FreeImage_GetHeight( bitmap ); a++ ) {
if( FreeImage_GetBPP( bitmap ) == 24 ) {
FreeImage_ConvertLine24To32( img.scanLine( FreeImage_GetHeight( bitmap ) - 1 - a ), FreeImage_GetScanLine( bitmap, a ), FreeImage_GetWidth( bitmap ) );
} else {
memcpy( img.scanLine( FreeImage_GetHeight( bitmap ) - 1 - a ), FreeImage_GetScanLine( bitmap, a ), FreeImage_GetWidth( bitmap ) );
}
}
}
FreeImage_Unload( bitmap );
return img;
}