Question

Comment puis-je faire pour convertir les pixels dans une image (fichier .png) à un tableau d'entiers, où chaque pixel est converti en son équivalent ARGB entier? Pas un tableau d'entiers 2D en passant, un 1D one (dont l'accès se fait par matrice [* rangée largeur + col]).

Merci.

Était-ce utile?

La solution

Une fois que vous avez lu les données d'image à une mémoire tampon, fonte ordinaire devrait faire l'affaire:

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

Exemple utilise la bibliothèque GdkPixbuf, mais d'autres bibliothèques devrait être similaire.

Autres conseils

À moins que vous faites pour l'intérêt et l'apprentissage, je vous recommande de faire utiliser une bibliothèque tierce partie, par exemple ImageMagick .
Cela vous fera gagner du temps (et bugs éviter)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top