Seite 1 von 1
QImage in bestimmten Ordner skalieren
Verfasst: 29. April 2010 08:25
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 ?
Verfasst: 29. April 2010 08:54
von kater
Liegt der Ordner "ordner" da, wo die exe liegt?
Wo genau liegt nun der Ordner und die Exe?
Wie immer mehr Code

Verfasst: 29. April 2010 09:04
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.
Verfasst: 29. April 2010 13:01
von Christian81
Verfasst: 30. April 2010 00:04
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.
Verfasst: 30. April 2010 00:40
von kater
Du solltest erstmal schaun ob er das Bild laden kann. QImage hat bestimmt irgend einee error funktion.
Verfasst: 30. April 2010 01:44
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.
Verfasst: 30. April 2010 06:32
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... !