QImage in bestimmten Ordner skalieren

Alles rund um die Programmierung mit Qt
Antworten
member
Beiträge: 10
Registriert: 5. Februar 2010 06:38

QImage in bestimmten Ordner skalieren

Beitrag von member »

hallo,

beim skalieren von png Bildern in einem QDir dir("ordner") gesetztem Ordner, werden Bilder gelesen, aber es kommt die Meldung

QImage::scaled: Image is a null image.

Liegen die ImageDateien im selben Ordner QDir dir , wo sich die EXE befindet , werden die Bilder skaliert.

Wie können Bilder, die in einem anderen (Unter-)Ordner befinden,
skaliert werden ?
kater
Beiträge: 306
Registriert: 29. Dezember 2009 01:13
Wohnort: Darmstadt

Beitrag von kater »

Liegt der Ordner "ordner" da, wo die exe liegt?

Wo genau liegt nun der Ordner und die Exe?

Wie immer mehr Code ;)
member
Beiträge: 10
Registriert: 5. Februar 2010 06:38

Beitrag von member »

Der Ordner "ordner" befindet sich in dem Ordner, wo die Exe liegt.
Es soll als Unterordner gelten, auf dem die Exe dann zugreift.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
member
Beiträge: 10
Registriert: 5. Februar 2010 06:38

Beitrag von member »

Code: Alles auswählen

int main(int argc, char *argv[])
 {
	QApplication app(argc,argv,false);
   QDir dir("bilder");
         .
         .
         QImage image(c,"png");   //c = Dateiname
	      QImage iscaled = image.scaled(20,20,aspectRatioMode,transformMode);
        .
        .
   return 0;
}
scheint immer noch nicht zu klappen.
kater
Beiträge: 306
Registriert: 29. Dezember 2009 01:13
Wohnort: Darmstadt

Beitrag von kater »

Du solltest erstmal schaun ob er das Bild laden kann. QImage hat bestimmt irgend einee error funktion.
member
Beiträge: 10
Registriert: 5. Februar 2010 06:38

Beitrag von member »

Code: Alles auswählen

int main(int argc, char *argv[])
 {
   QApplication app(argc,argv,false);
   QDir dir; //dir.setPath("bilder");
QByteArray qba;const char *c;

QFileInfoList list = dir.entryInfoList();

for (int i = 0; i < list.size(); i++) {
		QFileInfo fileInfo = list.at(i);    
qba=QString(fileInfo.fileName()).toAscii();
c=qba.constData();     
QImage image(QString(fileInfo.fileName()),"png");
		if(image.load(QString(fileInfo.fileName()),"png") == true){cout << "load " << true << endl;}
		if(image.loadFromData(qba,"png") == true){cout << "load from data " << true << endl;}         
QImage iscaled = image.scaled(20,20,aspectRatioMode,transformMode);
        .
   cout << c << endl;
        }
   return 0;
}
Die loadfromData Funktion scheint die Bilder weder im aktuellen noch im Unterordner zu erkennen.

Im aktuellem Ordner der Exe werden die Bilder über die load funktion erkannt, im Unterordner nicht, und es kommt im Unterordner immer noch QImage::scaled: Image is a null image.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Erstens - warum benutzt du immer noch nicht meinen Hinweis und zweitens gibt QFileInfo::fileName() wie der Name schon sagt den Dateinamen zurück und keinen kompletten Pfad... !
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten