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

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

?? pngrtran.c

?? 一款最完整的工業(yè)組態(tài)軟源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
      int shift[4];
      int channels = 0;
      int c;
      png_uint_16 value = 0;
      png_uint_32 row_width = row_info->width;

      if (row_info->color_type & PNG_COLOR_MASK_COLOR)
      {
         shift[channels++] = row_info->bit_depth - sig_bits->red;
         shift[channels++] = row_info->bit_depth - sig_bits->green;
         shift[channels++] = row_info->bit_depth - sig_bits->blue;
      }
      else
      {
         shift[channels++] = row_info->bit_depth - sig_bits->gray;
      }
      if (row_info->color_type & PNG_COLOR_MASK_ALPHA)
      {
         shift[channels++] = row_info->bit_depth - sig_bits->alpha;
      }

      for (c = 0; c < channels; c++)
      {
         if (shift[c] <= 0)
            shift[c] = 0;
         else
            value = 1;
      }

      if (!value)
         return;

      switch (row_info->bit_depth)
      {
         case 2:
         {
            png_bytep bp;
            png_uint_32 i;
            png_uint_32 istop = row_info->rowbytes;

            for (bp = row, i = 0; i < istop; i++)
            {
               *bp >>= 1;
               *bp++ &= 0x55;
            }
            break;
         }
         case 4:
         {
            png_bytep bp = row;
            png_uint_32 i;
            png_uint_32 istop = row_info->rowbytes;
            png_byte mask = (png_byte)((((int)0xf0 >> shift[0]) & (int)0xf0) |
               (png_byte)((int)0xf >> shift[0]));

            for (i = 0; i < istop; i++)
            {
               *bp >>= shift[0];
               *bp++ &= mask;
            }
            break;
         }
         case 8:
         {
            png_bytep bp = row;
            png_uint_32 i;
            png_uint_32 istop = row_width * channels;

            for (i = 0; i < istop; i++)
            {
               *bp++ >>= shift[i%channels];
            }
            break;
         }
         case 16:
         {
            png_bytep bp = row;
            png_uint_32 i;
            png_uint_32 istop = channels * row_width;

            for (i = 0; i < istop; i++)
            {
               value = (png_uint_16)((*bp << 8) + *(bp + 1));
               value >>= shift[i%channels];
               *bp++ = (png_byte)(value >> 8);
               *bp++ = (png_byte)(value & 0xff);
            }
            break;
         }
      }
   }
}
#endif

#if defined(PNG_READ_16_TO_8_SUPPORTED)
/* chop rows of bit depth 16 down to 8 */
void /* PRIVATE */
png_do_chop(png_row_infop row_info, png_bytep row)
{
   png_debug(1, "in png_do_chop\n");
#if defined(PNG_USELESS_TESTS_SUPPORTED)
   if (row != NULL && row_info != NULL && row_info->bit_depth == 16)
#else
   if (row_info->bit_depth == 16)
#endif
   {
      png_bytep sp = row;
      png_bytep dp = row;
      png_uint_32 i;
      png_uint_32 istop = row_info->width * row_info->channels;

      for (i = 0; i<istop; i++, sp += 2, dp++)
      {
#if defined(PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED)
      /* This does a more accurate scaling of the 16-bit color
       * value, rather than a simple low-byte truncation.
       *
       * What the ideal calculation should be:
       *   *dp = (((((png_uint_32)(*sp) << 8) |
       *          (png_uint_32)(*(sp + 1))) * 255 + 127) / (png_uint_32)65535L;
       *
       * GRR: no, I think this is what it really should be:
       *   *dp = (((((png_uint_32)(*sp) << 8) |
       *           (png_uint_32)(*(sp + 1))) + 128L) / (png_uint_32)257L;
       *
       * GRR: here's the exact calculation with shifts:
       *   temp = (((png_uint_32)(*sp) << 8) | (png_uint_32)(*(sp + 1))) + 128L;
       *   *dp = (temp - (temp >> 8)) >> 8;
       *
       * Approximate calculation with shift/add instead of multiply/divide:
       *   *dp = ((((png_uint_32)(*sp) << 8) |
       *          (png_uint_32)((int)(*(sp + 1)) - *sp)) + 128) >> 8;
       *
       * What we actually do to avoid extra shifting and conversion:
       */

         *dp = *sp + ((((int)(*(sp + 1)) - *sp) > 128) ? 1 : 0);
#else
       /* Simply discard the low order byte */
         *dp = *sp;
#endif
      }
      row_info->bit_depth = 8;
      row_info->pixel_depth = (png_byte)(8 * row_info->channels);
      row_info->rowbytes = row_info->width * row_info->channels;
   }
}
#endif

#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED)
void /* PRIVATE */
png_do_read_swap_alpha(png_row_infop row_info, png_bytep row)
{
   png_debug(1, "in png_do_read_swap_alpha\n");
#if defined(PNG_USELESS_TESTS_SUPPORTED)
   if (row != NULL && row_info != NULL)
#endif
   {
      png_uint_32 row_width = row_info->width;
      if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
      {
         /* This converts from RGBA to ARGB */
         if (row_info->bit_depth == 8)
         {
            png_bytep sp = row + row_info->rowbytes;
            png_bytep dp = sp;
            png_byte save;
            png_uint_32 i;

            for (i = 0; i < row_width; i++)
            {
               save = *(--sp);
               *(--dp) = *(--sp);
               *(--dp) = *(--sp);
               *(--dp) = *(--sp);
               *(--dp) = save;
            }
         }
         /* This converts from RRGGBBAA to AARRGGBB */
         else
         {
            png_bytep sp = row + row_info->rowbytes;
            png_bytep dp = sp;
            png_byte save[2];
            png_uint_32 i;

            for (i = 0; i < row_width; i++)
            {
               save[0] = *(--sp);
               save[1] = *(--sp);
               *(--dp) = *(--sp);
               *(--dp) = *(--sp);
               *(--dp) = *(--sp);
               *(--dp) = *(--sp);
               *(--dp) = *(--sp);
               *(--dp) = *(--sp);
               *(--dp) = save[0];
               *(--dp) = save[1];
            }
         }
      }
      else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
      {
         /* This converts from GA to AG */
         if (row_info->bit_depth == 8)
         {
            png_bytep sp = row + row_info->rowbytes;
            png_bytep dp = sp;
            png_byte save;
            png_uint_32 i;

            for (i = 0; i < row_width; i++)
            {
               save = *(--sp);
               *(--dp) = *(--sp);
               *(--dp) = save;
            }
         }
         /* This converts from GGAA to AAGG */
         else
         {
            png_bytep sp = row + row_info->rowbytes;
            png_bytep dp = sp;
            png_byte save[2];
            png_uint_32 i;

            for (i = 0; i < row_width; i++)
            {
               save[0] = *(--sp);
               save[1] = *(--sp);
               *(--dp) = *(--sp);
               *(--dp) = *(--sp);
               *(--dp) = save[0];
               *(--dp) = save[1];
            }
         }
      }
   }
}
#endif

#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED)
void /* PRIVATE */
png_do_read_invert_alpha(png_row_infop row_info, png_bytep row)
{
   png_debug(1, "in png_do_read_invert_alpha\n");
#if defined(PNG_USELESS_TESTS_SUPPORTED)
   if (row != NULL && row_info != NULL)
#endif
   {
      png_uint_32 row_width = row_info->width;
      if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
      {
         /* This inverts the alpha channel in RGBA */
         if (row_info->bit_depth == 8)
         {
            png_bytep sp = row + row_info->rowbytes;
            png_bytep dp = sp;
            png_uint_32 i;

            for (i = 0; i < row_width; i++)
            {
               *(--dp) = (png_byte)(255 - *(--sp));

/*             This does nothing:
               *(--dp) = *(--sp);
               *(--dp) = *(--sp);
               *(--dp) = *(--sp);
               We can replace it with:
*/
               sp-=3;
               dp=sp;
            }
         }
         /* This inverts the alpha channel in RRGGBBAA */
         else
         {
            png_bytep sp = row + row_info->rowbytes;
            png_bytep dp = sp;
            png_uint_32 i;

            for (i = 0; i < row_width; i++)
            {
               *(--dp) = (png_byte)(255 - *(--sp));
               *(--dp) = (png_byte)(255 - *(--sp));

/*             This does nothing:
               *(--dp) = *(--sp);
               *(--dp) = *(--sp);
               *(--dp) = *(--sp);
               *(--dp) = *(--sp);
               *(--dp) = *(--sp);
               *(--dp) = *(--sp);
               We can replace it with:
*/
               sp-=6;
               dp=sp;
            }
         }
      }
      else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
      {
         /* This inverts the alpha channel in GA */
         if (row_info->bit_depth == 8)
         {
            png_bytep sp = row + row_info->rowbytes;
            png_bytep dp = sp;
            png_uint_32 i;

            for (i = 0; i < row_width; i++)
            {
               *(--dp) = (png_byte)(255 - *(--sp));
               *(--dp) = *(--sp);
            }
         }
         /* This inverts the alpha channel in GGAA */
         else
         {
            png_bytep sp  = row + row_info->rowbytes;
            png_bytep dp = sp;
            png_uint_32 i;

            for (i = 0; i < row_width; i++)
            {
               *(--dp) = (png_byte)(255 - *(--sp));
               *(--dp) = (png_byte)(255 - *(--sp));
/*
               *(--dp) = *(--sp);
               *(--dp) = *(--sp);
*/
               sp-=2;
               dp=sp;
            }
         }
      }
   }
}
#endif

