尝试
最近遇到一个需求需要处理png 图片,由于处理过bmp 图片,所以想跟bmp 图片的处理过程一样直接去掉头信息,但是发现解开png之后发现头信息中数据长度和实际的的,data 数据量对不上,发现数据是压缩,跟bmp 的就不一样了。
解决方案
自己去解压数据肯定不现实,查到png 图片一般都是使用libpng 来处理,libpng 是一个开源库
这个开源库有windows 和Linux 的版本,有编译库 有demo 在开源软件中算是一个比较完善的项目。
编译
现需要下载两个开源代码
1.libpng
http://libpng.com/pub/png/libpng.html
2.zlib
http://www.zlib.net/
VS2015加载libpng,zlib库:
1. C/C++常规->附加包含目录中把包含png.h等头文件的目录加进来
2. 链接器->输入->附加依赖项中加zlib.lib;libpng.lib。
3.通用属性->VC++ 目录->库目录中把放着zlib.lib和libpng.lib的目录加进来。
由于libpng 需要zlib的依赖,所以两个目录需要设置路径索引,在lpng1637\projects\vstudio\下有一个zlib.props 中
按照上面的路径,就不用了改了,直接使用默认的路径
一共7个project
编译的结果
结果
debug 下生成两个lib