是否可以使用fopen从灰度png获取数据,然后将其转换为与灰度相对应的整数?
FILE *fr;
int ch;
fr = fopen( "file_name.png", "rb" );
while ( (ch=fgetc(fr)) != EOF )
printf( "%d", ch );
fclose( fr );
答案 0 :(得分:2)
不是那么容易,您可以阅读有关文件格式的内容,例如维基百科:
http://en.wikipedia.org/wiki/Portable_Network_Graphics
我认为您最好的选择是使用像FreeImage这样的库来加载图像。
答案 1 :(得分:1)
简单的答案是肯定的!但要理解读取数据,您需要libraries或how PNG files are structured的深入了解。
我列出的库向您展示了如何读取png文件的分步过程。
答案 2 :(得分:1)
我不会碰libpng。太复杂了。
试试这个:http://nothings.org/stb_image.c
这很容易:
unsigned char *image;
int x, y, n;
image = stbi_load("easy.png", &x, &y, &n, 4);
/* process image here */
stb_image_free(image);