pnglib库很好的支持了C语言模式下对png操作的支持,而且使用过程也比较简单,移植过程遇到的问题也不是很大。在这里简单的谈一下pnglib库的使用和移植,如果有错误的地方希望各位挨踢人士指出。
现在最新的pnglib库的版本是1.5.7,可以从官网下载http://www.libpng.org/pub/png/libpng.html。pnglib库对zlib有依赖,所以在移植pnglib的同时,如果你的平台上面没有zlib,那也必须把zlib一块移植了。我在移植的过程中使用的是pnglib1.5.7和zlib1.2.5 ,这2个版本的库在移植的时候并没有出现不兼容的问题。我使用的平台是安凯的平台,主芯片是anyka3660,主要面向教育方向的消费类产品。考虑到大部分人不是用anyka这个比较不熟悉的平台,我特意在VC6.0上做了移植和测试,测试的结果也是正常可以使用的。而且在VC6.0上移植起来也更为方便。
在这里先讲一下pnglib的使用,再根据使用过程的具体问题再说说pnglib的移植应该注意的问题。先上一段测试代码先。我会在csdn上将整个测试的VC6.0工程上传。
int m_width = 0, m_height = 0, color_type = 0;
int size = 0, pos = 0, i = 0, j = 0;
unsigned char* bgra = NULL;
png_structp png_ptr = NULL;
png_infop info_ptr = NULL;
png_typep *row_pointers;
FILE *fp;
file = fopen(pngname, "rb"