三、初步使用
1. 对 VC6 进行设置库虽然已经编译完成了, 但是如果要使用, 我们还得将其加入到 VC6 的目录中, 让 VC6 在编译链接时能够找到这两个库。
菜单栏 -> 工具(Tools) -> 选项(Options) -> 目录选项卡(Directories)
在 include files 选项中, 将 libpng 和 zlib 库所在的文件夹加入其中(.h\.c源码文件所在的文件夹)。
在 library files 选项中, 将刚刚编译得到的 .lib 文件所在的文件夹加入其中。
完成后如上图所示, 当然, 如果你嫌lib路径中一次添加4个文件夹路径有点浪费, 那么你完全可以将那 4 个 .lib 文件放在一个文件夹下再添加进去, 或者直接复制到已有的 lib 路径文件夹下都行。
2. 将 .lib 文件添加到工程设置中新建一个工程, 工程类型就选 Win32 Console Application 的空工程吧, 在工程设置(Projet Settings)中 ( 工作空间 -> 右键工程 -> 设置...(Settings...) 的 链接(Link) 选项卡中的 对象\库模块(Object\library modules) 中添加刚刚编译得到的 .lib 文件名称.
Win32 Debug 添加 zlibd.lib libpngd.lib , Win32 Release 模式添加 zlib.lib libpng.lib
如果你不想这样做, 也可以使用 #pragma comment(lib, "libpng.lib") 这个的命令来完成。
3. 使用 libpng 检测文件是否为 png 格式的图像假设上面的步骤都已经完成后, 我们来写一段代码测试下 libpng 是否已经可用, 这段代码的作用是检查一个文件是否为 png 格式的图片:
#include <stdio.h>
#include "png.h" // libpng 库的一个重要头文件
int main()
{
int is_png; //是否为png
char cbHeader[8]; //文件头
FILE *fp = fopen( "test.png", "rb" );
if( !fp )
{
puts( "文件打开错误!" );
return 0;
}
fread( cbHeader, 1, 8, fp ); //从文件中读取文件头
is_png = png_sig_cmp( cbHeader, 0, 8 ); //检测该文件头是否为 png 格式的图片
is_png == 0 ? puts( "是png" ) : puts( "不是png" );
return 0;
}