是否可以从灰度png中用fopen获取数据,然后将其转换为灰度对应的整数值?是否可以通过fopen从png获取数据?
FILE *fr;
int ch;
fr = fopen("file_name.png", "rb");
while ((ch=fgetc(fr)) != EOF)
printf("%d", ch);
fclose(fr);
是否可以从灰度png中用fopen获取数据,然后将其转换为灰度对应的整数值?是否可以通过fopen从png获取数据?
FILE *fr;
int ch;
fr = fopen("file_name.png", "rb");
while ((ch=fgetc(fr)) != EOF)
printf("%d", ch);
fclose(fr);
不是说很容易,你可以在例如维基百科阅读有关文件格式:
http://en.wikipedia.org/wiki/Portable_Network_Graphics
我觉得你最好的选择是使用像FreeImage的一些库加载图像。
简单的答案是肯定的!但要理解读取的数据,您需要一些libraries或深入了解how PNG files are structured。
我列出的库向您显示了如何读取png文件的分步过程。
我不会碰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);
谢谢,我还有一个问题:是否可以使用stb_image.c创建png文件?我的意思是过程映像,并将其保存回相同的png文件。 – user1281071 2012-04-03 17:04:43
你会这么好心,并张贴一些代码如何只显示与plglib灰度值?我正在阅读链接中的文本,但我感到非常困惑 – user1281071 2012-04-03 12:05:12