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

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

?? pngset.c

?? qtopia-phone-2.2.0下png工具庫源代碼實現。
?? C
?? 第 1 頁 / 共 2 頁
字號:
#endif#endif}#endif#if defined(PNG_iCCP_SUPPORTED)void PNGAPIpng_set_iCCP(png_structp png_ptr, png_infop info_ptr,             png_charp name, int compression_type,             png_charp profile, png_uint_32 proflen){   png_charp new_iccp_name;   png_charp new_iccp_profile;   png_debug1(1, "in %s storage function\n", "iCCP");   if (png_ptr == NULL || info_ptr == NULL || name == NULL || profile == NULL)      return;   new_iccp_name = (png_charp)png_malloc(png_ptr, png_strlen(name)+1);   strcpy(new_iccp_name, name);   new_iccp_profile = (png_charp)png_malloc(png_ptr, proflen);   png_memcpy(new_iccp_profile, profile, (png_size_t)proflen);   png_free_data(png_ptr, info_ptr, PNG_FREE_ICCP, 0);   info_ptr->iccp_proflen = proflen;   info_ptr->iccp_name = new_iccp_name;   info_ptr->iccp_profile = new_iccp_profile;   /* Compression is always zero but is here so the API and info structure    * does not have to change if we introduce multiple compression types */   info_ptr->iccp_compression = (png_byte)compression_type;#ifdef PNG_FREE_ME_SUPPORTED   info_ptr->free_me |= PNG_FREE_ICCP;#endif   info_ptr->valid |= PNG_INFO_iCCP;}#endif#if defined(PNG_TEXT_SUPPORTED)void PNGAPIpng_set_text(png_structp png_ptr, png_infop info_ptr, png_textp text_ptr,   int num_text){   int i;   png_debug1(1, "in %s storage function\n", (png_ptr->chunk_name[0] == '\0' ?      "text" : (png_const_charp)png_ptr->chunk_name));   if (png_ptr == NULL || info_ptr == NULL || num_text == 0)      return;   /* Make sure we have enough space in the "text" array in info_struct    * to hold all of the incoming text_ptr objects.    */   if (info_ptr->num_text + num_text > info_ptr->max_text)   {      if (info_ptr->text != NULL)      {         png_textp old_text;         int old_max;         old_max = info_ptr->max_text;         info_ptr->max_text = info_ptr->num_text + num_text + 8;         old_text = info_ptr->text;         info_ptr->text = (png_textp)png_malloc(png_ptr,            (png_uint_32)(info_ptr->max_text * sizeof (png_text)));         png_memcpy(info_ptr->text, old_text, (png_size_t)(old_max *            sizeof(png_text)));         png_free(png_ptr, old_text);      }      else      {         info_ptr->max_text = num_text + 8;         info_ptr->num_text = 0;         info_ptr->text = (png_textp)png_malloc(png_ptr,            (png_uint_32)(info_ptr->max_text * sizeof (png_text)));#ifdef PNG_FREE_ME_SUPPORTED         info_ptr->free_me |= PNG_FREE_TEXT;#endif      }      png_debug1(3, "allocated %d entries for info_ptr->text\n",         info_ptr->max_text);   }   for (i = 0; i < num_text; i++)   {      png_size_t text_length,key_len;      png_size_t lang_len,lang_key_len;      png_textp textp = &(info_ptr->text[info_ptr->num_text]);      if (text_ptr[i].key == (png_charp)NULL)          continue;      key_len = png_strlen(text_ptr[i].key);      if(text_ptr[i].compression <= 0)      {        lang_len = 0;        lang_key_len = 0;      }      else#ifdef PNG_iTXt_SUPPORTED      {        /* set iTXt data */        if (text_ptr[i].key != (png_charp)NULL)          lang_len = png_strlen(text_ptr[i].lang);        else          lang_len = 0;        if (text_ptr[i].lang_key != (png_charp)NULL)          lang_key_len = png_strlen(text_ptr[i].lang_key);        else          lang_key_len = 0;      }#else      {        png_warning(png_ptr, "iTXt chunk not supported.");        continue;      }#endif      if (text_ptr[i].text == (png_charp)NULL || text_ptr[i].text[0] == '\0')      {         text_length = 0;#ifdef PNG_iTXt_SUPPORTED         if(text_ptr[i].compression > 0)            textp->compression = PNG_ITXT_COMPRESSION_NONE;         else#endif            textp->compression = PNG_TEXT_COMPRESSION_NONE;      }      else      {         text_length = png_strlen(text_ptr[i].text);         textp->compression = text_ptr[i].compression;      }      textp->key = (png_charp)png_malloc(png_ptr,         (png_uint_32)(key_len + text_length + lang_len + lang_key_len + 4));      png_debug2(2, "Allocated %d bytes at %x in png_set_text\n",         key_len + lang_len + lang_key_len + text_length + 4, (int)textp->key);      png_memcpy(textp->key, text_ptr[i].key,         (png_size_t)(key_len));      *(textp->key+key_len) = '\0';#ifdef PNG_iTXt_SUPPORTED      if (text_ptr[i].compression > 0)      {         textp->lang=textp->key + key_len + 1;         png_memcpy(textp->lang, text_ptr[i].lang, lang_len);         *(textp->lang+lang_len) = '\0';         textp->lang_key=textp->lang + lang_len + 1;         png_memcpy(textp->lang_key, text_ptr[i].lang_key, lang_key_len);         *(textp->lang_key+lang_key_len) = '\0';         textp->text=textp->lang_key + lang_key_len + 1;      }      else#endif      {#ifdef PNG_iTXt_SUPPORTED         textp->lang=(png_charp)NULL;         textp->lang_key=(png_charp)NULL;#endif         textp->text=textp->key + key_len + 1;      }      if(text_length)         png_memcpy(textp->text, text_ptr[i].text,            (png_size_t)(text_length));      *(textp->text+text_length) = '\0';#ifdef PNG_iTXt_SUPPORTED      if(textp->compression > 0)      {         textp->text_length = 0;         textp->itxt_length = text_length;      }      else#endif      {         textp->text_length = text_length;#ifdef PNG_iTXt_SUPPORTED         textp->itxt_length = 0;#endif      }      info_ptr->text[info_ptr->num_text]= *textp;      info_ptr->num_text++;      png_debug1(3, "transferred text chunk %d\n", info_ptr->num_text);   }}#endif#if defined(PNG_tIME_SUPPORTED)void PNGAPIpng_set_tIME(png_structp png_ptr, png_infop info_ptr, png_timep mod_time){   png_debug1(1, "in %s storage function\n", "tIME");   if (png_ptr == NULL || info_ptr == NULL ||       (png_ptr->mode & PNG_WROTE_tIME))      return;   png_memcpy(&(info_ptr->mod_time), mod_time, sizeof (png_time));   info_ptr->valid |= PNG_INFO_tIME;}#endif#if defined(PNG_tRNS_SUPPORTED)void PNGAPIpng_set_tRNS(png_structp png_ptr, png_infop info_ptr,   png_bytep trans, int num_trans, png_color_16p trans_values){   png_debug1(1, "in %s storage function\n", "tRNS");   if (png_ptr == NULL || info_ptr == NULL)      return;   if (trans != NULL)   {       /*	* It may not actually be necessary to set png_ptr->trans here;	* we do it for backward compatibility with the way the png_handle_tRNS	* function used to do the allocation.	*/#ifdef PNG_FREE_ME_SUPPORTED       png_free_data(png_ptr, info_ptr, PNG_FREE_TRNS, 0);#endif       png_ptr->trans = info_ptr->trans = (png_bytep)png_malloc(png_ptr, num_trans);       memcpy(info_ptr->trans, trans, num_trans);#ifdef PNG_FREE_ME_SUPPORTED       info_ptr->free_me |= PNG_FREE_TRNS;#else       png_ptr->flags |= PNG_FLAG_FREE_TRNS;#endif   }   if (trans_values != NULL)   {      png_memcpy(&(info_ptr->trans_values), trans_values,         sizeof(png_color_16));      if (num_trans == 0)        num_trans = 1;   }   info_ptr->num_trans = (png_uint_16)num_trans;   info_ptr->valid |= PNG_INFO_tRNS;}#endif#if defined(PNG_sPLT_SUPPORTED)void PNGAPIpng_set_sPLT(png_structp png_ptr,             png_infop info_ptr, png_sPLT_tp entries, int nentries){    png_sPLT_tp np;    int i;    np = (png_sPLT_tp)png_malloc(png_ptr,        (info_ptr->splt_palettes_num + nentries) * sizeof(png_sPLT_t));    png_memcpy(np, info_ptr->splt_palettes,           info_ptr->splt_palettes_num * sizeof(png_sPLT_t));    png_free(png_ptr, info_ptr->splt_palettes);    info_ptr->splt_palettes=NULL;    for (i = 0; i < nentries; i++)    {        png_sPLT_tp to = np + info_ptr->splt_palettes_num + i;        png_sPLT_tp from = entries + i;        to->name = (png_charp)png_malloc(png_ptr,                                        png_strlen(from->name) + 1);        png_strcpy(to->name, from->name);        to->entries = (png_sPLT_entryp)png_malloc(png_ptr,                                 from->nentries * sizeof(png_sPLT_t));        png_memcpy(to->entries, from->entries,               from->nentries * sizeof(png_sPLT_t));        to->nentries = from->nentries;        to->depth = from->depth;    }    info_ptr->splt_palettes = np;    info_ptr->splt_palettes_num += nentries;    info_ptr->valid |= PNG_INFO_sPLT;#ifdef PNG_FREE_ME_SUPPORTED    info_ptr->free_me |= PNG_FREE_SPLT;#endif}#endif /* PNG_sPLT_SUPPORTED */#if defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED)void PNGAPIpng_set_unknown_chunks(png_structp png_ptr,   png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns){    png_unknown_chunkp np;    int i;    if (png_ptr == NULL || info_ptr == NULL || num_unknowns == 0)        return;    np = (png_unknown_chunkp)png_malloc(png_ptr,        (info_ptr->unknown_chunks_num + num_unknowns) *        sizeof(png_unknown_chunk));    png_memcpy(np, info_ptr->unknown_chunks,           info_ptr->unknown_chunks_num * sizeof(png_unknown_chunk));    png_free(png_ptr, info_ptr->unknown_chunks);    info_ptr->unknown_chunks=NULL;    for (i = 0; i < num_unknowns; i++)    {        png_unknown_chunkp to = np + info_ptr->unknown_chunks_num + i;        png_unknown_chunkp from = unknowns + i;        png_strcpy((png_charp)to->name, (png_charp)from->name);        to->data = (png_bytep)png_malloc(png_ptr, from->size);        png_memcpy(to->data, from->data, from->size);        to->size = from->size;        /* note our location in the read or write sequence */        to->location = (png_byte)(png_ptr->mode & 0xff);    }    info_ptr->unknown_chunks = np;    info_ptr->unknown_chunks_num += num_unknowns;#ifdef PNG_FREE_ME_SUPPORTED    info_ptr->free_me |= PNG_FREE_UNKN;#endif}void PNGAPIpng_set_unknown_chunk_location(png_structp png_ptr, png_infop info_ptr,   int chunk, int location){   if(png_ptr != NULL && info_ptr != NULL && chunk >= 0 && chunk <         (int)info_ptr->unknown_chunks_num)      info_ptr->unknown_chunks[chunk].location = (png_byte)location;}#endif#if defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \    defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED)void PNGAPIpng_permit_empty_plte (png_structp png_ptr, int empty_plte_permitted){   /* This function is deprecated in favor of png_permit_mng_features()      and will be removed from libpng-2.0.0 */   png_debug(1, "in png_permit_empty_plte, DEPRECATED.\n");   if (png_ptr == NULL)      return;   png_ptr->mng_features_permitted = (png_byte)     ((png_ptr->mng_features_permitted & (~(PNG_FLAG_MNG_EMPTY_PLTE))) |     ((empty_plte_permitted & PNG_FLAG_MNG_EMPTY_PLTE)));}#endif#if defined(PNG_MNG_FEATURES_SUPPORTED)png_uint_32 PNGAPIpng_permit_mng_features (png_structp png_ptr, png_uint_32 mng_features){   png_debug(1, "in png_permit_mng_features\n");   if (png_ptr == NULL)      return (png_uint_32)0;   png_ptr->mng_features_permitted =     (png_byte)(mng_features & PNG_ALL_MNG_FEATURES);   return (png_uint_32)png_ptr->mng_features_permitted;}#endif#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)void PNGAPIpng_set_keep_unknown_chunks(png_structp png_ptr, int keep, png_bytep   chunk_list, int num_chunks){    png_bytep new_list, p;    int i, old_num_chunks;    if (num_chunks == 0)    {      if(keep == HANDLE_CHUNK_ALWAYS || keep == HANDLE_CHUNK_IF_SAFE)        png_ptr->flags |= PNG_FLAG_KEEP_UNKNOWN_CHUNKS;      else        png_ptr->flags &= ~PNG_FLAG_KEEP_UNKNOWN_CHUNKS;      if(keep == HANDLE_CHUNK_ALWAYS)        png_ptr->flags |= PNG_FLAG_KEEP_UNSAFE_CHUNKS;      else        png_ptr->flags &= ~PNG_FLAG_KEEP_UNSAFE_CHUNKS;      return;    }    if (chunk_list == NULL)      return;    old_num_chunks=png_ptr->num_chunk_list;    new_list=(png_bytep)png_malloc(png_ptr,5*(num_chunks+old_num_chunks));    if(png_ptr->chunk_list != (png_bytep)NULL)    {       png_memcpy(new_list, png_ptr->chunk_list, 5*old_num_chunks);       png_free(png_ptr, png_ptr->chunk_list);       png_ptr->chunk_list=NULL;    }    png_memcpy(new_list+5*old_num_chunks, chunk_list, 5*num_chunks);    for (p=new_list+5*old_num_chunks+4, i=0; i<num_chunks; i++, p+=5)       *p=(png_byte)keep;    png_ptr->num_chunk_list=old_num_chunks+num_chunks;    png_ptr->chunk_list=new_list;#ifdef PNG_FREE_ME_SUPPORTED    png_ptr->free_me |= PNG_FREE_LIST;#endif}#endif#if defined(PNG_READ_USER_CHUNKS_SUPPORTED)void PNGAPIpng_set_read_user_chunk_fn(png_structp png_ptr, png_voidp user_chunk_ptr,   png_user_chunk_ptr read_user_chunk_fn){   png_debug(1, "in png_set_read_user_chunk_fn\n");   png_ptr->read_user_chunk_fn = read_user_chunk_fn;   png_ptr->user_chunk_ptr = user_chunk_ptr;}#endif#if defined(PNG_INFO_IMAGE_SUPPORTED)void PNGAPIpng_set_rows(png_structp png_ptr, png_infop info_ptr, png_bytepp row_pointers){   png_debug1(1, "in %s storage function\n", "rows");   if (png_ptr == NULL || info_ptr == NULL)      return;   if(info_ptr->row_pointers && (info_ptr->row_pointers != row_pointers))      png_free_data(png_ptr, info_ptr, PNG_FREE_ROWS, 0);   info_ptr->row_pointers = row_pointers;   if(row_pointers)      info_ptr->valid |= PNG_INFO_IDAT;}#endifvoid PNGAPIpng_set_compression_buffer_size(png_structp png_ptr, png_uint_32 size){    if(png_ptr->zbuf)       png_free(png_ptr, png_ptr->zbuf);    png_ptr->zbuf_size = (png_size_t)size;    png_ptr->zbuf = (png_bytep)png_malloc(png_ptr, size);    if(!png_ptr->zbuf)       png_error(png_ptr,"Unable to malloc zbuf");    png_ptr->zstream.next_out = png_ptr->zbuf;    png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size;}void PNGAPIpng_set_invalid(png_structp png_ptr, png_infop info_ptr, int mask){   if (png_ptr && info_ptr)      info_ptr->valid &= ~(mask);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区欧美日| 日本伊人色综合网| 欧美一区二区三区在线观看视频| 国产剧情一区二区| 亚洲午夜日本在线观看| 久久久99免费| 91精品国产综合久久久久久久久久| 国产美女精品一区二区三区| 亚洲成人动漫av| 国产精品免费av| 日韩欧美国产高清| 在线观看日韩毛片| 成人午夜电影小说| 精品一区二区三区视频在线观看| 亚洲乱码国产乱码精品精小说| 精品91自产拍在线观看一区| 精品视频免费在线| 91欧美激情一区二区三区成人| 激情国产一区二区| 热久久久久久久| 亚洲国产一区二区三区| 1000部国产精品成人观看| 国产午夜精品一区二区三区视频| 欧美一区二区二区| 欧美另类z0zxhd电影| 91成人免费网站| 99re66热这里只有精品3直播| 国产精品一区二区91| 黄页视频在线91| 经典一区二区三区| 久久电影网站中文字幕 | 久久久亚洲高清| 欧美一区二区精品| 日韩一区二区三区在线| 91精品国产免费| 欧美乱妇一区二区三区不卡视频| 欧美日韩中文字幕精品| 欧洲另类一二三四区| 91福利精品第一导航| 在线观看亚洲专区| 欧美色倩网站大全免费| 欧美日韩一区国产| 欧美日韩美少妇| 欧美最猛性xxxxx直播| 在线观看亚洲成人| 精品视频一区二区三区免费| 欧美日韩aaa| 欧美顶级少妇做爰| 337p亚洲精品色噜噜噜| 欧美电影免费观看高清完整版在线 | 紧缚奴在线一区二区三区| 美国欧美日韩国产在线播放| 久久国产三级精品| 国产高清精品网站| 99精品欧美一区二区三区综合在线| 91在线视频在线| 欧美日韩中文精品| 91精品免费观看| 日韩精品中文字幕一区| 久久精品男人的天堂| 日韩一区在线播放| 亚洲成人一区二区| 秋霞午夜鲁丝一区二区老狼| 精品一区二区三区影院在线午夜| 粉嫩蜜臀av国产精品网站| 91麻豆免费观看| 欧美色老头old∨ideo| 欧美成人女星排名| 中文字幕av资源一区| 一个色妞综合视频在线观看| 日韩av一区二区三区四区| 国产精选一区二区三区| 欧美精品久久一区| 日韩精品一区二| 亚洲色图欧美激情| 日韩电影免费在线看| 国产黑丝在线一区二区三区| 色美美综合视频| 欧美美女喷水视频| 国产欧美日韩在线看| 亚洲综合激情网| 久久97超碰色| 在线免费观看成人短视频| 精品欧美一区二区在线观看| 亚洲精品亚洲人成人网| 久草这里只有精品视频| 在线观看日韩av先锋影音电影院| 精品国产第一区二区三区观看体验| 亚洲精品免费看| 国产一区二区精品久久99| 欧美在线观看视频一区二区三区| 欧美大尺度电影在线| 亚洲黄色片在线观看| 激情av综合网| 欧美日韩精品一区二区三区 | 韩国精品一区二区| 99久久精品费精品国产一区二区| 不卡视频一二三| 欧美日韩国产系列| 国产亚洲综合性久久久影院| 日本一区二区成人| 美日韩黄色大片| 国产福利不卡视频| 欧美午夜免费电影| xnxx国产精品| 一区二区三区在线不卡| 久久9热精品视频| 欧美手机在线视频| 久久先锋影音av| 亚洲国产精品久久人人爱| 国产一区二区三区免费播放 | 日韩午夜激情视频| 亚洲精品一线二线三线| 午夜a成v人精品| 国产麻豆91精品| 欧美色图12p| 国产精品色噜噜| 蜜桃视频在线观看一区二区| eeuss国产一区二区三区| 久久久久久久久久久久久久久99| 亚洲一区在线视频| 国产69精品一区二区亚洲孕妇| 欧美精品成人一区二区三区四区| 国产精品日日摸夜夜摸av| 蜜桃精品视频在线| 91精品国产aⅴ一区二区| 中文字幕一区二区三区在线观看 | 国产精品一区二区久久精品爱涩| 欧美日本视频在线| 亚洲人成网站影音先锋播放| 韩国理伦片一区二区三区在线播放| 99re8在线精品视频免费播放| 国产精品久久毛片av大全日韩| 久久精品国产精品亚洲精品| 欧美视频一区在线| 国产精品你懂的在线| 国产九色精品成人porny| 91精品国产欧美一区二区| 日本午夜一区二区| 欧美日韩在线亚洲一区蜜芽| 亚洲欧美偷拍另类a∨色屁股| 国产suv精品一区二区883| www激情久久| 精品午夜一区二区三区在线观看| 在线播放欧美女士性生活| 亚洲综合一区二区三区| 色哟哟亚洲精品| 亚洲日本va在线观看| 国产激情精品久久久第一区二区 | 日韩欧美国产成人一区二区| 午夜精品久久久久久久99樱桃| 欧美亚洲国产一区在线观看网站| 国产精品久久久久aaaa| 国产一区二区三区久久久| 国产精品午夜久久| 粉嫩在线一区二区三区视频| 精品国产区一区| 黄色日韩三级电影| 久久奇米777| 99久久精品国产观看| 亚洲日本丝袜连裤袜办公室| 一本久道中文字幕精品亚洲嫩| 最新成人av在线| 色av一区二区| 麻豆久久久久久| 久久综合九色综合97婷婷女人| 国产一区二区视频在线播放| 久久久噜噜噜久久中文字幕色伊伊| 久久精品国产亚洲一区二区三区| 中文字幕+乱码+中文字幕一区| av在线综合网| 亚洲综合久久久久| 欧美一区二区女人| 激情av综合网| 一区二区免费在线| 欧美高清激情brazzers| 久久黄色级2电影| 久久精品日韩一区二区三区| 国产一区二区在线看| 一区二区在线免费观看| 欧美色爱综合网| 亚洲成人激情综合网| 精品少妇一区二区三区免费观看| 国产91精品一区二区麻豆亚洲| 国产精品久久三| 日韩精品中午字幕| 99re亚洲国产精品| 午夜精品成人在线| 久久久91精品国产一区二区精品 | 精品一区二区三区免费视频| 欧美激情综合在线| 色婷婷av一区二区三区大白胸| 久久99蜜桃精品| 中文字幕在线不卡一区| 91麻豆精品国产| 高清国产午夜精品久久久久久| 中文字幕在线一区免费| 日韩欧美电影在线| 91日韩精品一区| 秋霞影院一区二区|