qt4 zum pixel schubsen
-
wollte eben nen filter über nen bild jagen und dacht mir, benutzt dafür die qimage klasse. nur irgendwie scheitert der schon beim bild laden.
hab nen ganz simples stückchen code zusammengebastelt:
#include <QImage> int main() { QImage img("test.png"); img.save("test2.png"); }
und dachte mir, müsste ja eigentlich gehen. geht aber nich, er lädt kommentarlos nichts und speichert auch nichts. weder mit relativen noch absoluten pfaden.
hab ich grad nen brett vorm kopf?
-
Also hab von qt keine Ahnung, aber in wxWidgets ist es so, das du erstmal den entsprechenden Imagehandler laden musst.
Und den i.d.R. auch beim Laden angibst.wxWidgets:
#include <wx/dir.h> #include <wx/image.h> int main(int argc, char* argv[]) { if(argc == 2) { std::cout << "Convert " << argv[1]<<std::endl; wxImage::AddHandler(new wxJPEGHandler()); wxImage::AddHandler(new wxBMPHandler()); wxString file = argv[1]; wxImage bmp(file,wxBITMAP_TYPE_BMP); bmp.Rescale(bmp.GetWidth()/2,bmp.GetHeight()/2); if(bmp.SaveFile(file.BeforeLast('.')+".jpg", wxBITMAP_TYPE_JPEG)) wxRemoveFile(file); } else std::cout << "Only one argument (file)!" << std::endl; return 0; }
phlox
-
Hallo,
dein Programm funktioniert bei mir, wenn ein test.png im Verzeichnis liegt.
Versuch mal folgendes, um zu sehen, ob das laden geklappt hat:#include <iostream> #include <QImage> int main() { QImage img; std::cout << img.load("test.png") << std::endl; img.save("test2.png"); }
Mit dem folgenden Programm kannst du die unterstützten Bildformate herausbekommen. Vielleicht ist dein
Qt ohne PNG kompiliert.#include <QImage> #include <QImageReader> #include <QImageWriter> #include <QtDebug> int main() { QList<QByteArray> formats = QImageReader::supportedImageFormats(); qDebug() << "Supported reading formats: "; foreach(QByteArray format, formats) { qDebug() << format; } formats = QImageWriter::supportedImageFormats(); qDebug() << "Supported writing formats: "; foreach(QByteArray format, formats) { qDebug() << format; } }
-
mein "png" war in wirklich ne jpeg. warum auch immer Oo jpeg kann mein qt nich. habs geändert und nu gehts
-
thordk schrieb:
mein "png" war in wirklich ne jpeg. warum auch immer Oo jpeg kann mein qt nich. habs geändert und nu gehts
Vielleicht mit -no-libjpeg kompiliert?