C ++ Converter Image em matriz inteira
-
27-09-2019 - |
Pergunta
Como eu converteria os pixels em uma imagem (arquivo .png) em uma matriz inteira, onde cada pixel é convertido em seu equivalente inteiro argb? A propósito, não é uma matriz inteira 2D, um 1D (onde o acesso é através da matriz [linha*largura+col]).
Obrigado.
Solução
Depois de ler os dados da imagem em algum buffer, o elenco comum deve fazer o truque:
GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file ("image.png", NULL);
unsigned char *pixels = gdk_pixbuf_get_pixels (pixbuf);
int *array = reinterpret_cast<int*>(pixels);
O exemplo usa a biblioteca GDKPixBuf, mas outras bibliotecas devem ser semelhantes.
Outras dicas
A menos que você esteja fazendo isso por interesse e aprendizado, eu recomendaria que você use uma biblioteca de terceiros, por exemplo Imagemagick.
Isso economizará seu tempo (e evita bugs)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow