尝试

最近遇到一个需求需要处理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

libpng 处理png图片相关推荐

  1. libpng库编码图片为png(RGB压缩为png图片:与ffmpeg视频解码存储为png图片)

    //*====== 参考:1.http://blog.csdn.net/solstice/article/details/2062 2.libpng库的example.c文件 ======*// 一. ...

  2. Java在linux新建png_教你如何使用libpng显示PNG图片

    libpng是一个跨平台的png解码库,方便易用.我这里不说它怎么移植,基本上如果是支持fopen之类函数的平台都可以支持.其实他的移植非常简单,zlib可能麻烦一点,但相信一般人都能搞定.主要是文件 ...

  3. linux 读取png图片大小,使用libpng读取PNG图片像素数据

    附录  让我们打开pnglib下面的一个example.c /* Read a PNG file. You may want to return an error code if the read * ...

  4. OpenGL png图片 纹理贴图,去除png图片黑边

    http://blog.csdn.net/cjkwin/article/details/6011882 用libpng把png图片读出来就可以用读出的数据生成文理了. 将png图片作为纹理贴图,在图片 ...

  5. Android开源项目分类汇总-转载

    太长了,还是转载吧... 今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源项目分类汇总,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有 ...

  6. 计算机面试数据库基本知识,面试基础知识集合(python、计算机网络、操作系统、数据结构、数据库等杂记)...

    JS 面向对象随笔 1.一个对象的静态属性只能通过类名来访问 不能通过实例来访问 如下面定义个HelloWord的类 function HelloWord(){ console.log("这 ...

  7. LAMP源代码编译整理

    在我们编译安装Apache 之前,要考虑的是让Apache 在什么样的模式下运行,因为从Apache 2.0 就加入了MPM(Multi-Processing Modules,多道处理模块). Apa ...

  8. opencv中的子库

    1 FLANN 近似最近邻库,NN就是nearest neighbor的缩写. 2 IlmImf Ilm是Industrial light & magic公司的缩写. Imf是image fo ...

  9. linux图像显示(五)使用freetype处理矢量字体

    linux图像显示 linux图像显示(一)framebuffer操作 linux图像显示(二)bmp图片 linux图像显示(三)使用libjpg处理jpg图片 linux图像显示(四)使用libp ...

  10. Google Filament 源码学习(二):三方库分类总结

    前言 拿到Filament代码一头雾水,到底要怎么看呢,先从第三方库看起吧,如下对三方库进行了分类梳理. 注:刚刚开始学习,有很多库和基本概念都不是很清楚,有不当之处请大家随时指出,本人一定虚心接受. ...

最新文章

  1. You are my brother
  2. 每日一皮:以为是王者,没想到是个青铜...
  3. mysql数据库备份(完全备份,增量备份)
  4. java gui中文变方块_我的世界Java版 20w48a 发布 添加滴石和尖滴石
  5. 使用layui的layer组件做弹出层
  6. python 里什么时候缩进_python什么时候缩进
  7. IOS绘制渐变背景色折线图的一种尝试
  8. 一个新基民的感叹:人心不足蛇吞象
  9. mapred.local.dir
  10. (转载)JavaScript中的原型和对象机制
  11. 深入浅出MySQL全文 下载
  12. 【编译原理】理解BNF
  13. 项目是通过文件流的方法查看文件 无法直接在线查看mht后缀文件的解决方案
  14. html学习——介绍
  15. 忘记开机密码怎么开机
  16. 国际网页短信后台定制源码搭建软件平台定制-移讯云短信系统
  17. 2016蓝桥杯报纸页数(C++C组)
  18. 电子技术——系统性分析反馈电压放大器
  19. centOS7安装搜狗拼音输入法
  20. 欧盟调查显示100Mbps宽带网络建设需5020亿欧元资金

热门文章

  1. Windows下安装Ruby及配置镜像源
  2. 简单的matlab阶乘计算
  3. 百度cpc联盟的漏洞?还是内鬼?
  4. C# BackgroundWorker使用讲解
  5. FireMonkey ListView 设计期添加按钮及其 OnClick 事件
  6. 计算机网络——CDN加速技术原理
  7. 撤销Excel文件工作表保护的两种方法
  8. 永远跳票的 永远的毁灭公爵
  9. 【安卓大作业】Android Studio开发项目图书管理系统“书香驿站”
  10. dnSpy反编译C#编译以后dll文件并调试