VC6 下 libpng 库的编译与初步使用


目录

  • libong 库的介绍
  • VC6 下 libpng 的编译
  • 下载 libpng 与 zlib
  • 进行编译
  • 得到 .lib 文件
  • 初步使用
  • 对 VC6 进行设置
  • 将 .lib 文件添加到工程设置中
  • 使用 libpng 检测文件是否为 png 格式的图像
  • libpng 官方手册

一、libpng 库的介绍

libpng 用于处理 png 格式的图片, 是一套比较完善的 png 图片处理库, 免费、开源, 因此受到了很高的好评。(可能有墙,大家懂得)

libpng 的详细介绍:请点这里
libpng 的下载地址:请点这里

目前最新版本的 libpng 为 1.61。

二、VC6 下 libpng 的编译

1. 下载 libpng 与 zlib

笔者所用的IDE依然为 Visual Studio 6.0 ( VC++ 6 ), 所以这里以 VC6 下的编译\使用来作介绍。

首先下载两个库, 一个是 libpng , 另一个则是 zlib 库, zlib 库是一套用于压缩数据的库, libpng 借助了该库作为压缩引擎, 也就是说, libpng 依赖于 zlib 库。

关于这两个库的版本选择, 最新版本的 libpng 和 zlib 都没有提供适用于 VC6 的工程文件, 但是提供的有 vc 9\10 的, 当然, 新版本的 VS 可以将旧的工程文件来进行转换, 但是反过来不行。 因此要下载到适合 VC6 进行编译的版本。

笔者的选择是:

  • libpng 1.4.12 版本, 下载地址: http://sourceforge.net/projects/libpng/files/libpng14/1.4.12/lpng1412.zip/download
  • zlib 1.2.3 版本, 下载地址: http://sourceforge.net/projects/libpng/files/zlib/1.2.3/zlib123.zip/download

如果使用的是更高版本的VS, 那么你也可以从该页 http://sourceforge.net/projects/libpng/files/ 选择适合你的 libpng 和 zlib。

2. 进行编译

将下载到的文件( lpng1412.zip、zlib123.zip )进行解压后(任意目录, 例如: E:\\lpng1412), 进入到 libpng 的解压目录, 找到 libpng 的工作空间文件, 位于:

\\lpng1412\\projects\\visualc6\\libpng.dsw

将该工作区文件打开时, VC6会提示要找到 zlib 库的工程文件, 如图:

这时通过文件选择对话框找到 zlib 工程文件 zlib.dsp 所在的位置后, 点OK进行确定。 zlib 工程文件位于 zlib 解压文件夹中的:

\\zlib123\\projects\\visualc6\\zlib.dsp

此时工作区中有三个项目, libpng、pngtest、zlib, 在组建工具栏中, 如图:

选择需要的编译方式, 如果你的 VC6 常用工具栏中没有如图所示的选项, 右键工具栏的空白处, 在弹出的菜单中选择 "Build" 将该工具栏调出, VC6安装时默认只有一个 "Build MiniBar"。

 

一般情况下, 我们需要以 .lib 方式进行调用, 所以这里使用 Win32 LIB Debug 和 Win32 LIB Release 两种模式对 libpng 各进行一次编译, 也就得到了两个 lib 版本, 一个份 debug 的, 一份是 release 的。

如果需要以 dll 方式进行调用( Win32 DLL Debug\Release ), 或者打算给 VB 进行调用( Win32 DLL VB ), 那么也可以根据自己需要选择其他的编译方式。

3. 得到 .lib 文件

编译完成后, 如果没有出现错误, 此时在 libpng 和 zlib 库的工程文件所在的文件夹下均会出现 Win32_LIB_Debug 和 Win32_LIB_Release 两个文件夹, 检查这4个文件夹中是否有以下4个文件:

  • 1>. zlib 库:
    • zlibd.lib ( Win32_LIB_Debug 模式生成 )
    • zlib.lib ( Win32_LIB_Release 模式生成 )
  • 2>. libpng 库:
    • libpngd.lib ( Win32_LIB_Debug 模式生成 )
    • libpng.lib ( Win32_LIB_Release 模式生成 )

如果存在, 恭喜, 编译完成。

接下来请看第2页精彩内容

 

推荐阅读:

 

利用libpng中的函数读写PNG文件

 

使用libpng读取PNG图片像素数据

 

教你如何使用libpng显示PNG图片

 

libpng的PNG图片读取

  • 1
  • 2
  • 3
  • 下一页

相关内容