亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? libpng.3

?? qtopia-phone-2.2.0下png工具庫源代碼實現。
?? 3
?? 第 1 頁 / 共 5 頁
字號:
\fBvoid png_write_chunk_data (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fP\fIdata\fP\fB, png_size_t \fIlength\fP\fB);\fP\fI\fB\fBvoid png_write_chunk_end (png_structp \fIpng_ptr\fP\fB);\fP\fI\fB\fBvoid png_write_chunk_start (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fP\fIchunk_name\fP\fB, png_uint_32 \fIlength\fP\fB);\fP\fI\fB\fBvoid png_write_destroy (png_structp \fIpng_ptr\fP\fB);\fP\fI\fB\fBvoid png_write_destroy_info (png_infop \fIinfo_ptr\fP\fB);\fP\fI\fB\fBvoid png_write_end (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP\fI\fB\fBvoid png_write_flush (png_structp \fIpng_ptr\fP\fB);\fP\fI\fB\fBvoid png_write_image (png_structp \fP\fIpng_ptr\fP\fB, png_bytepp \fIimage\fP\fB);\fP\fI\fB\fBDEPRECATED: void png_write_init (png_structp \fIpng_ptr\fP\fB);\fP\fI\fB\fBDEPRECATED: void png_write_init_2 (png_structp \fP\fIpng_ptr\fP\fB, png_const_charp \fP\fIuser_png_ver\fP\fB, png_size_t \fP\fIpng_struct_size\fP\fB, png_size_t \fIpng_info_size\fP\fB);\fP\fI\fB\fBvoid png_write_info (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP\fI\fB\fBvoid png_write_info_before_PLTE (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP\fI\fB\fBvoid png_write_png (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, int \fP\fItransforms\fP\fB, png_voidp \fIparams\fP\fB);\fP\fI\fB\fBvoid png_write_row (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fIrow\fP\fB);\fP\fI\fB\fBvoid png_write_rows (png_structp \fP\fIpng_ptr\fP\fB, png_bytepp \fP\fIrow\fP\fB, png_uint_32 \fInum_rows\fP\fB);\fP\fI\fB.SH DESCRIPTIONThe.I libpnglibrary supports encoding, decoding, and various manipulations ofthe Portable Network Graphics (PNG) format image files.  It uses the.IR zlib(3)compression library.Following is a copy of the libpng.txt file that accompanies libpng..SH LIBPNG.TXTlibpng.txt - A description on how to use and modify libpng libpng version 1.0.9 - January 31, 2001 Updated and distributed by Glenn Randers-Pehrson <randeg@alum.rpi.edu> Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson For conditions of distribution and use, see copyright notice in png.h. based on: libpng 1.0 beta 6  version 0.96 May 28, 1997 Updated and distributed by Andreas Dilger Copyright (c) 1996, 1997 Andreas Dilger libpng 1.0 beta 2 - version 0.88  January 26, 1996 For conditions of distribution and use, see copyright notice in png.h. Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. Updated/rewritten per request in the libpng FAQ Copyright (c) 1995, 1996 Frank J. T. Wojcik December 18, 1995 & January 20, 1996.SH I. IntroductionThis file describes how to use and modify the PNG reference library(known as libpng) for your own use.  There are five sections to thisfile: introduction, structures, reading, writing, and modification andconfiguration notes for various special platforms.  In addition to thisfile, example.c is a good starting point for using the library, asit is heavily commented and should include everything most peoplewill need.  We assume that libpng is already installed; see theINSTALL file for instructions on how to install libpng.Libpng was written as a companion to the PNG specification, as a wayof reducing the amount of time and effort it takes to support the PNGfile format in application programs.The PNG-1.2 specification is available at <http://www.libpng.org/pub/png>and at <ftp://ftp.uu.net/graphics/png/documents/>.The PNG-1.0 specification is availableas RFC 2083 <ftp://ftp.uu.net/graphics/png/documents/> and as aW3C Recommendation <http://www.w3.org/TR/REC.png.html>. Someadditional chunks are described in the special-purpose public chunksdocuments at <ftp://ftp.uu.net/graphics/png/documents/>.Other informationabout PNG, and the latest version of libpng, can be found at the PNG homepage, <http://www.libpng.org/pub/png/>and at <ftp://ftp.uu.net/graphics/png/>.Most users will not have to modify the library significantly; advancedusers may want to modify it more.  All attempts were made to make it ascomplete as possible, while keeping the code easy to understand.Currently, this library only supports C.  Support for other languagesis being considered.Libpng has been designed to handle multiple sessions at one time,to be easily modifiable, to be portable to the vast majority ofmachines (ANSI, K&R, 16-, 32-, and 64-bit) available, and to be easyto use.  The ultimate goal of libpng is to promote the acceptance ofthe PNG file format in whatever way possible.  While there is stillwork to be done (see the TODO file), libpng should cover themajority of the needs of its users.Libpng uses zlib for its compression and decompression of PNG files.Further information about zlib, and the latest version of zlib, canbe found at the zlib home page, <http://www.info-zip.org/pub/infozip/zlib/>.The zlib compression utility is a general purpose utility that isuseful for more than PNG files, and can be used without libpng.See the documentation delivered with zlib for more details.You can usually find the source files for the zlib utility wherever youfind the libpng source files.Libpng is thread safe, provided the threads are using differentinstances of the structures.  Each thread should have its ownpng_struct and png_info instances, and thus its own image.Libpng does not protect itself against two threads using thesame instance of a structure..SH II. StructuresThere are two main structures that are important to libpng, png_structand png_info.  The first, png_struct, is an internal structure thatwill not, for the most part, be used by a user except as the firstvariable passed to every libpng function call.The png_info structure is designed to provide information about thePNG file.  At one time, the fields of png_info were intended to bedirectly accessible to the user.  However, this tended to cause problemswith applications using dynamically loaded libraries, and as a resulta set of interface functions for png_info (the png_get_*() and png_set_*()functions) was developed.  The fields of png_info are still available forolder applications, but it is suggested that applications use the newinterfaces if at all possible.Applications that do make direct access to the members of png_struct (exceptfor png_ptr->jmpbuf) must be recompiled whenever the library is updated,and applications that make direct access to the members of png_info mustbe recompiled if they were compiled or loaded with libpng version 1.0.6,in which the members were in a different order.  In version 1.0.7, themembers of the png_info structure reverted to the old order, as they werein versions 0.97c through 1.0.5.  Starting with version 2.0.0, bothstructures are going to be hidden, and the contents of the structures willonly be accessible through the png_get/png_set functions.The png.h header file is an invaluable reference for programming with libpng.And while I'm on the topic, make sure you include the libpng header file:#include <png.h>.SH III. ReadingWe'll now walk you through the possible functions to call when readingin a PNG file sequentially, briefly explaining the syntax and purposeof each one.  See example.c and png.h for more detail.  Whileprogressive reading is covered in the next section, you will stillneed some of the functions discussed in this section to read a PNGfile..SS SetupYou will want to do the I/O initialization(*) before you get into libpng,so if it doesn't work, you don't have much to undo.  Of course, youwill also want to insure that you are, in fact, dealing with a PNGfile.  Libpng provides a simple check to see if a file is a PNG file.To use it, pass in the first 1 to 8 bytes of the file to the functionpng_sig_cmp(), and it will return 0 if the bytes match the correspondingbytes of the PNG signature, or nonzero otherwise.  Of course, the more bytesyou pass in, the greater the accuracy of the prediction.If you are intending to keep the file pointer open for use in libpng,you must ensure you don't read more than 8 bytes from the beginningof the file, and you also have to make a call to png_set_sig_bytes_read()with the number of bytes you read from the beginning.  Libpng willthen only check the bytes (if any) that your program didn't read.(*): If you are not using the standard I/O functions, you will needto replace them with custom functions.  See the discussion underCustomizing libpng.    FILE *fp = fopen(file_name, "rb");    if (!fp)    {        return (ERROR);    }    fread(header, 1, number, fp);    is_png = !png_sig_cmp(header, 0, number);    if (!is_png)    {        return (NOT_PNG);    }Next, png_struct and png_info need to be allocated and initialized.  Inorder to ensure that the size of these structures is correct even with adynamically linked libpng, there are functions to initialize andallocate the structures.  We also pass the library version, optionalpointers to error handling functions, and a pointer to a data struct foruse by the error functions, if necessary (the pointer and functions canbe NULL if the default error handlers are to be used).  See the sectionon Changes to Libpng below regarding the old initialization functions.The structure allocation functions quietly return NULL if they fail tocreate the structure, so your application should check for that.    png_structp png_ptr = png_create_read_struct       (PNG_LIBPNG_VER_STRING, (png_voidp)user_error_ptr,        user_error_fn, user_warning_fn);    if (!png_ptr)        return (ERROR);    png_infop info_ptr = png_create_info_struct(png_ptr);    if (!info_ptr)    {        png_destroy_read_struct(&png_ptr,           (png_infopp)NULL, (png_infopp)NULL);        return (ERROR);    }    png_infop end_info = png_create_info_struct(png_ptr);    if (!end_info)    {        png_destroy_read_struct(&png_ptr, &info_ptr,          (png_infopp)NULL);        return (ERROR);    }If you want to use your own memory allocation routines,define PNG_USER_MEM_SUPPORTED and usepng_create_read_struct_2() instead of png_create_read_struct():    png_structp png_ptr = png_create_read_struct_2       (PNG_LIBPNG_VER_STRING, (png_voidp)user_error_ptr,        user_error_fn, user_warning_fn, (png_voidp)        user_mem_ptr, user_malloc_fn, user_free_fn);The error handling routines passed to png_create_read_struct()and the memory alloc/free routines passed to png_create_struct_2()are only necessary if you are not using the libpng supplied errorhandling and memory alloc/free functions.When libpng encounters an error, it expects to longjmp backto your routine.  Therefore, you will need to call setjmp and passyour png_jmpbuf(png_ptr).  If you read the file from differentroutines, you will need to update the jmpbuf field every time you entera new routine that will call a png_*() function.See your documentation of setjmp/longjmp for your compiler for moreinformation on setjmp/longjmp.  See the discussion on libpng errorhandling in the Customizing Libpng section below for more informationon the libpng error handling.  If an error occurs, and libpng longjmp'sback to your setjmp, you will want to call png_destroy_read_struct() tofree any memory.    if (setjmp(png_jmpbuf(png_ptr)))    {        png_destroy_read_struct(&png_ptr, &info_ptr,           &end_info);        fclose(fp);        return (ERROR);    }If you would rather avoid the complexity of setjmp/longjmp issues,you can compile libpng with PNG_SETJMP_NOT_SUPPORTED, in which caseerrors will result in a call to PNG_ABORT() which defaults to abort().Now you need to set up the input code.  The default for libpng is touse the C function fread().  If you use this, you will need to pass avalid FILE * in the function png_init_io().  Be sure that the file isopened in binary mode.  If you wish to handle reading data in anotherway, you need not call the png_init_io() function, but you must thenimplement the libpng I/O methods discussed in the Customizing Libpngsection below.    png_init_io(png_ptr, fp);If you had previously opened the file and read any of the signature fromthe beginning in order to see if this was a PNG file, you need to letlibpng know that there are some bytes missing from the start of the file.    png_set_sig_bytes(png_ptr, number);.SS Setting up callback codeYou can set up a callback function to handle any unknown chunks in theinput stream. You must supply the function    read_chunk_callback(png_ptr ptr,         png_unknown_chunkp chunk);    {       /* The unknown chunk structure contains your          chunk data: */           png_byte name[5];           png_byte *data;           png_size_t size;       /* Note that libpng has already taken care of the          CRC handling */       /* put your code here.  Return one of the following: */       return (-n); /* chunk had an error */       return (0); /* did not recognize */       return (n); /* success */    }(You can give your function another name that you like instead of

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
老司机午夜精品| 国内久久精品视频| 亚洲欧美福利一区二区| 日韩欧美高清在线| 中文一区二区在线观看| 亚洲精品va在线观看| 国产一区美女在线| 91视视频在线直接观看在线看网页在线看| 在线免费观看一区| 国产日韩欧美综合在线| 青青草97国产精品免费观看| 国产福利91精品一区二区三区| 欧美伦理电影网| 亚洲精品日日夜夜| 成a人片亚洲日本久久| 久久久www成人免费无遮挡大片| 亚洲成av人综合在线观看| 色综合天天综合网天天看片| 久久女同互慰一区二区三区| 免费一级欧美片在线观看| 欧美日韩高清在线| 亚洲综合视频在线观看| 91免费精品国自产拍在线不卡| 亚洲国产精品二十页| 天天综合网 天天综合色| 在线视频你懂得一区二区三区| 中文字幕亚洲成人| 99久久久久免费精品国产| 国产精品超碰97尤物18| 成人av动漫网站| 国产精品色婷婷| 春色校园综合激情亚洲| 欧美国产精品v| 成人av在线电影| 国产精品每日更新在线播放网址| 成人一区二区三区中文字幕| 久久久久久久久久久黄色| 国产乱人伦偷精品视频免下载 | 亚洲国产精品一区二区久久| 色综合色综合色综合色综合色综合| 国产精品少妇自拍| 成人app下载| 亚洲欧美成aⅴ人在线观看| 91碰在线视频| 亚洲chinese男男1069| 88在线观看91蜜桃国自产| 美女在线观看视频一区二区| 精品久久久久久久久久久院品网 | 99久久综合狠狠综合久久| 亚洲欧美日韩在线| 欧美午夜精品免费| 日本亚洲天堂网| 国产午夜精品一区二区三区视频| 国产成人午夜电影网| 亚洲欧洲日产国产综合网| 在线观看亚洲精品| 日韩精品国产精品| 国产亚洲精品超碰| 成人午夜伦理影院| 夜夜夜精品看看| 精品三级av在线| 成人av电影在线播放| 午夜精品福利在线| 久久久精品一品道一区| 在线视频一区二区三| 久久精品国产精品青草| 中文字幕成人网| 欧美日韩亚洲综合| 国产91精品露脸国语对白| 亚洲黄色免费网站| 精品久久久久久久久久久院品网 | 欧美一级日韩免费不卡| 国产999精品久久久久久绿帽| 亚洲一区二区三区中文字幕在线| 日韩亚洲欧美综合| 91在线视频播放| 国产一区二区三区蝌蚪| 亚洲激情在线播放| 久久蜜桃av一区二区天堂| 欧美亚洲国产一卡| 国产成人高清视频| 青青草原综合久久大伊人精品| 国产精品电影院| 欧美岛国在线观看| 欧美三级在线看| a美女胸又www黄视频久久| 精品亚洲porn| 亚洲国产日韩a在线播放 | 日韩一区和二区| 色av综合在线| 成人av网址在线| 激情综合色播五月| 午夜精品在线视频一区| 中文字幕一区二区三区四区| 精品少妇一区二区三区在线视频| 一本久久综合亚洲鲁鲁五月天| 国产精品99久| 九色综合国产一区二区三区| 日韩一区精品视频| 亚洲一级二级三级| 18成人在线视频| 中文字幕在线免费不卡| 国产欧美一区二区精品忘忧草| 日韩欧美一级在线播放| 91精品国产色综合久久ai换脸| 欧美视频一区二区三区| 色婷婷综合激情| 色狠狠一区二区三区香蕉| av一区二区三区四区| 不卡一区在线观看| 成人性生交大合| 国产精品中文字幕一区二区三区| 婷婷开心激情综合| 午夜电影一区二区| 亚洲成人www| 日日夜夜免费精品| 日日夜夜精品视频天天综合网| 午夜精品一区在线观看| 日韩国产欧美在线播放| 日本va欧美va瓶| 麻豆国产一区二区| 国产一区二区精品久久99| 国产成人在线视频免费播放| 国产aⅴ精品一区二区三区色成熟| 久草这里只有精品视频| 国产一区二区剧情av在线| 丁香六月综合激情| av不卡一区二区三区| 一本一本大道香蕉久在线精品| 色婷婷亚洲一区二区三区| 欧美三级日本三级少妇99| 欧美久久久久免费| 精品日韩在线观看| 中文字幕高清不卡| 亚洲精品日韩综合观看成人91| 亚洲综合一区在线| 理论电影国产精品| 国产精品1024| 色香蕉久久蜜桃| 91精品久久久久久久99蜜桃| 精品国产一区二区三区忘忧草 | 91精品国产一区二区人妖| 日韩欧美亚洲一区二区| 久久精品人人做人人综合| 亚洲欧美在线视频观看| 亚洲制服丝袜一区| 韩日av一区二区| 97精品久久久久中文字幕| 3d成人动漫网站| 国产欧美一区二区精品忘忧草| 玉米视频成人免费看| 久久99热这里只有精品| 99久久久国产精品免费蜜臀| 欧美日韩激情一区| 国产无人区一区二区三区| 亚洲第一福利视频在线| 国产福利一区在线| 欧美日韩三级一区| 国产色婷婷亚洲99精品小说| 亚洲一区二区高清| 国产1区2区3区精品美女| 欧美日本一道本在线视频| 亚洲国产精品二十页| 日韩精品每日更新| 97久久超碰国产精品电影| 精品99一区二区三区| 一级精品视频在线观看宜春院 | 亚洲美女屁股眼交3| 久久成人久久爱| 欧美无砖专区一中文字| 国产精品欧美极品| 国产在线不卡一卡二卡三卡四卡| 欧美少妇一区二区| 日韩一区欧美小说| 国产综合久久久久久鬼色 | www.亚洲色图.com| 日韩精品中文字幕一区| 亚洲成a人片在线观看中文| 94色蜜桃网一区二区三区| 久久精品夜夜夜夜久久| 午夜国产不卡在线观看视频| 在线亚洲免费视频| 亚洲色大成网站www久久九九| 国产成人精品免费看| 日韩欧美一区二区三区在线| 亚洲一级二级在线| 在线观看视频一区二区| 亚洲狼人国产精品| 91网站在线播放| 国产精品福利在线播放| 波多野结衣视频一区| 国产日韩精品久久久| 国产精品伊人色| 久久伊人蜜桃av一区二区| 美女网站在线免费欧美精品| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲国产精品v| 国内精品第一页| 欧美精品一区二区精品网| 久久99精品国产麻豆婷婷|