#if defined(PNG_READ_FILLER_SUPPORTED)
/* Add filler channel if we have RGB color */
void /* PRIVATE */
png_do_read_filler(png_row_infop row_info, png_bytep row,
   png_uint_32 filler, png_uint_32 flags)
{
   png_uint_32 i;
   png_uint_32 row_width = row_info->width;

   png_byte hi_filler = (png_byte)((filler>>8) & 0xff);
   png_byte lo_filler = (png_byte)(filler & 0xff);

   png_debug(1, "in png_do_read_filler\n");
   if (
#if defined(PNG_USELESS_TESTS_SUPPORTED)
       row != NULL  && row_info != NULL &&
#endif
       row_info->color_type == PNG_COLOR_TYPE_GRAY)
   {
      if(row_info->bit_depth == 8)
      {
         /* This changes the data from G to GX */
         if (flags & PNG_FLAG_FILLER_AFTER)
         {
            png_bytep sp = row + (png_size_t)row_width;
            png_bytep dp =  sp + (png_size_t)row_width;
            for (i = 1; i < row_width; i++)
            {
               *(--dp) = lo_filler;
               *(--dp) = *(--sp);
            }
            *(--dp) = lo_filler;
            row_info->channels = 2;
        

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区三区视频| 91精品国产色综合久久不卡电影| 91麻豆精品国产无毒不卡在线观看 | 成人午夜av在线| 中文字幕第一区第二区| 美女在线观看视频一区二区| 欧美日韩国产乱码电影| 精品午夜久久福利影院 | 欧美在线啊v一区| 麻豆精品一区二区综合av| 欧美国产精品一区二区| 欧美午夜影院一区| 免费观看91视频大全| 亚洲在线视频网站| 国产精品白丝在线| 91亚洲精品一区二区乱码| 三级影片在线观看欧美日韩一区二区| 日韩午夜激情av| jiyouzz国产精品久久| 免费国产亚洲视频| 亚洲国产精品一区二区尤物区| 久久蜜臀精品av| 欧美一级片在线| 欧美日韩精品一区二区三区蜜桃| 成人av网在线| 91免费在线看| 91国偷自产一区二区开放时间| 不卡电影免费在线播放一区| 久久国产精品一区二区| 美女脱光内衣内裤视频久久影院| 亚洲综合视频网| 亚洲自拍偷拍欧美| 亚洲国产精品久久不卡毛片 | 国产精品色噜噜| 日本一区二区不卡视频| 欧美经典一区二区三区| 日本一区二区三区电影| 18欧美亚洲精品| 亚洲人成网站精品片在线观看| 国产精品灌醉下药二区| 亚洲三级久久久| 日韩av中文在线观看| 久久精品99久久久| 国产成人99久久亚洲综合精品| 成人精品免费看| 欧美日韩亚州综合| 国产视频一区在线观看 | 日产国产欧美视频一区精品| 日本人妖一区二区| 成人aa视频在线观看| 91精品在线麻豆| 亚洲天堂2014| 国精产品一区一区三区mba桃花| 99久久99久久久精品齐齐| 欧美日韩一区二区三区视频| 久久婷婷国产综合国色天香| 一区二区在线看| 国产一区二区三区蝌蚪| 678五月天丁香亚洲综合网| 精品久久免费看| 午夜精品久久久久久久久| 99久久精品国产麻豆演员表| 欧美va亚洲va香蕉在线| 午夜欧美在线一二页| 91麻豆精品一区二区三区| 中文字幕av不卡| 国产99久久久精品| 国产天堂亚洲国产碰碰| 精彩视频一区二区三区| 欧美哺乳videos| 日本强好片久久久久久aaa| 3d动漫精品啪啪1区2区免费| 亚洲国产cao| 欧美群妇大交群中文字幕| 亚洲一区中文日韩| 欧美吞精做爰啪啪高潮| 亚洲va天堂va国产va久| 7777精品伊人久久久大香线蕉 | 亚洲色图色小说| 91精品福利视频| 天天av天天翘天天综合网色鬼国产| 3atv一区二区三区| 美女精品自拍一二三四| 国产午夜精品理论片a级大结局| 国产原创一区二区| 最新久久zyz资源站| 精品视频1区2区3区| 黑人精品欧美一区二区蜜桃| 欧美国产日韩在线观看| 欧美偷拍一区二区| 国模套图日韩精品一区二区| 成人免费在线观看入口| 91精品国产综合久久精品app| 国产一区二区在线观看视频| 亚洲免费在线电影| 久久综合99re88久久爱| 欧美丝袜第三区| 91亚洲午夜精品久久久久久| 精品一区二区久久久| 亚洲欧美日韩电影| 亚洲国产成人私人影院tom| 日韩一二三四区| 在线观看亚洲成人| 成人午夜电影网站| 国产一区二区精品久久99| 日韩在线播放一区二区| 一区二区三区在线观看欧美| 日本一区二区成人在线| 日韩一区二区三区在线视频| 日本久久精品电影| www.日韩大片| 91在线免费看| 91亚洲精品一区二区乱码| 成人丝袜18视频在线观看| 福利91精品一区二区三区| 精品一区二区三区视频在线观看| 麻豆中文一区二区| 麻豆精品精品国产自在97香蕉| 一区二区三区四区在线播放| 亚洲男人天堂一区| 亚洲.国产.中文慕字在线| 免费成人在线播放| 免费日韩伦理电影| 精品中文av资源站在线观看| 美女视频一区在线观看| 国产一区二区三区免费看| 国产激情精品久久久第一区二区 | 亚洲色图另类专区| 亚洲福利国产精品| 国产精品夜夜嗨| 在线看一区二区| 日韩视频一区二区三区| 中文欧美字幕免费| 亚洲综合色噜噜狠狠| 国产在线播放一区| 色老综合老女人久久久| 精品乱人伦小说| 亚洲精品欧美激情| 风间由美一区二区av101| 欧美亚洲综合网| 国产精品久久影院| 久久精品99久久久| 欧美人妖巨大在线| 亚洲欧洲精品成人久久奇米网 | 国产福利91精品一区| 欧美猛男超大videosgay| 亚洲人妖av一区二区| 国产综合色精品一区二区三区| 欧美人与性动xxxx| 最新久久zyz资源站| 成人激情图片网| 久久免费的精品国产v∧| 久久国内精品自在自线400部| 欧美日韩在线不卡| 日韩高清中文字幕一区| 欧美视频精品在线观看| 一区二区久久久久久| 欧美性猛片xxxx免费看久爱| 亚洲免费三区一区二区| 在线免费观看日本欧美| 亚洲国产sm捆绑调教视频| 欧美色精品在线视频| 日韩精彩视频在线观看| 欧美精选一区二区| 精品一区二区国语对白| 久久综合久色欧美综合狠狠| 国产伦精品一区二区三区免费| 精品成人a区在线观看| 9i在线看片成人免费| 亚洲高清在线精品| 久久综合久久鬼色| 97久久久精品综合88久久| 一区二区三区精品在线| 欧美一级久久久| 成人免费看片app下载| 肉丝袜脚交视频一区二区| 久久久久久久免费视频了| 91浏览器打开| 精品一区二区三区欧美| 亚洲中国最大av网站| 日韩视频中午一区| 欧美午夜寂寞影院| 韩国v欧美v亚洲v日本v| 亚洲一区在线视频观看| 中文字幕中文字幕一区| 欧美tickle裸体挠脚心vk| 一本久道中文字幕精品亚洲嫩| 亚洲一区二区欧美激情| 国产精品三级视频| 2024国产精品| 精品国产自在久精品国产| 欧美日韩一级黄| 欧美高清性hdvideosex| 欧美日高清视频| 欧美日韩高清在线播放| 欧美日韩午夜精品| 欧美另类z0zxhd电影| 欧美色精品在线视频| 欧美日韩一本到| 日韩手机在线导航|