Domanda

Come potrei fare per convertire i pixel in un'immagine (.png file) ad un array intero, dove ogni pixel viene convertito nella ARGB equivalente intero? Non è un numero intero 2D matrice proposito, un 1D uno (dove l'accesso è attraverso array [riga * larghezza + col]).

Grazie.

È stato utile?

Soluzione

Dopo aver letto i dati di immagine per qualche tampone, ghisa ordinaria dovrebbe fare il trucco:

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

Esempio utilizza la libreria GdkPixbuf, ma altre biblioteche dovrebbe essere simile.

Altri suggerimenti

A meno che non si sta facendo per l'interesse e l'apprendimento, vi consiglio di fare utilizzare una libreria di terze parti, ad esempio ImageMagick .
Questo vi farà risparmiare tempo (e bug Evita)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top