Seite 1 von 2

[gelöst]QImage File

Verfasst: 6. April 2006 09:27
von DevilsDaughter
ich würde gern ein schon bestehendes QImage in ein File umwandeln,
hab schon in mehrern versionen versucht, nichts klappt!

Wie stell ich, dass am geschicktesten an?

Danke!!

Verfasst: 6. April 2006 10:11
von macman
This can, for example, be used to save an image directly into a QByteArray:

QImage image;
QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::WriteOnly);
image.save(&buffer, "PNG"); // writes image into ba in PNG format
Das tut nicht?

Re

Verfasst: 6. April 2006 10:32
von DevilsDaughter
da kommen immer foglende fehlermeldungen:

error: invalid conversion from `QByteArray*' to `int'

error: initializing argument 1 of `QMemArray<type>::QMemArray(int) [with type = char]'

error: `WriteOnly' is not a member of type `QIODevice'

weiters muss ich das file auch benennen!!!

muss die funktion einer anderen library ersetzen, code hat vorher so ausgesehen:

Code: Alles auswählen

    if (printDRR) {
	fp = AVW_CreateImageFile("SplattedDRR.avw","AnalyzeAVW",256,256,1,AVW_UNSIGNED_CHAR);
	AVW_WriteImageFile(fp,interMedImage);
	AVW_CloseImageFile(fp);
    }

Verfasst: 6. April 2006 10:45
von macman
Vielleicht postest du mal was du bisher hast.

Verfasst: 6. April 2006 11:16
von DevilsDaughter
das hatte ich bisher ...aber das funktioniert absolut nicht:


Code: Alles auswählen

   
interMedImage = new QImage (256,256,8,256,QImage::IgnoreEndian);
  if (printDRR) {
	  QImageIO iio;
	  QImage interMedImage;
	  iio.setImage( interMedImage);
	  io.setFileName( "SplattedDRR.bmp");
	  iio.setFormat( "BMP" );
	  if ( iio.write() )
    }
	    
   QImage* interMedImage = qsplatdrrDRR;            
/soll interMedImag in qsplatdrrDRR kopieren, iqsplatdrr DRR st auch ein QImage   
    delete interMedImage; 
    interMedImage = NULL;

Verfasst: 6. April 2006 11:33
von macman
Schreib das doch nächstes Mal dabei, das du dich auf Qt3 beziehst. Dann bekommst Du auch keine Beispiele, die nicht funktionieren können.

Dein Stück Code scheint aus der Doku entnommen zu sein. Allerdings hast Du eine wichtige Zeile entfernt, nämlich die, in der dem QImage auch ein Bild zugewiesen wird.

Re

Verfasst: 6. April 2006 11:58
von DevilsDaughter
sorry, dass ich vergessen habe das dazu zuschreiben......
:roll:

habs jetzt so probiert:

Code: Alles auswählen

      if (printDRR) {
	  QImageIO iio;
	  QImage fp;
	  fp = QImage interMedImage ;
	  iio.setImage( fp);
	  iio.setFileName( "SplattedDRR.bmp");
	  iio.setFormat( "BMP" );
	  if ( iio.write() )
    }
aber das funktioniert noch immer nicht, irgendwie steh ich anscheind auf der leitung.....

Verfasst: 6. April 2006 12:03
von Christian81
Was wollt ihr machen?
QImage::save()

Verfasst: 6. April 2006 12:09
von DevilsDaughter
ich möchte ein imagefile von interMedImage erzeugen...

es öffnen...schreiben und dann wieder schließen.....

ps:verwende qt3

Verfasst: 6. April 2006 12:11
von macman
Das hab ich auch schon gesagt, aber damit ein Image gesichert wird, muß erstmal eins da sein und das sehe ich nirgends.

Verfasst: 6. April 2006 12:13
von DevilsDaughter

Code: Alles auswählen

interMedImage = new QImage (256,256,8,256,QImage::IgnoreEndian); 

Verfasst: 6. April 2006 12:21
von Christian81
DevilsDaughter hat geschrieben:ich möchte ein imagefile von interMedImage erzeugen...

es öffnen...schreiben und dann wieder schließen.....

ps:verwende qt3
Da dies ein Imageformat ist, welches nicht von Qt untestützt wird, musst Du wohl eine eigenes Imageplugin schreiben... Dann kannst du später auch QImage.load("myimage.imi") bzw. QImage.save("myimage.imi","IMI");

Verfasst: 6. April 2006 12:47
von macman
DevilsDaughter hat geschrieben:

Code: Alles auswählen

interMedImage = new QImage (256,256,8,256,QImage::IgnoreEndian); 
Ja genau, und 3 Zeilen weiter? Womit läßt sich denn sowas compilieren? Eigentlich hätte da doch der Compiler schon meckern müssen.

re

Verfasst: 6. April 2006 19:24
von DevilsDaughter
ja sicher meckert er...deswegen hab ich ja auch gefragt, wie das funktioniert...wenn ichs wüßte....würd ich auch nicht fragen....

Verfasst: 6. April 2006 19:28
von DevilsDaughter
@ Christian81

und wie genau muss ich dass machen????
wieso wird das format nicht von qt unterstützt, ist ja nur ein ganz normales qimage???
bin schon leicht verzweifelt......