C ++ de conversion d'image de tableau d'entiers
-
27-09-2019 - |
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.
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