Mit parameterer_liste werden Scannerdevice, Auflösung, ScanModus übergeben.QPixmap Scanner::scannen(QStringList parameter_liste)
{
QByteArray meldung;
meldung.clear();
QPixmap user_pixmap;
QImage user_image;
user_image.pixel(700,1000);
scanimage = "scanimage";
scanner.start(scanimage,parameter_liste);
scanner.waitForFinished();
meldung = scanner.readAllStandardOutput();
scanner.close();
QMessageBox::information(NULL,"wsx",QString::number(meldung.size()));
user_image = QImage(700,1000,QImage::Format_ARGB32).fromData(meldung);
bool look = user_pixmap.convertFromImage(user_image);
QMessageBox::information(NULL,"ich habe umgewandelt",QString::number((int)look));
return user_pixmap;
}
Das klappt soweit ganz gut. Leider nur bei Auflösungen bis max 300 - 400 dpi abhängig vom Scan-Modus.
Ich vermute daher das es bei QImage ein Grössenproblem gibt.
Das QByteArray speichert die Daten bei allen Auflösungen ( gem.... meldung.size) aber QImage übernimmt sie dann nicht mehr und liefert null zurück.
Muss ich ab einer bestimmten Auflösung Speicherplatz für QImage bereitstellen? Wenn ja, wie mache ich das und wo liegen die Standardeinstellungen
(habe dazu im Manual nichts gefunden).
Hat mein Problem eine andere Ursache ?
Ohne die Angaben für Grösse und Format bei QImage bekomme ich übrigens genau die gleichen Ergebnisse.
Freue mich über jede Anregung
sfbeetle