Frage

Wie würde ich mich um die Pixel in einem Bild, Umwandeln (PNG-Datei) zu einem Ganzzahl-Array, wobei jedes Pixel in seinem ARGB ganzzahlige äquivalent umgewandelt wird? Kein 2D-Integer-Array durch die Art und Weise, ein 1D eine (in denen der Zugang ist durch Array [row * width + col]).

Danke.

War es hilfreich?

Lösung

Wenn Sie Bilddaten zu einem gewissen Puffer gelesen haben, sollte gewöhnlicher Guss den Trick tun:

GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file ("image.png", NULL);
unsigned char *pixels = gdk_pixbuf_get_pixels (pixbuf);
int *array = reinterpret_cast<int*>(pixels);

Beispiel verwendet GdkPixbuf Bibliothek, aber auch andere Bibliotheken sollten ähnlich sein.

Andere Tipps

Wenn Sie es für Interesse und Lernen zu tun, würde ich empfehlen Sie einen Dritten Bibliothek verwenden zu tun, zum Beispiel ImageMagick .
So sparen Sie Zeit (und vermeiden Fehler)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top