Hallo, ich versuche gerade ein .png per QFileDialog zu öffnen. Klappt sowohl für .txt, als auch für .png! Leider bleibt mein Bild in meinem QLabel farblos, also in Graustufen. Habe jetzt nach mehrfacher Erörterung der Docu und allem was Google hergibt versucht einen ColorTable zu bilden, kriegs aber iwie nicht hin. Also mir ist irgendwie klar, dass wenn ich in meiner Schleife sage qRgb (i,i,i), dass das Bild wohl grau wird. Wie mache ich es anders? Drei Schleifen mit Variablen i, j, k für die jeweiligen RGB Werte??
Wäre super wenn jemand helfen könnte, weil ich da jetzt schon Tage vorsitze und nicht mehr weiter weiß.... :-/ ....Danke schon mal. .....ach ja.....nutze QT 4 auf Windows
void MyClass::open()
{
QString filename = QFileDialog::getOpenFileName(this,tr("Load File"),"",tr("Text Files (*.txt);;Images (*.png *.jpg)"));
if (filename != "") {
/*QFile file(filename);
if (!file.open(QIODevice::ReadOnly)) {
QMessageBox::critical(this, tr("Error"), tr("Could not open file"));
return;}
QString contents = file.readAll().constData();
ui.Textfeld -> setPlainText(contents);
file.close();}*/
QImage image(filename);
image = image.convertToFormat(QImage::Format_Indexed8); //shows the image in gray
/*image = QImage(600, 453, QImage::Format_Indexed8);*/ // shows black and white stripes (why?)
QVector<QRgb> table(256);
for(int i = 0; i < table.size(); i++)
{table = qRgb ( i,i,i );}
image.setColorTable(table);
/*QRgb i;
for ( int i=0; i<256; i++ ) //build color Table
image.setColor(i,qRgb(i,i,i));*/
//image.fill(qRgb(255,255,255));
//image.setColor( 19, qRgb(255,255,0) );
//(image.scanLine(y) + x) = 19;
/*QPixmap pixmap;
pixmap = pixmap.fromImage(image);*/
ui.Display->setPixmap(QPixmap::fromImage(image));}
}
QImage colorTable???
-
- Beiträge: 79
- Registriert: 11. Oktober 2009 00:37
- Wohnort: Dresden
Re: QImage colorTable???
Warum erst als QImage?
Code: Alles auswählen
QPixmap::QPixmap ( const QString & fileName, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor )
Gruß, Herzogswalder
Qt 4.8, OS X Mountain Lion
Qt 4.8, OS X Mountain Lion
Re: QImage colorTable???
Hm.....gute Frage....weil ich das Bild nicht bearbeiten sondern nur schlicht anzeigen will?!?!
Hab`s jetzt mal mit :
void MyClass::open()
{
QString filename = QFileDialog::getOpenFileName(this,tr("Load File"),"",tr("Text Files (*.txt);;Images (*.png *.jpg)"));
if (filename != "") {
QPixmap pixmap(filename);
pixmap = QPixmap(filename, 0, Qt::AutoColor);
ui.Display->setPixmap(pixmap);}
}
versucht.....zeigt mir auch ein farbloses Bild an........versteh bald nix mehr......die Doku macht mich auch immer nur noch wirscher .......hilfe???
Hab`s jetzt mal mit :
void MyClass::open()
{
QString filename = QFileDialog::getOpenFileName(this,tr("Load File"),"",tr("Text Files (*.txt);;Images (*.png *.jpg)"));
if (filename != "") {
QPixmap pixmap(filename);
pixmap = QPixmap(filename, 0, Qt::AutoColor);
ui.Display->setPixmap(pixmap);}
}
versucht.....zeigt mir auch ein farbloses Bild an........versteh bald nix mehr......die Doku macht mich auch immer nur noch wirscher .......hilfe???
-
- Beiträge: 79
- Registriert: 11. Oktober 2009 00:37
- Wohnort: Dresden
Re: QImage colorTable???
Wozu denn diese Zeile:Du hast es doch schon mit
Ich würde mich an deiner Stelle doch mal etwas eingehender mit den Grundlagen & der Dokumentation beschäftigen.
Code: Alles auswählen
pixmap = QPixmap(filename, 0, Qt::AutoColor);
Code: Alles auswählen
QPixmap pixmap(filename);
Gruß, Herzogswalder
Qt 4.8, OS X Mountain Lion
Qt 4.8, OS X Mountain Lion
Re: QImage colorTable???
wie bereits erwähnt, hatte ich genau das bereits getan. Ich kanns mir ja noch ein 20zigstes mal durchlesen und komm immer noch nicht weiter. Ich verstehe wirklich nicht warum man nicht einfach helfen kann, dachte dafür wären Foren da, auch wenn es mal mehr und mal weniger Wissensunterschiede gibt. Gehört doch nun mal dazu.
Gibt es hier vielleicht doch jemand der ein wenig Unterstützung geben kann???
Gibt es hier vielleicht doch jemand der ein wenig Unterstützung geben kann???
Re: QImage colorTable???
Du verstehst nicht was er meint:
erzeugt schon ein pixmap-Objekt, welches das Bild in der Datei "filename" enthält. Die nächste Zeile ersetzt das aktuelle pixmap-Objekt durch ein weiteres, welches exakt die selben Daten enthält! Diese Herangehensweise sagt uns, dass du noch nicht so wirklich viel Erfahrung hast (ist nicht böse gemeint!).
Was bei dir genau schief geht, kann man mit dem wenigen Code nicht sagen. Kannst du dein gesamtes Projekt (bitte ohne binaries/libs/... sondern NUR die Sourcen, .pro-file, resourcen) in ein .zip packen und über die Forenfunktion "Dateianhang hochladen" hier anhängen? Am besten legst du noch das Bild bei, das bei dir gerade Probleme bereitet.
Code: Alles auswählen
QPixmap pixmap(filename);
Was bei dir genau schief geht, kann man mit dem wenigen Code nicht sagen. Kannst du dein gesamtes Projekt (bitte ohne binaries/libs/... sondern NUR die Sourcen, .pro-file, resourcen) in ein .zip packen und über die Forenfunktion "Dateianhang hochladen" hier anhängen? Am besten legst du noch das Bild bei, das bei dir gerade Probleme bereitet.