QImage mit Daten direkt aus dem Speicher füllen
Verfasst: 9. März 2010 15:15
Hi,
ich habe die Daten für ein gerendertes Bild im Speicher liegen und möchte diese nun in ein QImage kopieren.
Dazu habe ich zunächst mal das QImage mit dem gewünschten format und den gewünschten dimensionen erstellt:
Und nun wollte ich die daten aus dem Speicher in das QImage mittels memcpy kopieren.
Allerdings kommt dabei eine segfault wenn wenn memcpy aufgerufen wird.
Meine frage dabei ist, kann es sein das das Probelm daran liegt, dass ich die Daten nicht einfach so in einer linie kopieren kann? Also wie ist das QImage im Speicher angelegt? Oder kann ich immer nur eine gewisse Anzahl von bytes auf einmal kopieren weil der QImage speicher 2 dimensional ist.
Und muss ich noch irgendwie vorher Speicher allokieren? Oder sollte dass mit dem initialisieren von QImage wie ich es getan habe erledigt sein?
Oder gibts noch andere Ideen wie das ausschaun sollte?
Danke & lg
ich habe die Daten für ein gerendertes Bild im Speicher liegen und möchte diese nun in ein QImage kopieren.
Dazu habe ich zunächst mal das QImage mit dem gewünschten format und den gewünschten dimensionen erstellt:
Code: Alles auswählen
QImage* currentImage = new QImage(renderedData->size[0], renderedData->size[1], QImage::Format_ARGB32);Code: Alles auswählen
memcpy((void*)currentImage->data_ptr(), (void*)renderedData->getBuffer(), renderedData->getBytes());Meine frage dabei ist, kann es sein das das Probelm daran liegt, dass ich die Daten nicht einfach so in einer linie kopieren kann? Also wie ist das QImage im Speicher angelegt? Oder kann ich immer nur eine gewisse Anzahl von bytes auf einmal kopieren weil der QImage speicher 2 dimensional ist.
Und muss ich noch irgendwie vorher Speicher allokieren? Oder sollte dass mit dem initialisieren von QImage wie ich es getan habe erledigt sein?
Oder gibts noch andere Ideen wie das ausschaun sollte?
Danke & lg