ich sitze jetzt schon zwei Tage an einem Fehler, den ich nicht verstehe
Also ich habe ein Programm, das mir über 4 Slider den Bildbereich einer Kamera( Monochrom) einschränkt. Sobald ein Slider seine Wert ändert wird eine Routine aufgerufen, die das alte QImage löscht und ein neues mit der neuen Breite und Höhe anlegt. Das Problem ist hierbei, dass wenn ich ein QImage::Format_Indexed8 verwende, mir beim ersten verändern des Bildbereiches das Programm abschmiert
Verwende ich jedoch ::Format_RGB32 läuft es perfekt. Nur liegen halt leider die Framedaten nur als 8bit-Array vor und ich muss im Hauptprogramm die Framdaten in ein int-Array kopieren (und 2xshiften), was mir eigentlich zu lange dauert...<changeImageSize>
ASSERT failure in QVector<T>::at: "index out of range", file C:/dev/Qt/include/QtCore/../../src/corelib/tools/qvector.h, line 282
Code: Alles auswählen
void MainWindow::changeImageSize( int x_min, int x_max, int y_min, int y_max)
{
qDebug() << "<changeImageSize>";
unsigned int width=x_max-x_min+1;
unsigned int height=y_max-y_min+1;
delete img1;
img1 = new QImage( width, height, QImage::Format_RGB32 );
img1->fill(0x00FFFF);
delete img2;
img2 = new QImage( width, height, QImage::Format_Indexed8 );
img2->setColorTable(colorTable);
img2->fill(127);
wcopy->resize(width, height);
//wcopy->setPixmap(QPixmap::fromImage(*img2)); //crash...
wcopy->setPixmap(QPixmap::fromImage(*img2));
}
Kann mir jemand sagen, wie ich evtl. doch ein ::Indexed8 QImage verwenden kann?
Gruß
Michael