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

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

?? pngwtran.c

?? qtopia-phone-2.2.0下png工具庫源代碼實現。
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* pngwtran.c - transforms the data in a row for PNG writers * * libpng 1.0.9 - January 31, 2001 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2001 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.) */#define PNG_INTERNAL#include "png.h"/* Transform the data according to the user's wishes.  The order of * transformations is significant. */void /* PRIVATE */png_do_write_transformations(png_structp png_ptr){   png_debug(1, "in png_do_write_transformations\n");   if (png_ptr == NULL)      return;#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)   if (png_ptr->transformations & PNG_USER_TRANSFORM)      if(png_ptr->write_user_transform_fn != NULL)        (*(png_ptr->write_user_transform_fn)) /* user write transform function */          (png_ptr,                    /* png_ptr */           &(png_ptr->row_info),       /* row_info:     */             /*  png_uint_32 width;          width of row */             /*  png_uint_32 rowbytes;       number of bytes in row */             /*  png_byte color_type;        color type of pixels */             /*  png_byte bit_depth;         bit depth of samples */             /*  png_byte channels;          number of channels (1-4) */             /*  png_byte pixel_depth;       bits per pixel (depth*channels) */           png_ptr->row_buf + 1);      /* start of pixel data for row */#endif#if defined(PNG_WRITE_FILLER_SUPPORTED)   if (png_ptr->transformations & PNG_FILLER)      png_do_strip_filler(&(png_ptr->row_info), png_ptr->row_buf + 1,         png_ptr->flags);#endif#if defined(PNG_WRITE_PACKSWAP_SUPPORTED)   if (png_ptr->transformations & PNG_PACKSWAP)      png_do_packswap(&(png_ptr->row_info), png_ptr->row_buf + 1);#endif#if defined(PNG_WRITE_PACK_SUPPORTED)   if (png_ptr->transformations & PNG_PACK)      png_do_pack(&(png_ptr->row_info), png_ptr->row_buf + 1,         (png_uint_32)png_ptr->bit_depth);#endif#if defined(PNG_WRITE_SWAP_SUPPORTED)   if (png_ptr->transformations & PNG_SWAP_BYTES)      png_do_swap(&(png_ptr->row_info), png_ptr->row_buf + 1);#endif#if defined(PNG_WRITE_SHIFT_SUPPORTED)   if (png_ptr->transformations & PNG_SHIFT)      png_do_shift(&(png_ptr->row_info), png_ptr->row_buf + 1,         &(png_ptr->shift));#endif#if defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED)   if (png_ptr->transformations & PNG_INVERT_ALPHA)      png_do_write_invert_alpha(&(png_ptr->row_info), png_ptr->row_buf + 1);#endif#if defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED)   if (png_ptr->transformations & PNG_SWAP_ALPHA)      png_do_write_swap_alpha(&(png_ptr->row_info), png_ptr->row_buf + 1);#endif#if defined(PNG_WRITE_BGR_SUPPORTED)   if (png_ptr->transformations & PNG_BGR)      png_do_bgr(&(png_ptr->row_info), png_ptr->row_buf + 1);#endif#if defined(PNG_WRITE_INVERT_SUPPORTED)   if (png_ptr->transformations & PNG_INVERT_MONO)      png_do_invert(&(png_ptr->row_info), png_ptr->row_buf + 1);#endif}#if defined(PNG_WRITE_PACK_SUPPORTED)/* Pack pixels into bytes.  Pass the true bit depth in bit_depth.  The * row_info bit depth should be 8 (one pixel per byte).  The channels * should be 1 (this only happens on grayscale and paletted images). */void /* PRIVATE */png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth){   png_debug(1, "in png_do_pack\n");   if (row_info->bit_depth == 8 &&#if defined(PNG_USELESS_TESTS_SUPPORTED)       row != NULL && row_info != NULL &&#endif      row_info->channels == 1)   {      switch ((int)bit_depth)      {         case 1:         {            png_bytep sp, dp;            int mask, v;            png_uint_32 i;            png_uint_32 row_width = row_info->width;            sp = row;            dp = row;            mask = 0x80;            v = 0;            for (i = 0; i < row_width; i++)            {               if (*sp != 0)                  v |= mask;               sp++;               if (mask > 1)                  mask >>= 1;               else               {                  mask = 0x80;                  *dp = (png_byte)v;                  dp++;                  v = 0;               }            }            if (mask != 0x80)               *dp = (png_byte)v;            break;         }         case 2:         {            png_bytep sp, dp;            int shift, v;            png_uint_32 i;            png_uint_32 row_width = row_info->width;            sp = row;            dp = row;            shift = 6;            v = 0;            for (i = 0; i < row_width; i++)            {               png_byte value;               value = (png_byte)(*sp & 0x03);               v |= (value << shift);               if (shift == 0)               {                  shift = 6;                  *dp = (png_byte)v;                  dp++;                  v = 0;               }               else                  shift -= 2;               sp++;            }            if (shift != 6)               *dp = (png_byte)v;            break;         }         case 4:         {            png_bytep sp, dp;            int shift, v;            png_uint_32 i;            png_uint_32 row_width = row_info->width;            sp = row;            dp = row;            shift = 4;            v = 0;            for (i = 0; i < row_width; i++)            {               png_byte value;               value = (png_byte)(*sp & 0x0f);               v |= (value << shift);               if (shift == 0)               {                  shift = 4;                  *dp = (png_byte)v;                  dp++;                  v = 0;               }               else                  shift -= 4;               sp++;            }            if (shift != 4)               *dp = (png_byte)v;            break;         }      }      row_info->bit_depth = (png_byte)bit_depth;      row_info->pixel_depth = (png_byte)(bit_depth * row_info->channels);      row_info->rowbytes =         ((row_info->width * row_info->pixel_depth + 7) >> 3);   }}#endif#if defined(PNG_WRITE_SHIFT_SUPPORTED)/* Shift pixel values to take advantage of whole range.  Pass the * true number of bits in bit_depth.  The row should be packed * according to row_info->bit_depth.  Thus, if you had a row of * bit depth 4, but the pixels only had values from 0 to 7, you * would pass 3 as bit_depth, and this routine would translate the * data to 0 to 15. */void /* PRIVATE */png_do_shift(png_row_infop row_info, png_bytep row, png_color_8p bit_depth){   png_debug(1, "in png_do_shift\n");#if defined(PNG_USELESS_TESTS_SUPPORTED)   if (row != NULL && row_info != NULL &&#else   if (#endif      row_info->color_type != PNG_COLOR_TYPE_PALETTE)   {      int shift_start[4], shift_dec[4];      int channels = 0;      if (row_info->color_type & PNG_COLOR_MASK_COLOR)      {         shift_start[channels] = row_info->bit_depth - bit_depth->red;         shift_dec[channels] = bit_depth->red;         channels++;         shift_start[channels] = row_info->bit_depth - bit_depth->green;         shift_dec[channels] = bit_depth->green;         channels++;         shift_start[channels] = row_info->bit_depth - bit_depth->blue;         shift_dec[channels] = bit_depth->blue;         channels++;      }      else      {         shift_start[channels] = row_info->bit_depth - bit_depth->gray;         shift_dec[channels] = bit_depth->gray;         channels++;      }      if (row_info->color_type & PNG_COLOR_MASK_ALPHA)      {         shift_start[channels] = row_info->bit_depth - bit_depth->alpha;         shift_dec[channels] = bit_depth->alpha;         channels++;      }      /* with low row depths, could only be grayscale, so one channel */      if (row_info->bit_depth < 8)      {         png_bytep bp = row;         png_uint_32 i;         png_byte mask;         png_uint_32 row_bytes = row_info->rowbytes;         if (bit_depth->gray == 1 && row_info->bit_depth == 2)            mask = 0x55;         else if (row_info->bit_depth == 4 && bit_depth->gray == 3)            mask = 0x11;         else            mask = 0xff;         for (i = 0; i < row_bytes; i++, bp++)         {            png_uint_16 v;            int j;            v = *bp;            *bp = 0;            for (j = shift_start[0]; j > -shift_dec[0]; j -= shift_dec[0])            {               if (j > 0)                  *bp |= (png_byte)((v << j) & 0xff);               else                  *bp |= (png_byte)((v >> (-j)) & mask);            }         }      }      else if (row_info->bit_depth == 8)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美中文字幕制服| 欧美图片一区二区三区| 国产网站一区二区| 国产福利91精品一区| 亚洲欧洲成人精品av97| 日本高清视频一区二区| 日韩中文欧美在线| 国产亚洲精品aa午夜观看| 99久久免费精品| 洋洋成人永久网站入口| 日韩三级在线观看| av不卡在线播放| 天天色综合天天| 久久久亚洲国产美女国产盗摄 | 视频在线观看一区| 精品成人免费观看| 91网站视频在线观看| 蜜臀久久99精品久久久画质超高清 | 极品美女销魂一区二区三区免费| 久久久久久久久99精品| 日本精品免费观看高清观看| 六月丁香婷婷色狠狠久久| 综合中文字幕亚洲| 日韩一区二区三区四区| 91丨九色丨尤物| 蜜桃av一区二区| 亚洲欧美另类综合偷拍| 日韩视频在线你懂得| 99综合电影在线视频| 一区二区国产视频| 久久综合九色综合欧美98| 91黄色免费观看| 国产一区不卡精品| 天天色图综合网| 亚洲欧美一区二区三区孕妇| 欧美大胆人体bbbb| 欧美三级电影在线看| 国产91丝袜在线播放0| 日本欧洲一区二区| 亚洲老妇xxxxxx| 国产欧美日韩精品在线| 欧美一区二区三级| 色偷偷久久一区二区三区| 韩国视频一区二区| 亚洲a一区二区| 亚洲精品免费在线播放| 久久久久久久久伊人| 91精品国产综合久久香蕉麻豆| 成人做爰69片免费看网站| 加勒比av一区二区| 五月天激情小说综合| 亚洲免费av观看| 中文字幕一区二区三区在线播放| 精品久久五月天| 日韩电影在线一区| 国产亚洲制服色| 日韩三区在线观看| 91麻豆精品国产91久久久久久| 色综合久久久久综合| eeuss影院一区二区三区| 国产精品亚洲一区二区三区在线| 久久成人精品无人区| 三级欧美在线一区| 亚洲一级电影视频| 亚洲另类中文字| 亚洲嫩草精品久久| 亚洲精品中文字幕乱码三区| 中文字幕一区二区在线观看| 国产欧美日韩中文久久| 精品电影一区二区| 亚洲精品在线三区| 久久―日本道色综合久久| 久久久久久久久久看片| 国产亚洲欧美日韩日本| 国产欧美日韩在线| 国产精品久久夜| 亚洲欧洲日韩在线| 一区二区三区欧美视频| 一区二区三区不卡在线观看 | 欧美揉bbbbb揉bbbbb| 91福利在线播放| 欧美蜜桃一区二区三区| 51精品国自产在线| 精品动漫一区二区三区在线观看| 久久综合给合久久狠狠狠97色69| 久久久www成人免费无遮挡大片| 精品国产一区二区亚洲人成毛片| 2017欧美狠狠色| 中文字幕人成不卡一区| 亚洲美女电影在线| 天天色天天操综合| 国产精品系列在线观看| www.欧美亚洲| 欧美精品乱人伦久久久久久| 日韩欧美国产综合| 中文字幕乱码久久午夜不卡| 亚洲一区二区三区美女| 亚洲成av人片观看| 久久精品99国产国产精| 国产91高潮流白浆在线麻豆 | 午夜天堂影视香蕉久久| 美女www一区二区| 国产91在线观看丝袜| 色婷婷综合激情| 日韩三级视频中文字幕| 国产精品国模大尺度视频| 亚洲777理论| 国产91露脸合集magnet| 欧洲精品视频在线观看| 欧美一区二区三区不卡| 国产精品乱码人人做人人爱| 亚洲香肠在线观看| 国产91丝袜在线播放0| 欧美日韩高清一区二区三区| 久久精品一区四区| 亚洲成人免费电影| 国产成人激情av| 欧美一区国产二区| 国产精品国产自产拍高清av| 日产国产高清一区二区三区| 99久久99久久久精品齐齐| 日韩一级高清毛片| 亚洲精品国产精华液| 国产一区二区三区在线观看免费 | 久久97超碰国产精品超碰| 色综合久久久久久久久久久| 久久在线观看免费| 午夜精品视频在线观看| 不卡影院免费观看| 日韩欧美第一区| 亚洲午夜久久久| 成人99免费视频| 亚洲精品一线二线三线| 石原莉奈在线亚洲二区| 在线免费不卡视频| 国产精品美女久久久久久久 | 国产成人在线免费| 欧美日产在线观看| 亚洲黄色免费电影| 成人免费看的视频| 久久久久99精品国产片| 青青国产91久久久久久| 欧美亚洲动漫另类| 亚洲精品日韩综合观看成人91| 国产一区二区不卡在线 | 国产精品88888| 日韩亚洲欧美中文三级| 亚洲成av人片| 欧美亚男人的天堂| 一区二区三区电影在线播| 97久久久精品综合88久久| 亚洲国产精华液网站w| 国产自产2019最新不卡| 精品国产亚洲在线| 另类小说欧美激情| 精品久久一二三区| 国产一区二区三区四区五区入口| 精品久久久久久亚洲综合网| 奇米影视一区二区三区| 欧美一级黄色大片| 久久精品国产99久久6| 日韩精品一区二区三区swag | 7777精品伊人久久久大香线蕉| 亚洲午夜激情av| 欧美三级欧美一级| 日韩电影在线一区二区三区| 91精品国产麻豆国产自产在线| 日本最新不卡在线| 精品久久一区二区| 懂色av一区二区三区蜜臀| 国产精品―色哟哟| 91麻豆自制传媒国产之光| 亚洲美女视频在线| 欧美日韩高清一区二区| 蜜臀国产一区二区三区在线播放 | 制服丝袜一区二区三区| 免费一级片91| 久久免费的精品国产v∧| 成人精品视频一区| ...av二区三区久久精品| 在线观看一区不卡| 日韩电影一区二区三区四区| 日韩免费成人网| 国产成人在线视频播放| 亚洲视频你懂的| 欧美电影在哪看比较好| 久久91精品国产91久久小草| 国产亚洲欧美日韩日本| 91女厕偷拍女厕偷拍高清| 亚洲不卡av一区二区三区| 日韩三级电影网址| 成人黄色一级视频| 亚洲国产精品一区二区尤物区| 欧美电视剧免费观看| 成人av免费观看| 首页亚洲欧美制服丝腿| 欧美极品另类videosde| 欧美视频中文字幕| 国产精华液一区二区三区| 亚洲一区二区在线免费看|