Pregunta

¿Cómo iría sobre la conversión de los píxeles de una imagen (archivo .png) a una matriz de enteros, donde cada pixel se convierte en su ARGB número entero equivalente? No es un número entero matriz 2D por cierto, un 1D uno (donde el acceso es a través de array [fila * ancho + col]).

Gracias.

¿Fue útil?

Solución

Una vez que haya leído los datos de imagen en algún buffer, fundido común debe hacer el truco:

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

Ejemplo utiliza la biblioteca GdkPixbuf, pero otras bibliotecas debe ser similar.

Otros consejos

A menos que usted está haciendo por el interés y el aprendizaje, recomendaría usted hace uso de una biblioteca de terceros, por ejemplo, ImageMagick .
Esto le ahorrará tiempo (y los errores se deben evitar)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top