资源简介
png++依赖于libpng库,libpng库依赖于zlib库,这3个库的版本要一致才可以,同时代码要稍作修改才能安装,具体见文件中的说明文档。
代码片段和文件信息
#if 0 /* in case someone actually tries to compile this */
/* example.c - an example of using libpng
* Last changed in libpng 1.2.37 [June 4 2009]
* This file has been placed in the public domain by the authors.
* Maintained 1998-2010 Glenn Randers-Pehrson
* Maintained 1996 1997 Andreas Dilger)
* Written 1995 1996 Guy Eric Schalnat Group 42 Inc.)
*/
/* This is an example of how to use libpng to read and write PNG files.
* The file libpng.txt is much more verbose then this. If you have not
* read it do so first. This was designed to be a starting point of an
* implementation. This is not officially part of libpng is hereby placed
* in the public domain and therefore does not require a copyright notice.
*
* This file does not currently compile because it is missing certain
* parts like allocating memory to hold an image. You will have to
* supply these parts to get it to compile. For an example of a minimal
* working PNG reader/writer see pngtest.c included in this distribution;
* see also the programs in the contrib directory.
*/
#include “png.h“
/* The png_jmpbuf() macro used in error handling became available in
* libpng version 1.0.6. If you want to be able to run your code with older
* versions of libpng you must define the macro yourself (but only if it
* is not already defined by libpng!).
*/
#ifndef png_jmpbuf
# define png_jmpbuf(png_ptr) ((png_ptr)->jmpbuf)
#endif
/* Check to see if a file is a PNG file using png_sig_cmp(). png_sig_cmp()
* returns zero if the image is a PNG and nonzero if it isn‘t a PNG.
*
* The function check_if_png() shown here but not used returns nonzero (true)
* if the file can be opened and is a PNG 0 (false) otherwise.
*
* If this call is successful and you are going to keep the file open
* you should call png_set_sig_bytes(png_ptr PNG_BYTES_TO_CHECK); once
* you have created the png_ptr so that libpng knows your application
* has read that many bytes from the start of the file. Make sure you
* don‘t call png_set_sig_bytes() with more than 8 bytes read or give it
* an incorrect number of bytes read or you will either have read too
* many bytes (your fault) or you are telling libpng to read the wrong
* number of magic bytes (also your fault).
*
* Many applications already read the first 2 or 4 bytes from the start
* of the image to determine the file type so it would be easiest just
* to pass the bytes to png_sig_cmp() or even skip that if you know
* you have a PNG file and call png_set_sig_bytes().
*/
#define PNG_BYTES_TO_CHECK 4
int check_if_png(char *file_name FILE **fp)
{
char buf[PNG_BYTES_TO_CHECK];
/* Open the prospective PNG file. */
if ((*fp = fopen(file_name “rb“)) == NULL)
return 0;
/* Read in some of the signature bytes */
if (fread(buf 1 PNG_BYTES_TO_CHECK *fp) != PNG_BYTES_TO_CHECK)
return 0;
/* Compare the first
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-09-17 16:35 png++\
目录 0 2018-09-17 16:35 png++\lpng1253\
文件 2082 2018-09-17 16:35 png++\lpng1253\ANNOUNCE
文件 140937 2018-09-17 16:35 png++\lpng1253\CHANGES
文件 7918 2018-09-17 16:35 png++\lpng1253\CMakeLists.txt
文件 446 2018-09-17 16:35 png++\lpng1253\configure
目录 0 2018-09-17 16:35 png++\lpng1253\contrib\
目录 0 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\
文件 18332 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\COPYING
文件 2423 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\LICENSE
文件 4035 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\Makefile.mingw32
文件 3070 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\Makefile.sgi
文件 4142 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\Makefile.unx
文件 3448 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\Makefile.w32
文件 3689 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\makevms.com
文件 7987 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\README
文件 10176 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\readpng.c
文件 3348 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\readpng.h
文件 25417 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\readpng2.c
文件 4063 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\readpng2.h
文件 5603 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\readppm.c
文件 23595 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\rpng-win.c
文件 31680 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\rpng-x.c
文件 46534 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\rpng2-win.c
文件 84395 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\rpng2-x.c
文件 12901 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\toucan.png
文件 31903 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\wpng.c
文件 13181 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\writepng.c
文件 4370 2018-09-17 16:35 png++\lpng1253\contrib\gregbook\writepng.h
目录 0 2018-09-17 16:35 png++\lpng1253\contrib\pngminim\
目录 0 2018-09-17 16:35 png++\lpng1253\contrib\pngminim\decoder\
............此处省略1309个文件信息
- 上一篇:汇编语言编写的交通灯模拟系统 计算机硬件课程设计
- 下一篇:IE_Debug工具
评论
共有 条评论