利用libPng库绘制PNG图片
作者:飞入蓝天 来源: 十二维教育网 人气:884 类型: 付费 价格:¥1 所属课程:C++国际工程师培训    
本文档有配套视频,购买本文档或加入该课程后可播放!

允许运行Flash播放器吗?如未安装,请先安装Flash Player(版本: 11.4.0)或更高版本.

1、将bin目录拷贝至工程目录下

2、程序中添加相关头文件和库文件

#include "binpng.h"

#include "binzlib.h"

#include "binwsGDI.h"

#pragma comment(lib, "binlibpng16.lib")

#ifdef _DEBUG

       #pragma comment(lib, "binwsGDI_d.lib")

#else

       #pragma comment(lib, "binwsGDI.lib")

#endif

3、将libpng16.dll动态链接库文件拷贝到工程目录。

4、读取PNG文件,绘制PNG文件,生成新的PNG文件

   可以将下列代码放置到一个按钮的单击事件里。

png_image image;                    

 

memset(&image, 0, (sizeof  image));

image.version = PNG_IMAGE_VERSION;

if  (png_image_begin_read_from_file(&image, "test.png")  != 0)

{

         png_bytep  buffer;

         image.format  = PNG_FORMAT_RGBA;

 

         buffer  = (png_bytep)malloc(PNG_IMAGE_SIZE(image));

         if (buffer != NULL && png_image_finish_read(&image,  NULL, buffer,

                            0,  NULL) != 0)

         {      

                   int iWidth = image.width;

                   int iHeight = image.height;

                   TCHAR  tszInfo[100] = {0};

                   _stprintf(tszInfo,  _T(":%d :%d"), iWidth,  iHeight);

                   AfxMessageBox(tszInfo);

 

                   // 绘制到界面上

                   unsigned char*  pData = (unsigned char*)buffer;

                   HDC  hdc = ::GetDC(m_hWnd);

                   CwsGDI::DrawDCByData(hdc,  0, 0, iWidth, iHeight, pData); 

 

                   if (png_image_write_to_file(&image, "test2.png", 0,

                                     buffer,  0, NULL) != 0)

                   {                

                            AfxMessageBox(L"生成新的图片成功");

                   }

         }

         else

         {          

                   if (buffer == NULL)

                            png_image_free(&image);

                   else

                            free(buffer);

         }

}

 

 

本文为付费文档,请购买或加入所属课程查阅全部内容!

评论

正在加载评论...
提交评论

  •  1. 一个简单实用的内存池类 试看
  •  2. C++命名推荐规范 试看
  •  3. MFC对话框编程(二)
  •  4. 双机热备与虚拟IP的实现
  •  5. 动态链接库(二)
  •  6. 多线程编程(一)
  •  7. PHP开发环境搭建
  •  8. MFC对话框编程(一)
  •  9. 类的多态(一)
  •  10. PHP与MySQL
  •  11. PHP数组
  •  12. 日期时间操作
  •  13. 如何让VS2010不产生sdf文件
  •  14. VC++利用ADO操作Access数据库 试看
  •  15. 利用libPng库绘制PNG图片
  •  16. PHP基础语法
  •  17. 表达式与语句(一)
  •  18. 会话管理
  •  19. 队列
  •  20. MFC单文档应用程序(一)
  •  21. 类的多态(二)
  •  22. 表达式与语句(二)
  •  23. 获取鼠标在页面上的位置
  •  24. JAVA下利用JAX-WS编写webservice 试看
十二维网, 版权所有©2005-2018
电话:15013459492 (宋生)  
Email:wave12@126.com
深圳总部:深圳市福田区八卦四路先科机电大厦6楼
网站备案:粤ICP备10018904号