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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? pngwrite.c

?? linux syslinux source code
?? C
?? 第 1 頁 / 共 4 頁
字號:
/* pngwrite.c - general routines to write a PNG file * * libpng 1.2.8 - December 3, 2004 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2004 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) *//* get internal access to png.h */#define PNG_INTERNAL#include "png.h"#ifdef PNG_WRITE_SUPPORTED/* Writes all the PNG information.  This is the suggested way to use the * library.  If you have a new chunk to add, make a function to write it, * and put it in the correct location here.  If you want the chunk written * after the image data, put it in png_write_end().  I strongly encourage * you to supply a PNG_INFO_ flag, and check info_ptr->valid before writing * the chunk, as that will keep the code from breaking if you want to just * write a plain PNG file.  If you have long comments, I suggest writing * them in png_write_end(), and compressing them. */void PNGAPIpng_write_info_before_PLTE(png_structp png_ptr, png_infop info_ptr){   png_debug(1, "in png_write_info_before_PLTE\n");   if (!(png_ptr->mode & PNG_WROTE_INFO_BEFORE_PLTE))   {   png_write_sig(png_ptr); /* write PNG signature */#if defined(PNG_MNG_FEATURES_SUPPORTED)   if((png_ptr->mode&PNG_HAVE_PNG_SIGNATURE)&&(png_ptr->mng_features_permitted))   {      png_warning(png_ptr,"MNG features are not allowed in a PNG datastream\n");      png_ptr->mng_features_permitted=0;   }#endif   /* write IHDR information. */   png_write_IHDR(png_ptr, info_ptr->width, info_ptr->height,      info_ptr->bit_depth, info_ptr->color_type, info_ptr->compression_type,      info_ptr->filter_type,#if defined(PNG_WRITE_INTERLACING_SUPPORTED)      info_ptr->interlace_type);#else      0);#endif   /* the rest of these check to see if the valid field has the appropriate      flag set, and if it does, writes the chunk. */#if defined(PNG_WRITE_gAMA_SUPPORTED)   if (info_ptr->valid & PNG_INFO_gAMA)   {#  ifdef PNG_FLOATING_POINT_SUPPORTED      png_write_gAMA(png_ptr, info_ptr->gamma);#else#ifdef PNG_FIXED_POINT_SUPPORTED      png_write_gAMA_fixed(png_ptr, info_ptr->int_gamma);#  endif#endif   }#endif#if defined(PNG_WRITE_sRGB_SUPPORTED)   if (info_ptr->valid & PNG_INFO_sRGB)      png_write_sRGB(png_ptr, (int)info_ptr->srgb_intent);#endif#if defined(PNG_WRITE_iCCP_SUPPORTED)   if (info_ptr->valid & PNG_INFO_iCCP)      png_write_iCCP(png_ptr, info_ptr->iccp_name, PNG_COMPRESSION_TYPE_BASE,                     info_ptr->iccp_profile, (int)info_ptr->iccp_proflen);#endif#if defined(PNG_WRITE_sBIT_SUPPORTED)   if (info_ptr->valid & PNG_INFO_sBIT)      png_write_sBIT(png_ptr, &(info_ptr->sig_bit), info_ptr->color_type);#endif#if defined(PNG_WRITE_cHRM_SUPPORTED)   if (info_ptr->valid & PNG_INFO_cHRM)   {#ifdef PNG_FLOATING_POINT_SUPPORTED      png_write_cHRM(png_ptr,         info_ptr->x_white, info_ptr->y_white,         info_ptr->x_red, info_ptr->y_red,         info_ptr->x_green, info_ptr->y_green,         info_ptr->x_blue, info_ptr->y_blue);#else#  ifdef PNG_FIXED_POINT_SUPPORTED      png_write_cHRM_fixed(png_ptr,         info_ptr->int_x_white, info_ptr->int_y_white,         info_ptr->int_x_red, info_ptr->int_y_red,         info_ptr->int_x_green, info_ptr->int_y_green,         info_ptr->int_x_blue, info_ptr->int_y_blue);#  endif#endif   }#endif#if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED)   if (info_ptr->unknown_chunks_num)   {       png_unknown_chunk *up;       png_debug(5, "writing extra chunks\n");       for (up = info_ptr->unknown_chunks;            up < info_ptr->unknown_chunks + info_ptr->unknown_chunks_num;            up++)       {         int keep=png_handle_as_unknown(png_ptr, up->name);         if (keep != PNG_HANDLE_CHUNK_NEVER &&            up->location && !(up->location & PNG_HAVE_PLTE) &&            !(up->location & PNG_HAVE_IDAT) &&            ((up->name[3] & 0x20) || keep == PNG_HANDLE_CHUNK_ALWAYS ||            (png_ptr->flags & PNG_FLAG_KEEP_UNSAFE_CHUNKS)))         {            png_write_chunk(png_ptr, up->name, up->data, up->size);         }       }   }#endif      png_ptr->mode |= PNG_WROTE_INFO_BEFORE_PLTE;   }}void PNGAPIpng_write_info(png_structp png_ptr, png_infop info_ptr){#if defined(PNG_WRITE_TEXT_SUPPORTED) || defined(PNG_WRITE_sPLT_SUPPORTED)   int i;#endif   png_debug(1, "in png_write_info\n");   png_write_info_before_PLTE(png_ptr, info_ptr);   if (info_ptr->valid & PNG_INFO_PLTE)      png_write_PLTE(png_ptr, info_ptr->palette,         (png_uint_32)info_ptr->num_palette);   else if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)      png_error(png_ptr, "Valid palette required for paletted images\n");#if defined(PNG_WRITE_tRNS_SUPPORTED)   if (info_ptr->valid & PNG_INFO_tRNS)      {#if defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED)         /* invert the alpha channel (in tRNS) */         if ((png_ptr->transformations & PNG_INVERT_ALPHA) &&            info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)         {            int j;            for (j=0; j<(int)info_ptr->num_trans; j++)               info_ptr->trans[j] = (png_byte)(255 - info_ptr->trans[j]);         }#endif      png_write_tRNS(png_ptr, info_ptr->trans, &(info_ptr->trans_values),         info_ptr->num_trans, info_ptr->color_type);      }#endif#if defined(PNG_WRITE_bKGD_SUPPORTED)   if (info_ptr->valid & PNG_INFO_bKGD)      png_write_bKGD(png_ptr, &(info_ptr->background), info_ptr->color_type);#endif#if defined(PNG_WRITE_hIST_SUPPORTED)   if (info_ptr->valid & PNG_INFO_hIST)      png_write_hIST(png_ptr, info_ptr->hist, info_ptr->num_palette);#endif#if defined(PNG_WRITE_oFFs_SUPPORTED)   if (info_ptr->valid & PNG_INFO_oFFs)      png_write_oFFs(png_ptr, info_ptr->x_offset, info_ptr->y_offset,         info_ptr->offset_unit_type);#endif#if defined(PNG_WRITE_pCAL_SUPPORTED)   if (info_ptr->valid & PNG_INFO_pCAL)      png_write_pCAL(png_ptr, info_ptr->pcal_purpose, info_ptr->pcal_X0,         info_ptr->pcal_X1, info_ptr->pcal_type, info_ptr->pcal_nparams,         info_ptr->pcal_units, info_ptr->pcal_params);#endif#if defined(PNG_WRITE_sCAL_SUPPORTED)   if (info_ptr->valid & PNG_INFO_sCAL)#if defined(PNG_FLOATING_POINT_SUPPORTED) && !defined(PNG_NO_STDIO)      png_write_sCAL(png_ptr, (int)info_ptr->scal_unit,          info_ptr->scal_pixel_width, info_ptr->scal_pixel_height);#else#ifdef PNG_FIXED_POINT_SUPPORTED      png_write_sCAL_s(png_ptr, (int)info_ptr->scal_unit,          info_ptr->scal_s_width, info_ptr->scal_s_height);#else      png_warning(png_ptr,          "png_write_sCAL not supported; sCAL chunk not written.\n");#endif#endif#endif#if defined(PNG_WRITE_pHYs_SUPPORTED)   if (info_ptr->valid & PNG_INFO_pHYs)      png_write_pHYs(png_ptr, info_ptr->x_pixels_per_unit,         info_ptr->y_pixels_per_unit, info_ptr->phys_unit_type);#endif#if defined(PNG_WRITE_tIME_SUPPORTED)   if (info_ptr->valid & PNG_INFO_tIME)   {      png_write_tIME(png_ptr, &(info_ptr->mod_time));      png_ptr->mode |= PNG_WROTE_tIME;   }#endif#if defined(PNG_WRITE_sPLT_SUPPORTED)   if (info_ptr->valid & PNG_INFO_sPLT)     for (i = 0; i < (int)info_ptr->splt_palettes_num; i++)       png_write_sPLT(png_ptr, info_ptr->splt_palettes + i);#endif#if defined(PNG_WRITE_TEXT_SUPPORTED)   /* Check to see if we need to write text chunks */   for (i = 0; i < info_ptr->num_text; i++)   {      png_debug2(2, "Writing header text chunk %d, type %d\n", i,         info_ptr->text[i].compression);      /* an internationalized chunk? */      if (info_ptr->text[i].compression > 0)      {#if defined(PNG_WRITE_iTXt_SUPPORTED)          /* write international chunk */          png_write_iTXt(png_ptr,                         info_ptr->text[i].compression,                         info_ptr->text[i].key,                         info_ptr->text[i].lang,                         info_ptr->text[i].lang_key,                         info_ptr->text[i].text);#else          png_warning(png_ptr, "Unable to write international text\n");#endif          /* Mark this chunk as written */          info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR;      }      /* If we want a compressed text chunk */      else if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_zTXt)      {#if defined(PNG_WRITE_zTXt_SUPPORTED)         /* write compressed chunk */         png_write_zTXt(png_ptr, info_ptr->text[i].key,            info_ptr->text[i].text, 0,            info_ptr->text[i].compression);#else         png_warning(png_ptr, "Unable to write compressed text\n");#endif         /* Mark this chunk as written */         info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_zTXt_WR;      }      else if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_NONE)      {#if defined(PNG_WRITE_tEXt_SUPPORTED)         /* write uncompressed chunk */         png_write_tEXt(png_ptr, info_ptr->text[i].key,                         info_ptr->text[i].text,                         0);#else         png_warning(png_ptr, "Unable to write uncompressed text\n");#endif         /* Mark this chunk as written */         info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR;      }   }#endif#if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED)   if (info_ptr->unknown_chunks_num)   {       png_unknown_chunk *up;       png_debug(5, "writing extra chunks\n");       for (up = info_ptr->unknown_chunks;            up < info_ptr->unknown_chunks + info_ptr->unknown_chunks_num;            up++)       {         int keep=png_handle_as_unknown(png_ptr, up->name);         if (keep != PNG_HANDLE_CHUNK_NEVER &&            up->location && (up->location & PNG_HAVE_PLTE) &&            !(up->location & PNG_HAVE_IDAT) &&            ((up->name[3] & 0x20) || keep == PNG_HANDLE_CHUNK_ALWAYS ||            (png_ptr->flags & PNG_FLAG_KEEP_UNSAFE_CHUNKS)))         {            png_write_chunk(png_ptr, up->name, up->data, up->size);         }       }   }#endif}/* Writes the end of the PNG file.  If you don't want to write comments or * time information, you can pass NULL for info.  If you already wrote these * in png_write_info(), do not write them again here.  If you have long * comments, I suggest writing them here, and compressing them. */void PNGAPIpng_write_end(png_structp png_ptr, png_infop info_ptr){   png_debug(1, "in png_write_end\n");   if (!(png_ptr->mode & PNG_HAVE_IDAT))      png_error(png_ptr, "No IDATs written into file");   /* see if user wants us to write information chunks */   if (info_ptr != NULL)   {#if defined(PNG_WRITE_TEXT_SUPPORTED)      int i; /* local index variable */#endif#if defined(PNG_WRITE_tIME_SUPPORTED)      /* check to see if user has supplied a time chunk */      if ((info_ptr->valid & PNG_INFO_tIME) &&         !(png_ptr->mode & PNG_WROTE_tIME))         png_write_tIME(png_ptr, &(info_ptr->mod_time));#endif#if defined(PNG_WRITE_TEXT_SUPPORTED)      /* loop through comment chunks */      for (i = 0; i < info_ptr->num_text; i++)      {         png_debug2(2, "Writing trailer text chunk %d, type %d\n", i,            info_ptr->text[i].compression);         /* an internationalized chunk? */         if (info_ptr->text[i].compression > 0)         {#if defined(PNG_WRITE_iTXt_SUPPORTED)             /* write international chunk */             png_write_iTXt(png_ptr,                         info_ptr->text[i].compression,                         info_ptr->text[i].key,                         info_ptr->text[i].lang,                         info_ptr->text[i].lang_key,                         info_ptr->text[i].text);#else             png_warning(png_ptr, "Unable to write international text\n");#endif             /* Mark this chunk as written */             info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR;         }         else if (info_ptr->text[i].compression >= PNG_TEXT_COMPRESSION_zTXt)         {#if defined(PNG_WRITE_zTXt_SUPPORTED)            /* write compressed chunk */            png_write_zTXt(png_ptr, info_ptr->text[i].key,               info_ptr->text[i].text, 0,               info_ptr->text[i].compression);#else            png_warning(png_ptr, "Unable to write compressed text\n");#endif            /* Mark this chunk as written */            info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_zTXt_WR;         }         else if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_NONE)         {#if defined(PNG_WRITE_tEXt_SUPPORTED)            /* write uncompressed chunk */            png_write_tEXt(png_ptr, info_ptr->text[i].key,               info_ptr->text[i].text, 0);#else            png_warning(png_ptr, "Unable to write uncompressed text\n");#endif            /* Mark this chunk as written */            info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR;         }      }#endif#if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED)   if (info_ptr->unknown_chunks_num)   {       png_unknown_chunk *up;       png_debug(5, "writing extra chunks\n");       for (up = info_ptr->unknown_chunks;            up < info_ptr->unknown_chunks + info_ptr->unknown_chunks_num;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合久久久久久久| 久久久久久久一区| 激情图片小说一区| 亚洲精品视频在线观看免费| 91精品国产综合久久蜜臀| 色偷偷88欧美精品久久久| 国产一区二区三区观看| 亚洲一区二区精品3399| 亚洲国产精品黑人久久久| 欧美日韩一区二区欧美激情| 国产91精品露脸国语对白| 亚洲欧美日韩国产成人精品影院| 日韩一本二本av| 欧美在线影院一区二区| 91玉足脚交白嫩脚丫在线播放| 蜜桃精品在线观看| 免费看欧美女人艹b| 奇米色一区二区| 美女久久久精品| 另类欧美日韩国产在线| 日本美女视频一区二区| 日本美女一区二区三区| 亚洲一区二区三区四区五区黄| 亚洲丝袜美腿综合| 亚洲私人黄色宅男| 国产精品久久久久7777按摩| 久久精品在线免费观看| 国产精品久久久99| 中文字幕一区二区三区在线播放| 国产精品伦一区| 亚洲色大成网站www久久九九| 亚洲一区二区在线观看视频 | 国产成人福利片| 99视频一区二区| 在线精品视频小说1| 欧美精品免费视频| 日韩欧美成人一区| 欧美激情一区二区三区蜜桃视频 | 日韩手机在线导航| 久久久亚洲国产美女国产盗摄 | 国产盗摄女厕一区二区三区 | 肉肉av福利一精品导航| 国产精品中文字幕一区二区三区| 国产69精品久久久久毛片 | 狠狠色丁香久久婷婷综合丁香| jlzzjlzz亚洲女人18| 8x8x8国产精品| 中文字幕一区二区三区不卡在线| 偷偷要91色婷婷| 色呦呦一区二区三区| 久久久亚洲精华液精华液精华液| 亚洲成人av电影在线| 性久久久久久久| 在线免费精品视频| 欧美激情一区二区在线| 日本不卡的三区四区五区| 波多野结衣一区二区三区 | 欧美影院午夜播放| 日本一区二区三区免费乱视频| 一区二区三区欧美激情| 国产在线不卡视频| 欧美日韩国产a| 亚洲一区二区四区蜜桃| 久久疯狂做爰流白浆xx| 欧美日韩精品系列| 国产精品每日更新| 国产99精品国产| www国产成人免费观看视频 深夜成人网| 一区二区在线电影| 成人av电影在线网| 国产精品久久综合| 国产成人免费视频网站高清观看视频| 欧美电影免费观看完整版| 一区二区三区精品视频| 欧美日韩中文字幕精品| 亚洲一区二区三区视频在线播放| 色综合亚洲欧洲| 亚洲精品中文在线观看| 日本精品视频一区二区| 综合电影一区二区三区 | 国产日韩欧美麻豆| 国产99精品国产| 一区二区三区在线视频播放 | 久久蜜桃av一区二区天堂| 另类成人小视频在线| 精品国产凹凸成av人网站| 国精产品一区一区三区mba桃花 | 激情深爱一区二区| 国产亚洲成aⅴ人片在线观看| 国产又黄又大久久| 一区二区三区四区亚洲| 欧美精品一二三| 成人涩涩免费视频| 亚洲欧洲制服丝袜| 2024国产精品视频| zzijzzij亚洲日本少妇熟睡| 亚洲高清视频的网址| 久久亚洲综合色| 91精品国产色综合久久不卡电影 | 欧美一区二区三区在线观看视频| 国产91精品免费| 精品在线免费视频| 五月婷婷激情综合| 亚洲免费色视频| 中文字幕在线一区二区三区| 欧美丰满一区二区免费视频| 色婷婷综合久久| 国产乱码精品一区二区三区忘忧草 | 九九精品一区二区| 天天综合色天天综合| 亚洲国产精品久久久久婷婷884 | 国产成人亚洲综合a∨婷婷| 日本强好片久久久久久aaa| 国产亚洲精品超碰| 国产喷白浆一区二区三区| 欧美人牲a欧美精品| 欧美专区日韩专区| aa级大片欧美| 99久久精品久久久久久清纯| 国产成人精品免费网站| 国产在线不卡一卡二卡三卡四卡| 久久国产夜色精品鲁鲁99| 九色综合狠狠综合久久| 国产伦精品一区二区三区免费| 日日夜夜精品视频免费| 美女网站一区二区| 国产精品综合一区二区三区| 国产精品伊人色| 国产一区二区精品在线观看| 国产在线精品国自产拍免费| 偷偷要91色婷婷| 麻豆成人在线观看| 国产一区在线不卡| av高清久久久| 91福利精品第一导航| 欧美精品乱人伦久久久久久| 欧美videos中文字幕| 国产精品久线在线观看| 亚洲尤物视频在线| 久久国产精品第一页| 99久久综合99久久综合网站| 一本一道久久a久久精品| 在线看国产日韩| 久久婷婷久久一区二区三区| 亚洲欧美激情小说另类| 婷婷久久综合九色综合绿巨人| 国产一区不卡在线| 欧美午夜寂寞影院| 国产精品久久久久久久久免费桃花| 亚洲成在人线免费| 成a人片亚洲日本久久| 欧美一级电影网站| 亚洲日穴在线视频| 久久精品国产精品亚洲红杏| 成人黄动漫网站免费app| 久久综合国产精品| 视频一区视频二区在线观看| 99久久精品情趣| 国产日韩精品久久久| 日韩成人一区二区三区在线观看| 99视频在线精品| 国产欧美一区视频| 精品午夜久久福利影院| 欧美性猛交xxxx乱大交退制版| 亚洲欧洲日韩在线| 国产成人自拍网| ...xxx性欧美| 色综合久久中文字幕综合网| 久久影院视频免费| 国产精选一区二区三区| 51精品秘密在线观看| 蜜臀久久99精品久久久久久9| 7777精品伊人久久久大香线蕉完整版 | 精品国产乱码久久久久久1区2区 | 久久久精品中文字幕麻豆发布| 久久99精品久久久久婷婷| 日韩精品一区二区三区中文不卡 | 亚洲午夜在线电影| 欧美另类久久久品| 亚洲18影院在线观看| 精品动漫一区二区三区在线观看| 经典一区二区三区| 国产精品每日更新| 欧美性生活久久| 日日夜夜精品视频免费| 久久久91精品国产一区二区精品| 国产成人在线视频网站| 夜夜嗨av一区二区三区网页| 欧美电影在哪看比较好| 狠狠色丁香婷婷综合久久片| 国产精品伦理一区二区| 色悠悠久久综合| 国产精品主播直播| 亚洲一区二区三区小说| 2020国产精品自拍| 欧美欧美午夜aⅴ在线观看| 日本欧美大码aⅴ在线播放| 一区在线中文字幕| 欧美精品日韩综合在线| 94色蜜桃网一区二区三区|