C ++ conversione immagine a matrice di interi
-
27-09-2019 - |
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.
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