Hallo ihr,
ich habe ein Problem. Wie die Überschrift schon sagt möchte ich mit QImage ein .JPG Bild einladen, anzeigen und in einem Array speichern. Ich habe soetwas schon mit .raw Dateien gemacht war ganz einfach, deshalb dachte ich das wird schon kein großes Problem, aber ich stecke trotzdem fest. Im Qt Assistant steht das QImage JPG als Format schreiben und lesen kann. Perfekt.
QImage ( const QString & fileName, const char * format = 0 )
mit dieser Funktion sollte man es machen können oder? Klar erster Parameter ist der Filename wenn es im debug Ordner liegt auch ohne Pfad. Aber wie fütter ich den zweiten Parameter? Bisher habe ich die Funktion
QImage ( int width, int height, Format format ) genommen und da musste man bei Format QImage::Format_RGB32 eingeben. Damit bekomme ich aber nen error. Ich finde jedenfalls nirgens was man für const char * format = 0 eingeben muss damit er jpgs erkennt. Es wäre voll lieb wenn ihr ne idee hättet komme hier sonst absolut nicht weiter.
lg
Newbie
JPF Öffnen
Hi,
vielleicht wird einfach "JPG", "PNG" usw als String erwartet, wie in dieser Tabelle:
http://doc.trolltech.com/4.6/qimage.htm ... mage-files
Laut Doku kannst du auch einfach den zweiten Parameter des Konstruktors weglassen, und er versucht dann selbst das richtige Format zu finden.
http://doc.trolltech.com/4.6/qimage.html#QImage-10
koko
vielleicht wird einfach "JPG", "PNG" usw als String erwartet, wie in dieser Tabelle:
http://doc.trolltech.com/4.6/qimage.htm ... mage-files
Laut Doku kannst du auch einfach den zweiten Parameter des Konstruktors weglassen, und er versucht dann selbst das richtige Format zu finden.
http://doc.trolltech.com/4.6/qimage.html#QImage-10
koko
Hallo,
vielen Dank für die schnelle antwort.
Ich habs sofort ausprobiert und du hattest recht der Konstruktor braucht den zweiten Param. nicht. habe folgendes gecodet.
das kann er nun compilieren. ich dachte nun teste mal ob er das bild denn wirklich eingeladen hat. aber bei der bool a variable kommt false mit Breakpoint raus. was kann ich da jetzt machen und wie komme ich an die pixel des jpgs wenn ich das laden geschafft habe.
vielen Dank für die schnelle antwort.
Ich habs sofort ausprobiert und du hattest recht der Konstruktor braucht den zweiten Param. nicht. habe folgendes gecodet.
Code: Alles auswählen
void OpenJpg::on_pushButton_loadImage_clicked()
{
QImage image("Reg_0001.jpg");
bool a = image.load("Reg_0001.jpg");
}
-
Curtis Newton
- Beiträge: 122
- Registriert: 11. Juni 2008 18:39
Werden die jpg-Plugins geladen? An die Pixel des jpgs kommst Du wie bei jeden anderen Bild ran (Stichwort scanLine).QtNewbie hat geschrieben:Hallo,
vielen Dank für die schnelle antwort.
Ich habs sofort ausprobiert und du hattest recht der Konstruktor braucht den zweiten Param. nicht. habe folgendes gecodet.das kann er nun compilieren. ich dachte nun teste mal ob er das bild denn wirklich eingeladen hat. aber bei der bool a variable kommt false mit Breakpoint raus. was kann ich da jetzt machen und wie komme ich an die pixel des jpgs wenn ich das laden geschafft habe.Code: Alles auswählen
void OpenJpg::on_pushButton_loadImage_clicked() { QImage image("Reg_0001.jpg"); bool a = image.load("Reg_0001.jpg"); }
C.
hallo,
nochmals danke an alle. kannst du mir sagen wie man feststellt ob man die jpg plugins geladen hat? so auf anhieb findet man da bei dr google nix. oder wo bekommt man die dann her. ich habe mal für mich folgenden ansatz probiert.
liefert folgendes Bild im Anhang. das ist allerdings nicht das was ich haben wollte meins sollte wie bild rechts aussehen. so hab ich s auf dem weg gemacht wie ich auch raw dateien geöffnet habe. echt verflixt. hoffe weiterhin auf hilfe
lg[/code]
nochmals danke an alle. kannst du mir sagen wie man feststellt ob man die jpg plugins geladen hat? so auf anhieb findet man da bei dr google nix. oder wo bekommt man die dann her. ich habe mal für mich folgenden ansatz probiert.
Code: Alles auswählen
void OpenJpg::on_pushButton_loadImage_clicked()
{
//QImage image("Reg_0001.jpg");
//bool a = image.load("Reg_0001.jpg");
//ui.label_Image->setPixmap(image);
//mainLayout.addWidget(imageLabel);
QFile DataFile = QFileDialog::getOpenFileName(NULL, tr("Open File"),
"/home",
tr("Images (*.png *.xpm *.jpg *.raw *.dcm)"));
bool bFileOpen = DataFile.open(QIODevice::ReadOnly);
if (!bFileOpen)
{
QMessageBox::critical(NULL, "Achtung", "Datei konnte nicht geöffnet werden");
return;
}
m_pImage = new short[256*256];
DataFile.read((char*)m_pImage, (256*256)*sizeof(short));
loadData();
}
void OpenJpg::loadData()
{
QImage image(256,256,QImage::Format_RGB32);
int iGrayValue;
for (int x = 0; x < 256; x= x + 1)
{
for (int y = 0; y< 256; y = y + 1)
{
iGrayValue = m_pImage[x+y*256];
image.setPixel(x,y, qRgb(iGrayValue,iGrayValue,iGrayValue));
}
}
ui.label_Image->setPixmap(QPixmap::fromImage(image));
}
lg[/code]
- Dateianhänge
-
- Unbenannt.jpg (37.64 KiB) 4594 mal betrachtet