21#ifdef PNG_READ_SUPPORTED
51 "Can't discard critical data on CRC error");
91#ifdef PNG_READ_TRANSFORMS_SUPPORTED
103 "invalid after png_start_read_image or png_read_update_info");
121#ifdef PNG_READ_BACKGROUND_SUPPORTED
128 png_debug(1,
"in png_set_background_fixed");
144 png_ptr->background_gamma = background_gamma;
152# ifdef PNG_FLOATING_POINT_SUPPORTED
168#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED
181#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
195#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
208#if defined(PNG_READ_ALPHA_MODE_SUPPORTED) || defined(PNG_READ_GAMMA_SUPPORTED)
224# ifdef PNG_READ_sRGB_SUPPORTED
245# ifdef PNG_FLOATING_POINT_SUPPORTED
256 if (output_gamma > 0 && output_gamma < 128)
260 output_gamma = floor(output_gamma + .5);
270#ifdef PNG_READ_ALPHA_MODE_SUPPORTED
291 if (output_gamma < 70000 || output_gamma > 300000)
352 if (
png_ptr->colorspace.gamma == 0)
354 png_ptr->colorspace.gamma = file_gamma;
359 png_ptr->screen_gamma = output_gamma;
374 "conflicting calls to set alpha mode and background");
380# ifdef PNG_FLOATING_POINT_SUPPORTED
390#ifdef PNG_READ_QUANTIZE_SUPPORTED
427 for (
i = 0;
i < num_palette;
i++)
428 png_ptr->quantize_index[
i] = (png_byte)
i;
431 if (num_palette > maximum_colors)
433 if (histogram !=
NULL)
446 for (
i = 0;
i < num_palette;
i++)
456 for (
i = num_palette - 1;
i >= maximum_colors;
i--)
462 for (
j = 0;
j <
i;
j++)
464 if (histogram[
png_ptr->quantize_sort[
j]]
465 < histogram[
png_ptr->quantize_sort[
j + 1]])
488 for (
i = 0;
i < maximum_colors;
i++)
490 if ((
int)
png_ptr->quantize_sort[
i] >= maximum_colors)
494 while ((
int)
png_ptr->quantize_sort[
j] >= maximum_colors);
496 palette[
i] = palette[
j];
507 for (
i = 0;
i < maximum_colors;
i++)
510 if ((
int)
png_ptr->quantize_sort[
i] >= maximum_colors)
516 while ((
int)
png_ptr->quantize_sort[
j] >= maximum_colors);
518 tmp_color = palette[
j];
519 palette[
j] = palette[
i];
520 palette[
i] = tmp_color;
522 png_ptr->quantize_index[
j] = (png_byte)
i;
523 png_ptr->quantize_index[
i] = (png_byte)
j;
528 for (
i = 0;
i < num_palette;
i++)
530 if ((
int)
png_ptr->quantize_index[
i] >= maximum_colors)
532 int min_d,
k, min_k, d_index;
535 d_index =
png_ptr->quantize_index[
i];
537 for (
k = 1, min_k = 0;
k < maximum_colors;
k++)
550 png_ptr->quantize_index[
i] = (png_byte)min_k;
582 for (
i = 0;
i < num_palette;
i++)
584 png_ptr->index_to_palette[
i] = (png_byte)
i;
585 png_ptr->palette_to_index[
i] = (png_byte)
i;
591 num_new_palette = num_palette;
603 while (num_new_palette > maximum_colors)
605 for (
i = 0;
i < num_new_palette - 1;
i++)
609 for (
j =
i + 1;
j < num_new_palette;
j++)
625 t->left = (png_byte)
i;
626 t->right = (png_byte)
j;
635 for (
i = 0;
i <= max_d;
i++)
641 for (
p = hash[
i];
p;
p =
p->next)
643 if ((
int)
png_ptr->index_to_palette[
p->left]
645 (
int)
png_ptr->index_to_palette[
p->right]
650 if (num_new_palette & 0x01)
662 palette[
png_ptr->index_to_palette[
j]]
663 = palette[num_new_palette];
668 for (
k = 0;
k < num_palette;
k++)
673 png_ptr->index_to_palette[next_j];
675 if ((
int)
png_ptr->quantize_index[
k] ==
683 [num_new_palette]] =
png_ptr->index_to_palette[
j];
686 =
png_ptr->palette_to_index[num_new_palette];
689 (png_byte)num_new_palette;
691 png_ptr->palette_to_index[num_new_palette] =
694 if (num_new_palette <= maximum_colors)
697 if (num_new_palette <= maximum_colors)
702 for (
i = 0;
i < 769;
i++)
724 num_palette = maximum_colors;
741 png_size_t num_entries = ((png_size_t)1 << total_bits);
747 (
sizeof (png_byte))));
749 memset(distance, 0xff, num_entries * (
sizeof (png_byte)));
751 for (
i = 0;
i < num_palette;
i++)
758 for (ir = 0; ir < num_red; ir++)
761 int dr = ((ir >
r) ? ir -
r :
r - ir);
765 for (ig = 0; ig < num_green; ig++)
768 int dg = ((ig >
g) ? ig -
g :
g - ig);
770 int dm = ((dr > dg) ? dr : dg);
773 for (ib = 0; ib < num_blue; ib++)
775 int d_index = index_g | ib;
777 int db = ((ib >
b) ? ib -
b :
b - ib);
778 int dmax = ((dm > db) ? dm : db);
779 int d = dmax +
dt + db;
781 if (
d < (
int)distance[d_index])
783 distance[d_index] = (png_byte)
d;
784 png_ptr->palette_lookup[d_index] = (png_byte)
i;
796#ifdef PNG_READ_GAMMA_SUPPORTED
831 png_ptr->colorspace.gamma = file_gamma;
833 png_ptr->screen_gamma = scrn_gamma;
836# ifdef PNG_FLOATING_POINT_SUPPORTED
846#ifdef PNG_READ_EXPAND_SUPPORTED
884 png_debug(1,
"in png_set_palette_to_rgb");
896 png_debug(1,
"in png_set_expand_gray_1_2_4_to_8");
908 png_debug(1,
"in png_set_tRNS_to_alpha");
917#ifdef PNG_READ_EXPAND_16_SUPPORTED
933#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
948#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
980#ifdef PNG_READ_EXPAND_SUPPORTED
988 "Cannot do RGB_TO_GRAY without EXPAND_SUPPORTED");
1006 png_ptr->rgb_to_gray_red_coeff = red_int;
1007 png_ptr->rgb_to_gray_green_coeff = green_int;
1008 png_ptr->rgb_to_gray_coefficients_set = 1;
1013 if (
red >= 0 && green >= 0)
1015 "ignoring out of range rgb_to_gray coefficients");
1023 if (
png_ptr->rgb_to_gray_red_coeff == 0 &&
1024 png_ptr->rgb_to_gray_green_coeff == 0)
1026 png_ptr->rgb_to_gray_red_coeff = 6968;
1027 png_ptr->rgb_to_gray_green_coeff = 23434;
1034#ifdef PNG_FLOATING_POINT_SUPPORTED
1051#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
1052 defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
1055 read_user_transform_fn)
1057 png_debug(1,
"in png_set_read_user_transform_fn");
1062#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
1064 png_ptr->read_user_transform_fn = read_user_transform_fn;
1069#ifdef PNG_READ_TRANSFORMS_SUPPORTED
1070#ifdef PNG_READ_GAMMA_SUPPORTED
1111 int input_has_alpha = 0;
1112 int input_has_transparency = 0;
1120 if (
png_ptr->trans_alpha[
i] == 255)
1122 else if (
png_ptr->trans_alpha[
i] == 0)
1123 input_has_transparency = 1;
1125 input_has_alpha = 1;
1129 if (!input_has_alpha)
1138 if (!input_has_transparency)
1142#if defined(PNG_READ_EXPAND_SUPPORTED) && defined(PNG_READ_BACKGROUND_SUPPORTED)
1162#ifdef PNG_READ_INVERT_ALPHA_SUPPORTED
1172 for (
i=0;
i<istop;
i++)
1173 png_ptr->trans_alpha[
i] = (png_byte)(255 -
1191 int input_has_transparency =
png_ptr->num_trans > 0;
1194 if (!input_has_alpha)
1200# ifdef PNG_READ_ALPHA_MODE_SUPPORTED
1205 if (!input_has_transparency)
1209#if defined(PNG_READ_EXPAND_SUPPORTED) && defined(PNG_READ_BACKGROUND_SUPPORTED)
1225 int gray =
png_ptr->background.gray;
1226 int trans_gray =
png_ptr->trans_color.gray;
1271 png_debug(1,
"in png_init_read_transformations");
1281#ifdef PNG_READ_GAMMA_SUPPORTED
1292 int gamma_correction = 0;
1294 if (
png_ptr->colorspace.gamma != 0)
1296 if (
png_ptr->screen_gamma != 0)
1307 else if (
png_ptr->screen_gamma != 0)
1334 if (gamma_correction)
1371#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
1395#ifdef PNG_READ_ALPHA_MODE_SUPPORTED
1406#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
1414#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
1415#if defined(PNG_READ_EXPAND_SUPPORTED) && defined(PNG_READ_BACKGROUND_SUPPORTED)
1477#if defined(PNG_READ_BACKGROUND_SUPPORTED) && \
1478 defined(PNG_READ_EXPAND_16_SUPPORTED)
1494# define CHOP(x) (x)=((png_uint_16)PNG_DIV257(x))
1503#if defined(PNG_READ_BACKGROUND_SUPPORTED) && \
1504 (defined(PNG_READ_SCALE_16_TO_8_SUPPORTED) || \
1505 defined(PNG_READ_STRIP_16_TO_8_SUPPORTED))
1533#ifdef PNG_READ_GAMMA_SUPPORTED
1534# ifdef PNG_READ_BACKGROUND_SUPPORTED
1569#ifdef PNG_READ_BACKGROUND_SUPPORTED
1580 "libpng does not support gamma+background+rgb_to_gray");
1589 int num_palette =
png_ptr->num_palette;
1606 switch (
png_ptr->background_gamma_type)
1642 back.
red = (png_byte)
png_ptr->background.red;
1659 back_1.
red = (png_byte)
png_ptr->background.red;
1665 for (
i = 0;
i < num_palette;
i++)
1715 switch (
png_ptr->background_gamma_type)
1747 png_ptr->background.gray, gs);
1772 png_ptr->background.green, gs);
1775 png_ptr->background.blue, gs);
1806 int num_palette =
png_ptr->num_palette;
1812 for (
i = 0;
i < num_palette;
i++)
1823#ifdef PNG_READ_BACKGROUND_SUPPORTED
1828#ifdef PNG_READ_BACKGROUND_SUPPORTED
1838 back.
red = (png_byte)
png_ptr->background.red;
1842 for (
i = 0;
i < istop;
i++)
1849 else if (
png_ptr->trans_alpha[
i] != 0xff)
1867#ifdef PNG_READ_SHIFT_SUPPORTED
1873 int istop =
png_ptr->num_palette;
1874 int shift = 8 -
png_ptr->sig_bit.red;
1882 if (shift > 0 && shift < 8)
for (
i=0;
i<istop; ++
i)
1884 int component =
png_ptr->palette[
i].red;
1886 component >>= shift;
1887 png_ptr->palette[
i].red = (png_byte)component;
1890 shift = 8 -
png_ptr->sig_bit.green;
1891 if (shift > 0 && shift < 8)
for (
i=0;
i<istop; ++
i)
1893 int component =
png_ptr->palette[
i].green;
1895 component >>= shift;
1896 png_ptr->palette[
i].green = (png_byte)component;
1899 shift = 8 -
png_ptr->sig_bit.blue;
1900 if (shift > 0 && shift < 8)
for (
i=0;
i<istop; ++
i)
1902 int component =
png_ptr->palette[
i].blue;
1904 component >>= shift;
1905 png_ptr->palette[
i].blue = (png_byte)component;
1918 png_debug(1,
"in png_read_transform_info");
1920#ifdef PNG_READ_EXPAND_SUPPORTED
1953#if defined(PNG_READ_BACKGROUND_SUPPORTED) ||\
1954 defined(PNG_READ_ALPHA_MODE_SUPPORTED)
1962#ifdef PNG_READ_GAMMA_SUPPORTED
1977# ifdef PNG_READ_16BIT_SUPPORTED
1978# ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED
1983# ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
1993# ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
2002# ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED
2007 CONFIGURATION ERROR: you must enable at least one 16 to 8
method
2013#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
2019#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
2025#ifdef PNG_READ_QUANTIZE_SUPPORTED
2037#ifdef PNG_READ_EXPAND_16_SUPPORTED
2045#ifdef PNG_READ_PACK_SUPPORTED
2059#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
2071#ifdef PNG_READ_FILLER_SUPPORTED
2084#if defined(PNG_USER_TRANSFORM_PTR_SUPPORTED) && \
2085defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
2109#ifndef PNG_READ_EXPAND_SUPPORTED
2122 png_debug(1,
"in png_do_read_transformations");
2149#ifdef PNG_READ_EXPAND_SUPPORTED
2172#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
2181#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
2190 png_ptr->rgb_to_gray_status=1;
2233#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
2242#if defined(PNG_READ_BACKGROUND_SUPPORTED) ||\
2243 defined(PNG_READ_ALPHA_MODE_SUPPORTED)
2248#ifdef PNG_READ_GAMMA_SUPPORTED
2270#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
2279#ifdef PNG_READ_ALPHA_MODE_SUPPORTED
2285#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED
2290#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
2299#ifdef PNG_READ_QUANTIZE_SUPPORTED
2310#ifdef PNG_READ_EXPAND_16_SUPPORTED
2320#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
2327#ifdef PNG_READ_INVERT_SUPPORTED
2332#ifdef PNG_READ_SHIFT_SUPPORTED
2338#ifdef PNG_READ_PACK_SUPPORTED
2343#ifdef PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED
2346 png_ptr->num_palette_max >= 0)
2350#ifdef PNG_READ_BGR_SUPPORTED
2355#ifdef PNG_READ_PACKSWAP_SUPPORTED
2360#ifdef PNG_READ_FILLER_SUPPORTED
2366#ifdef PNG_READ_INVERT_ALPHA_SUPPORTED
2371#ifdef PNG_READ_SWAP_ALPHA_SUPPORTED
2376#ifdef PNG_READ_16BIT_SUPPORTED
2377#ifdef PNG_READ_SWAP_SUPPORTED
2383#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
2387 (*(
png_ptr->read_user_transform_fn))
2397#ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED
2398 if (
png_ptr->user_transform_depth)
2401 if (
png_ptr->user_transform_channels)
2412#ifdef PNG_READ_PACK_SUPPORTED
2433 png_bytep sp = row + (png_size_t)((row_width - 1) >> 3);
2436 for (
i = 0;
i < row_width;
i++)
2438 *
dp = (png_byte)((*
sp >> shift) & 0x01);
2457 png_bytep sp = row + (png_size_t)((row_width - 1) >> 2);
2460 for (
i = 0;
i < row_width;
i++)
2462 *
dp = (png_byte)((*
sp >> shift) & 0x03);
2480 png_bytep sp = row + (png_size_t)((row_width - 1) >> 1);
2483 for (
i = 0;
i < row_width;
i++)
2485 *
dp = (png_byte)((*
sp >> shift) & 0x0f);
2511#ifdef PNG_READ_SHIFT_SUPPORTED
2536 shift[channels++] = bit_depth - sig_bits->
red;
2537 shift[channels++] = bit_depth - sig_bits->
green;
2538 shift[channels++] = bit_depth - sig_bits->
blue;
2543 shift[channels++] = bit_depth - sig_bits->
gray;
2548 shift[channels++] = bit_depth - sig_bits->
alpha;
2554 for (
c = have_shift = 0;
c < channels; ++
c)
2559 if (shift[
c] <= 0 || shift[
c] >= bit_depth)
2586 int b = (*bp >> 1) & 0x55;
2587 *bp++ = (png_byte)
b;
2598 int gray_shift = shift[0];
2599 int mask = 0xf >> gray_shift;
2605 int b = (*bp >> gray_shift) &
mask;
2606 *bp++ = (png_byte)
b;
2620 int b = *bp >> shift[channel];
2621 if (++channel >= channels)
2623 *bp++ = (png_byte)
b;
2628#ifdef PNG_READ_16BIT_SUPPORTED
2638 int value = (bp[0] << 8) + bp[1];
2640 value >>= shift[channel];
2641 if (++channel >= channels)
2643 *bp++ = (png_byte)(
value >> 8);
2644 *bp++ = (png_byte)(
value & 0xff);
2654#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED
2659 png_debug(1,
"in png_do_scale_16_to_8");
2702 tmp += (((
int)*
sp++ - tmp + 128) * 65535) >> 24;
2703 *
dp++ = (png_byte)tmp;
2713#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
2741#ifdef PNG_READ_SWAP_ALPHA_SUPPORTED
2745 png_debug(1,
"in png_do_read_swap_alpha");
2759 for (
i = 0;
i < row_width;
i++)
2769#ifdef PNG_READ_16BIT_SUPPORTED
2778 for (
i = 0;
i < row_width;
i++)
2805 for (
i = 0;
i < row_width;
i++)
2813#ifdef PNG_READ_16BIT_SUPPORTED
2822 for (
i = 0;
i < row_width;
i++)
2838#ifdef PNG_READ_INVERT_ALPHA_SUPPORTED
2843 png_debug(1,
"in png_do_read_invert_alpha");
2845 row_width = row_info->
width;
2855 for (
i = 0;
i < row_width;
i++)
2857 *(--
dp) = (png_byte)(255 - *(--
sp));
2870#ifdef PNG_READ_16BIT_SUPPORTED
2878 for (
i = 0;
i < row_width;
i++)
2880 *(--
dp) = (png_byte)(255 - *(--
sp));
2881 *(--
dp) = (png_byte)(255 - *(--
sp));
2907 for (
i = 0;
i < row_width;
i++)
2909 *(--
dp) = (png_byte)(255 - *(--
sp));
2914#ifdef PNG_READ_16BIT_SUPPORTED
2922 for (
i = 0;
i < row_width;
i++)
2924 *(--
dp) = (png_byte)(255 - *(--
sp));
2925 *(--
dp) = (png_byte)(255 - *(--
sp));
2939#ifdef PNG_READ_FILLER_SUPPORTED
2948#ifdef PNG_READ_16BIT_SUPPORTED
2949 png_byte hi_filler = (png_byte)((filler>>8) & 0xff);
2951 png_byte lo_filler = (png_byte)(filler & 0xff);
2965 for (
i = 1;
i < row_width;
i++)
2967 *(--
dp) = lo_filler;
2970 *(--
dp) = lo_filler;
2973 row_info->
rowbytes = row_width * 2;
2981 for (
i = 0;
i < row_width;
i++)
2984 *(--
dp) = lo_filler;
2988 row_info->
rowbytes = row_width * 2;
2992#ifdef PNG_READ_16BIT_SUPPORTED
3000 for (
i = 1;
i < row_width;
i++)
3002 *(--
dp) = hi_filler;
3003 *(--
dp) = lo_filler;
3007 *(--
dp) = hi_filler;
3008 *(--
dp) = lo_filler;
3011 row_info->
rowbytes = row_width * 4;
3019 for (
i = 0;
i < row_width;
i++)
3023 *(--
dp) = hi_filler;
3024 *(--
dp) = lo_filler;
3028 row_info->
rowbytes = row_width * 4;
3042 for (
i = 1;
i < row_width;
i++)
3044 *(--
dp) = lo_filler;
3049 *(--
dp) = lo_filler;
3052 row_info->
rowbytes = row_width * 4;
3060 for (
i = 0;
i < row_width;
i++)
3065 *(--
dp) = lo_filler;
3069 row_info->
rowbytes = row_width * 4;
3073#ifdef PNG_READ_16BIT_SUPPORTED
3081 for (
i = 1;
i < row_width;
i++)
3083 *(--
dp) = hi_filler;
3084 *(--
dp) = lo_filler;
3092 *(--
dp) = hi_filler;
3093 *(--
dp) = lo_filler;
3096 row_info->
rowbytes = row_width * 8;
3104 for (
i = 0;
i < row_width;
i++)
3112 *(--
dp) = hi_filler;
3113 *(--
dp) = lo_filler;
3118 row_info->
rowbytes = row_width * 8;
3126#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
3146 for (
i = 0;
i < row_width;
i++)
3157 png_bytep sp = row + (png_size_t)row_width * 2 - 1;
3159 for (
i = 0;
i < row_width;
i++)
3162 *(
dp--) = *(
sp - 1);
3164 *(
dp--) = *(
sp - 1);
3176 png_bytep sp = row + (png_size_t)row_width * 2 - 1;
3178 for (
i = 0;
i < row_width;
i++)
3190 png_bytep sp = row + (png_size_t)row_width * 4 - 1;
3192 for (
i = 0;
i < row_width;
i++)
3197 *(
dp--) = *(
sp - 1);
3199 *(
dp--) = *(
sp - 1);
3214#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
3287#ifdef PNG_READ_GAMMA_SUPPORTED
3299 for (
i = 0;
i < row_width;
i++)
3301 png_byte
red = *(
sp++);
3302 png_byte green = *(
sp++);
3303 png_byte blue = *(
sp++);
3305 if (
red != green ||
red != blue)
3308 green =
png_ptr->gamma_to_1[green];
3309 blue =
png_ptr->gamma_to_1[blue];
3313 (rc*
red + gc*green + bc*blue + 16384)>>15];
3338 for (
i = 0;
i < row_width;
i++)
3340 png_byte
red = *(
sp++);
3341 png_byte green = *(
sp++);
3342 png_byte blue = *(
sp++);
3344 if (
red != green ||
red != blue)
3350 *(
dp++) = (png_byte)((rc*
red + gc*green + bc*blue)>>15);
3364#ifdef PNG_READ_GAMMA_SUPPORTED
3371 for (
i = 0;
i < row_width;
i++)
3379 if (
red == green &&
red == blue)
3394 png_ptr->gamma_16_to_1[(green&0xff) >>
3395 png_ptr->gamma_shift][green>>8];
3397 >>
png_ptr->gamma_shift][blue>>8];
3399 + bc*blue_1 + 16384)>>15);
3400 w =
png_ptr->gamma_16_from_1[(gray16&0xff) >>
3401 png_ptr->gamma_shift][gray16 >> 8];
3405 *(
dp++) = (png_byte)((
w>>8) & 0xff);
3406 *(
dp++) = (png_byte)(
w & 0xff);
3422 for (
i = 0;
i < row_width;
i++)
3430 if (
red != green ||
red != blue)
3439 *(
dp++) = (png_byte)((gray16>>8) & 0xff);
3440 *(
dp++) = (png_byte)(gray16 & 0xff);
3463#ifdef PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED
3470png_build_grayscale_palette(
int bit_depth,
png_colorp palette)
3477 png_debug(1,
"in png_do_build_grayscale_palette");
3479 if (palette ==
NULL)
3510 for (
i = 0,
v = 0;
i < num_palette;
i++,
v += color_inc)
3512 palette[
i].
red = (png_byte)
v;
3513 palette[
i].
green = (png_byte)
v;
3514 palette[
i].
blue = (png_byte)
v;
3520#ifdef PNG_READ_TRANSFORMS_SUPPORTED
3521#if defined(PNG_READ_BACKGROUND_SUPPORTED) ||\
3522 defined(PNG_READ_ALPHA_MODE_SUPPORTED)
3530#ifdef PNG_READ_GAMMA_SUPPORTED
3537 int gamma_shift =
png_ptr->gamma_shift;
3559 for (
i = 0;
i < row_width;
i++)
3564 unsigned int tmp = *
sp & (0x7f7f >> (7 - shift));
3565 tmp |=
png_ptr->background.gray << shift;
3566 *
sp = (png_byte)(tmp & 0xff);
3583#ifdef PNG_READ_GAMMA_SUPPORTED
3584 if (gamma_table !=
NULL)
3588 for (
i = 0;
i < row_width;
i++)
3593 unsigned int tmp = *
sp & (0x3f3f >> (6 - shift));
3594 tmp |=
png_ptr->background.gray << shift;
3595 *
sp = (png_byte)(tmp & 0xff);
3600 unsigned int p = (*
sp >> shift) & 0x03;
3601 unsigned int g = (gamma_table [
p | (
p << 2) |
3603 unsigned int tmp = *
sp & (0x3f3f >> (6 - shift));
3605 *
sp = (png_byte)(tmp & 0xff);
3624 for (
i = 0;
i < row_width;
i++)
3629 unsigned int tmp = *
sp & (0x3f3f >> (6 - shift));
3630 tmp |=
png_ptr->background.gray << shift;
3631 *
sp = (png_byte)(tmp & 0xff);
3649#ifdef PNG_READ_GAMMA_SUPPORTED
3650 if (gamma_table !=
NULL)
3654 for (
i = 0;
i < row_width;
i++)
3659 unsigned int tmp = *
sp & (0xf0f >> (4 - shift));
3660 tmp |=
png_ptr->background.gray << shift;
3661 *
sp = (png_byte)(tmp & 0xff);
3666 unsigned int p = (*
sp >> shift) & 0x0f;
3669 unsigned int tmp = *
sp & (0xf0f >> (4 - shift));
3671 *
sp = (png_byte)(tmp & 0xff);
3690 for (
i = 0;
i < row_width;
i++)
3695 unsigned int tmp = *
sp & (0xf0f >> (4 - shift));
3696 tmp |=
png_ptr->background.gray << shift;
3697 *
sp = (png_byte)(tmp & 0xff);
3715#ifdef PNG_READ_GAMMA_SUPPORTED
3716 if (gamma_table !=
NULL)
3719 for (
i = 0;
i < row_width;
i++,
sp++)
3722 *
sp = (png_byte)
png_ptr->background.gray;
3725 *
sp = gamma_table[*
sp];
3732 for (
i = 0;
i < row_width;
i++,
sp++)
3735 *
sp = (png_byte)
png_ptr->background.gray;
3743#ifdef PNG_READ_GAMMA_SUPPORTED
3744 if (gamma_16 !=
NULL)
3747 for (
i = 0;
i < row_width;
i++,
sp += 2)
3753 if (
v ==
png_ptr->trans_color.gray)
3756 *
sp = (png_byte)((
png_ptr->background.gray >> 8)
3758 *(
sp + 1) = (png_byte)(
png_ptr->background.gray
3764 v = gamma_16[*(
sp + 1) >> gamma_shift][*
sp];
3765 *
sp = (png_byte)((
v >> 8) & 0xff);
3766 *(
sp + 1) = (png_byte)(
v & 0xff);
3774 for (
i = 0;
i < row_width;
i++,
sp += 2)
3780 if (
v ==
png_ptr->trans_color.gray)
3782 *
sp = (png_byte)((
png_ptr->background.gray >> 8)
3784 *(
sp + 1) = (png_byte)(
png_ptr->background.gray
3802#ifdef PNG_READ_GAMMA_SUPPORTED
3803 if (gamma_table !=
NULL)
3806 for (
i = 0;
i < row_width;
i++,
sp += 3)
3809 *(
sp + 1) ==
png_ptr->trans_color.green &&
3812 *
sp = (png_byte)
png_ptr->background.red;
3813 *(
sp + 1) = (png_byte)
png_ptr->background.green;
3814 *(
sp + 2) = (png_byte)
png_ptr->background.blue;
3819 *
sp = gamma_table[*
sp];
3820 *(
sp + 1) = gamma_table[*(
sp + 1)];
3821 *(
sp + 2) = gamma_table[*(
sp + 2)];
3829 for (
i = 0;
i < row_width;
i++,
sp += 3)
3832 *(
sp + 1) ==
png_ptr->trans_color.green &&
3835 *
sp = (png_byte)
png_ptr->background.red;
3836 *(
sp + 1) = (png_byte)
png_ptr->background.green;
3837 *(
sp + 2) = (png_byte)
png_ptr->background.blue;
3844#ifdef PNG_READ_GAMMA_SUPPORTED
3845 if (gamma_16 !=
NULL)
3848 for (
i = 0;
i < row_width;
i++,
sp += 6)
3858 if (
r ==
png_ptr->trans_color.red &&
3863 *
sp = (png_byte)((
png_ptr->background.red >> 8) & 0xff);
3864 *(
sp + 1) = (png_byte)(
png_ptr->background.red & 0xff);
3865 *(
sp + 2) = (png_byte)((
png_ptr->background.green >> 8)
3867 *(
sp + 3) = (png_byte)(
png_ptr->background.green
3869 *(
sp + 4) = (png_byte)((
png_ptr->background.blue >> 8)
3871 *(
sp + 5) = (png_byte)(
png_ptr->background.blue & 0xff);
3877 *
sp = (png_byte)((
v >> 8) & 0xff);
3878 *(
sp + 1) = (png_byte)(
v & 0xff);
3880 v = gamma_16[*(
sp + 3) >> gamma_shift][*(
sp + 2)];
3881 *(
sp + 2) = (png_byte)((
v >> 8) & 0xff);
3882 *(
sp + 3) = (png_byte)(
v & 0xff);
3884 v = gamma_16[*(
sp + 5) >> gamma_shift][*(
sp + 4)];
3885 *(
sp + 4) = (png_byte)((
v >> 8) & 0xff);
3886 *(
sp + 5) = (png_byte)(
v & 0xff);
3895 for (
i = 0;
i < row_width;
i++,
sp += 6)
3905 if (
r ==
png_ptr->trans_color.red &&
3909 *
sp = (png_byte)((
png_ptr->background.red >> 8) & 0xff);
3910 *(
sp + 1) = (png_byte)(
png_ptr->background.red & 0xff);
3911 *(
sp + 2) = (png_byte)((
png_ptr->background.green >> 8)
3913 *(
sp + 3) = (png_byte)(
png_ptr->background.green
3915 *(
sp + 4) = (png_byte)((
png_ptr->background.blue >> 8)
3917 *(
sp + 5) = (png_byte)(
png_ptr->background.blue & 0xff);
3929#ifdef PNG_READ_GAMMA_SUPPORTED
3930 if (gamma_to_1 !=
NULL && gamma_from_1 !=
NULL &&
3931 gamma_table !=
NULL)
3934 for (
i = 0;
i < row_width;
i++,
sp += 2)
3939 *
sp = gamma_table[*
sp];
3944 *
sp = (png_byte)
png_ptr->background.gray;
3951 v = gamma_to_1[*
sp];
3954 w = gamma_from_1[
w];
3963 for (
i = 0;
i < row_width;
i++,
sp += 2)
3965 png_byte
a = *(
sp + 1);
3968 *
sp = (png_byte)
png_ptr->background.gray;
3977#ifdef PNG_READ_GAMMA_SUPPORTED
3978 if (gamma_16 !=
NULL && gamma_16_from_1 !=
NULL &&
3979 gamma_16_to_1 !=
NULL)
3982 for (
i = 0;
i < row_width;
i++,
sp += 4)
3991 v = gamma_16[*(
sp + 1) >> gamma_shift][*
sp];
3992 *
sp = (png_byte)((
v >> 8) & 0xff);
3993 *(
sp + 1) = (png_byte)(
v & 0xff);
3999 *
sp = (png_byte)((
png_ptr->background.gray >> 8)
4001 *(
sp + 1) = (png_byte)(
png_ptr->background.gray & 0xff);
4008 g = gamma_16_to_1[*(
sp + 1) >> gamma_shift][*
sp];
4013 w = gamma_16_from_1[(
v&0xff) >> gamma_shift][
v >> 8];
4014 *
sp = (png_byte)((
w >> 8) & 0xff);
4015 *(
sp + 1) = (png_byte)(
w & 0xff);
4023 for (
i = 0;
i < row_width;
i++,
sp += 4)
4030 *
sp = (png_byte)((
png_ptr->background.gray >> 8)
4032 *(
sp + 1) = (png_byte)(
png_ptr->background.gray & 0xff);
4035 else if (
a < 0xffff)
4041 *
sp = (png_byte)((
v >> 8) & 0xff);
4042 *(
sp + 1) = (png_byte)(
v & 0xff);
4054#ifdef PNG_READ_GAMMA_SUPPORTED
4055 if (gamma_to_1 !=
NULL && gamma_from_1 !=
NULL &&
4056 gamma_table !=
NULL)
4059 for (
i = 0;
i < row_width;
i++,
sp += 4)
4061 png_byte
a = *(
sp + 3);
4065 *
sp = gamma_table[*
sp];
4066 *(
sp + 1) = gamma_table[*(
sp + 1)];
4067 *(
sp + 2) = gamma_table[*(
sp + 2)];
4073 *
sp = (png_byte)
png_ptr->background.red;
4074 *(
sp + 1) = (png_byte)
png_ptr->background.green;
4075 *(
sp + 2) = (png_byte)
png_ptr->background.blue;
4082 v = gamma_to_1[*
sp];
4084 if (!optimize)
w = gamma_from_1[
w];
4087 v = gamma_to_1[*(
sp + 1)];
4089 if (!optimize)
w = gamma_from_1[
w];
4092 v = gamma_to_1[*(
sp + 2)];
4094 if (!optimize)
w = gamma_from_1[
w];
4103 for (
i = 0;
i < row_width;
i++,
sp += 4)
4105 png_byte
a = *(
sp + 3);
4109 *
sp = (png_byte)
png_ptr->background.red;
4110 *(
sp + 1) = (png_byte)
png_ptr->background.green;
4111 *(
sp + 2) = (png_byte)
png_ptr->background.blue;
4129#ifdef PNG_READ_GAMMA_SUPPORTED
4130 if (gamma_16 !=
NULL && gamma_16_from_1 !=
NULL &&
4131 gamma_16_to_1 !=
NULL)
4134 for (
i = 0;
i < row_width;
i++,
sp += 8)
4143 v = gamma_16[*(
sp + 1) >> gamma_shift][*
sp];
4144 *
sp = (png_byte)((
v >> 8) & 0xff);
4145 *(
sp + 1) = (png_byte)(
v & 0xff);
4147 v = gamma_16[*(
sp + 3) >> gamma_shift][*(
sp + 2)];
4148 *(
sp + 2) = (png_byte)((
v >> 8) & 0xff);
4149 *(
sp + 3) = (png_byte)(
v & 0xff);
4151 v = gamma_16[*(
sp + 5) >> gamma_shift][*(
sp + 4)];
4152 *(
sp + 4) = (png_byte)((
v >> 8) & 0xff);
4153 *(
sp + 5) = (png_byte)(
v & 0xff);
4159 *
sp = (png_byte)((
png_ptr->background.red >> 8) & 0xff);
4160 *(
sp + 1) = (png_byte)(
png_ptr->background.red & 0xff);
4161 *(
sp + 2) = (png_byte)((
png_ptr->background.green >> 8)
4163 *(
sp + 3) = (png_byte)(
png_ptr->background.green
4165 *(
sp + 4) = (png_byte)((
png_ptr->background.blue >> 8)
4167 *(
sp + 5) = (png_byte)(
png_ptr->background.blue & 0xff);
4174 v = gamma_16_to_1[*(
sp + 1) >> gamma_shift][*
sp];
4177 w = gamma_16_from_1[((
w&0xff) >> gamma_shift)][
w >>
4179 *
sp = (png_byte)((
w >> 8) & 0xff);
4180 *(
sp + 1) = (png_byte)(
w & 0xff);
4182 v = gamma_16_to_1[*(
sp + 3) >> gamma_shift][*(
sp + 2)];
4185 w = gamma_16_from_1[((
w&0xff) >> gamma_shift)][
w >>
4188 *(
sp + 2) = (png_byte)((
w >> 8) & 0xff);
4189 *(
sp + 3) = (png_byte)(
w & 0xff);
4191 v = gamma_16_to_1[*(
sp + 5) >> gamma_shift][*(
sp + 4)];
4194 w = gamma_16_from_1[((
w&0xff) >> gamma_shift)][
w >>
4197 *(
sp + 4) = (png_byte)((
w >> 8) & 0xff);
4198 *(
sp + 5) = (png_byte)(
w & 0xff);
4207 for (
i = 0;
i < row_width;
i++,
sp += 8)
4214 *
sp = (png_byte)((
png_ptr->background.red >> 8) & 0xff);
4215 *(
sp + 1) = (png_byte)(
png_ptr->background.red & 0xff);
4216 *(
sp + 2) = (png_byte)((
png_ptr->background.green >> 8)
4218 *(
sp + 3) = (png_byte)(
png_ptr->background.green
4220 *(
sp + 4) = (png_byte)((
png_ptr->background.blue >> 8)
4222 *(
sp + 5) = (png_byte)(
png_ptr->background.blue & 0xff);
4225 else if (
a < 0xffff)
4236 *
sp = (png_byte)((
v >> 8) & 0xff);
4237 *(
sp + 1) = (png_byte)(
v & 0xff);
4240 *(
sp + 2) = (png_byte)((
v >> 8) & 0xff);
4241 *(
sp + 3) = (png_byte)(
v & 0xff);
4244 *(
sp + 4) = (png_byte)((
v >> 8) & 0xff);
4245 *(
sp + 5) = (png_byte)(
v & 0xff);
4260#ifdef PNG_READ_GAMMA_SUPPORTED
4272 int gamma_shift =
png_ptr->gamma_shift;
4290 for (
i = 0;
i < row_width;
i++)
4292 *
sp = gamma_table[*
sp];
4294 *
sp = gamma_table[*
sp];
4296 *
sp = gamma_table[*
sp];
4304 for (
i = 0;
i < row_width;
i++)
4308 v = gamma_16_table[*(
sp + 1) >> gamma_shift][*
sp];
4309 *
sp = (png_byte)((
v >> 8) & 0xff);
4310 *(
sp + 1) = (png_byte)(
v & 0xff);
4313 v = gamma_16_table[*(
sp + 1) >> gamma_shift][*
sp];
4314 *
sp = (png_byte)((
v >> 8) & 0xff);
4315 *(
sp + 1) = (png_byte)(
v & 0xff);
4318 v = gamma_16_table[*(
sp + 1) >> gamma_shift][*
sp];
4319 *
sp = (png_byte)((
v >> 8) & 0xff);
4320 *(
sp + 1) = (png_byte)(
v & 0xff);
4332 for (
i = 0;
i < row_width;
i++)
4334 *
sp = gamma_table[*
sp];
4337 *
sp = gamma_table[*
sp];
4340 *
sp = gamma_table[*
sp];
4350 for (
i = 0;
i < row_width;
i++)
4353 *
sp = (png_byte)((
v >> 8) & 0xff);
4354 *(
sp + 1) = (png_byte)(
v & 0xff);
4357 v = gamma_16_table[*(
sp + 1) >> gamma_shift][*
sp];
4358 *
sp = (png_byte)((
v >> 8) & 0xff);
4359 *(
sp + 1) = (png_byte)(
v & 0xff);
4362 v = gamma_16_table[*(
sp + 1) >> gamma_shift][*
sp];
4363 *
sp = (png_byte)((
v >> 8) & 0xff);
4364 *(
sp + 1) = (png_byte)(
v & 0xff);
4376 for (
i = 0;
i < row_width;
i++)
4378 *
sp = gamma_table[*
sp];
4386 for (
i = 0;
i < row_width;
i++)
4389 *
sp = (png_byte)((
v >> 8) & 0xff);
4390 *(
sp + 1) = (png_byte)(
v & 0xff);
4402 for (
i = 0;
i < row_width;
i += 4)
4410 ((((
int)gamma_table[
a|(
a>>2)|(
a>>4)|(
a>>6)]) ) & 0xc0)|
4411 ((((
int)gamma_table[(
b<<2)|
b|(
b>>2)|(
b>>4)])>>2) & 0x30)|
4412 ((((
int)gamma_table[(
c<<4)|(
c<<2)|
c|(
c>>2)])>>4) & 0x0c)|
4413 ((((
int)gamma_table[(
d<<6)|(
d<<4)|(
d<<2)|
d])>>6) ));
4421 for (
i = 0;
i < row_width;
i += 2)
4423 int msb = *
sp & 0xf0;
4424 int lsb = *
sp & 0x0f;
4426 *
sp = (png_byte)((((
int)gamma_table[msb | (msb >> 4)]) & 0xf0)
4427 | (((
int)gamma_table[(lsb << 4) | lsb]) >> 4));
4435 for (
i = 0;
i < row_width;
i++)
4437 *
sp = gamma_table[*
sp];
4445 for (
i = 0;
i < row_width;
i++)
4448 *
sp = (png_byte)((
v >> 8) & 0xff);
4449 *(
sp + 1) = (png_byte)(
v & 0xff);
4463#ifdef PNG_READ_ALPHA_MODE_SUPPORTED
4489 for (; row_width > 0; --row_width, row += step)
4509 for (; row_width > 0; --row_width, row += step)
4513 v = table[*(row + 1) >> gamma_shift][*row];
4514 *row = (png_byte)((
v >> 8) & 0xff);
4515 *(row + 1) = (png_byte)(
v & 0xff);
4530#ifdef PNG_READ_EXPAND_SUPPORTED
4543 png_debug(1,
"in png_do_expand_palette");
4553 sp = row + (png_size_t)((row_width - 1) >> 3);
4554 dp = row + (png_size_t)row_width - 1;
4555 shift = 7 - (
int)((row_width + 7) & 0x07);
4556 for (
i = 0;
i < row_width;
i++)
4558 if ((*
sp >> shift) & 0x01)
4580 sp = row + (png_size_t)((row_width - 1) >> 2);
4581 dp = row + (png_size_t)row_width - 1;
4582 shift = (
int)((3 - ((row_width + 3) & 0x03)) << 1);
4583 for (
i = 0;
i < row_width;
i++)
4585 value = (*
sp >> shift) & 0x03;
4603 sp = row + (png_size_t)((row_width - 1) >> 1);
4604 dp = row + (png_size_t)row_width - 1;
4605 shift = (
int)((row_width & 0x01) << 2);
4606 for (
i = 0;
i < row_width;
i++)
4608 value = (*
sp >> shift) & 0x0f;
4637 sp = row + (png_size_t)row_width - 1;
4638 dp = row + (png_size_t)(row_width << 2) - 1;
4640 for (
i = 0;
i < row_width;
i++)
4642 if ((
int)(*
sp) >= num_trans)
4646 *
dp-- = trans_alpha[*
sp];
4655 row_info->
rowbytes = row_width * 4;
4662 sp = row + (png_size_t)row_width - 1;
4663 dp = row + (png_size_t)(row_width * 3) - 1;
4665 for (
i = 0;
i < row_width;
i++)
4675 row_info->
rowbytes = row_width * 3;
4701 unsigned int gray = trans_color ? trans_color->
gray : 0;
4709 gray = (gray & 0x01) * 0xff;
4710 sp = row + (png_size_t)((row_width - 1) >> 3);
4711 dp = row + (png_size_t)row_width - 1;
4712 shift = 7 - (
int)((row_width + 7) & 0x07);
4713 for (
i = 0;
i < row_width;
i++)
4715 if ((*
sp >> shift) & 0x01)
4737 gray = (gray & 0x03) * 0x55;
4738 sp = row + (png_size_t)((row_width - 1) >> 2);
4739 dp = row + (png_size_t)row_width - 1;
4740 shift = (
int)((3 - ((row_width + 3) & 0x03)) << 1);
4741 for (
i = 0;
i < row_width;
i++)
4743 value = (*
sp >> shift) & 0x03;
4762 gray = (gray & 0x0f) * 0x11;
4763 sp = row + (png_size_t)((row_width - 1) >> 1);
4764 dp = row + (png_size_t)row_width - 1;
4765 shift = (
int)((1 - ((row_width + 1) & 0x01)) << 2);
4766 for (
i = 0;
i < row_width;
i++)
4768 value = (*
sp >> shift) & 0x0f;
4793 if (trans_color !=
NULL)
4798 sp = row + (png_size_t)row_width - 1;
4799 dp = row + (png_size_t)(row_width << 1) - 1;
4801 for (
i = 0;
i < row_width;
i++)
4815 unsigned int gray_high = (gray >> 8) & 0xff;
4816 unsigned int gray_low = gray & 0xff;
4819 for (
i = 0;
i < row_width;
i++)
4821 if (*(
sp - 1) == gray_high && *(
sp) == gray_low)
4849 png_byte
red = (png_byte)(trans_color->
red & 0xff);
4850 png_byte green = (png_byte)(trans_color->
green & 0xff);
4851 png_byte blue = (png_byte)(trans_color->
blue & 0xff);
4852 sp = row + (png_size_t)row_info->
rowbytes - 1;
4853 dp = row + (png_size_t)(row_width << 2) - 1;
4854 for (
i = 0;
i < row_width;
i++)
4856 if (*(
sp - 2) ==
red && *(
sp - 1) == green && *(
sp) == blue)
4869 png_byte red_high = (png_byte)((trans_color->
red >> 8) & 0xff);
4870 png_byte green_high = (png_byte)((trans_color->
green >> 8) & 0xff);
4871 png_byte blue_high = (png_byte)((trans_color->
blue >> 8) & 0xff);
4872 png_byte red_low = (png_byte)(trans_color->
red & 0xff);
4873 png_byte green_low = (png_byte)(trans_color->
green & 0xff);
4874 png_byte blue_low = (png_byte)(trans_color->
blue & 0xff);
4876 dp = row + (png_size_t)(row_width << 3) - 1;
4877 for (
i = 0;
i < row_width;
i++)
4879 if (*(
sp - 5) == red_high &&
4880 *(
sp - 4) == red_low &&
4881 *(
sp - 3) == green_high &&
4882 *(
sp - 2) == green_low &&
4883 *(
sp - 1) == blue_high &&
4913#ifdef PNG_READ_EXPAND_16_SUPPORTED
4944#ifdef PNG_READ_QUANTIZE_SUPPORTED
4962 for (
i = 0;
i < row_width;
i++)
4984 *
dp++ = palette_lookup[
p];
4994 palette_lookup !=
NULL)
4999 for (
i = 0;
i < row_width;
i++)
5015 *
dp++ = palette_lookup[
p];
5029 for (
i = 0;
i < row_width;
i++,
sp++)
5031 *
sp = quantize_lookup[*
sp];
5039#ifdef PNG_MNG_FEATURES_SUPPORTED
5044 png_debug(1,
"in png_do_read_intrapixel");
5049 int bytes_per_pixel;
5058 bytes_per_pixel = 3;
5061 bytes_per_pixel = 4;
5066 for (
i = 0, rp = row;
i < row_width;
i++, rp += bytes_per_pixel)
5068 *(rp) = (png_byte)((256 + *rp + *(rp + 1)) & 0xff);
5069 *(rp+2) = (png_byte)((256 + *(rp + 2) + *(rp + 1)) & 0xff);
5078 bytes_per_pixel = 6;
5081 bytes_per_pixel = 8;
5086 for (
i = 0, rp = row;
i < row_width;
i++, rp += bytes_per_pixel)
5093 *(rp ) = (png_byte)((
red >> 8) & 0xff);
5094 *(rp + 1) = (png_byte)(
red & 0xff);
5095 *(rp + 4) = (png_byte)((
blue >> 8) & 0xff);
5096 *(rp + 5) = (png_byte)(
blue & 0xff);
static float dt(char val)
Definition EnvelopeFreeEdit.cpp:124
uint8_t a
Definition Spc_Cpu.h:141
int dp
Definition Spc_Cpu.h:149
uint8_t sp
Definition Spc_Cpu.h:145
static const unsigned long mask[]
Definition bitwise.c:31
UINT_D64 w
Definition inflate.c:942
struct huft * t
Definition inflate.c:943
register unsigned k
Definition inflate.c:946
register unsigned j
Definition inflate.c:1576
unsigned v[N_MAX]
Definition inflate.c:1584
unsigned d
Definition inflate.c:940
int g
Definition inflate.c:1573
register unsigned i
Definition inflate.c:1575
static PuglViewHint int value
Definition pugl.h:1708
#define PNG_SCALE_16_TO_8
#define PNG_ERROR_ACTION_ERROR
#define PNG_FLAG_OPTIMIZE_ALPHA
#define PNG_RGB_TO_GRAY_ERR
#define png_error(s1, s2)
#define PNG_ROWBYTES(pixel_bits, width)
#define PNG_COLORSPACE_HAVE_GAMMA
Definition juce_PNGLoader.cpp:133
#define png_fixed_error(s1, s2)
#define PNG_READ_BACKGROUND_SUPPORTED
Definition juce_PNGLoader.cpp:106
#define PNG_READ_ALPHA_MODE_SUPPORTED
Definition juce_PNGLoader.cpp:104
#define PNG_FLAG_CRC_CRITICAL_USE
#define PNG_COLOR_TYPE_RGB
#define png_composite(composite, fg, alpha, bg)
#define PNG_FLAG_CRC_ANCILLARY_USE
#define PNG_QUANTIZE_BLUE_BITS
Definition juce_PNGLoader.cpp:251
#define PNG_ERROR_ACTION_NONE
#define PNG_CRC_WARN_DISCARD
#define PNG_ERROR_ACTION_WARN
#define PNG_FLAG_CRC_ANCILLARY_NOWARN
#define PNG_ALPHA_ASSOCIATED
#define PNG_QUANTIZE_GREEN_BITS
Definition juce_PNGLoader.cpp:252
#define PNG_FLAG_CRC_CRITICAL_MASK
#define PNG_USER_TRANSFORM
#define PNG_COLOR_TYPE_RGB_ALPHA
#define PNG_COLOR_TYPE_GRAY_ALPHA
#define PNG_CRC_QUIET_USE
#define png_debug(a, b)
Definition juce_PNGLoader.cpp:277
#define PNG_FLAG_CRC_ANCILLARY_MASK
#define PNG_BACKGROUND_EXPAND
#define PNG_COLOR_MASK_COLOR
#define PNG_COLOR_MASK_PALETTE
#define PNG_FLAG_CRC_CRITICAL_IGNORE
#define PNG_COLOR_DIST(c1, c2)
#define PNG_FLAG_FILLER_AFTER
#define PNG_GAMMA_sRGB_INVERSE
#define png_composite_16(composite, fg, alpha, bg)
#define PNG_GAMMA_MAC_OLD
#define PNG_FLAG_ROW_INIT
#define PNG_GAMMA_MAC_INVERSE
#define PNG_COLOR_MASK_ALPHA
#define PNG_FLAG_ASSUME_sRGB
#define PNG_ALPHA_OPTIMIZED
#define PNG_BACKGROUND_GAMMA_UNIQUE
#define PNG_COLOR_TYPE_GRAY
#define PNG_FLAG_DETECT_UNINITIALIZED
#define PNG_BACKGROUND_GAMMA_UNKNOWN
#define PNG_RGB_TO_GRAY_WARN
#define PNG_COLOR_TYPE_PALETTE
#define PNG_CRC_ERROR_QUIT
#define PNG_QUANTIZE_RED_BITS
Definition juce_PNGLoader.cpp:253
#define PNG_BACKGROUND_IS_GRAY
#define PNG_BACKGROUND_GAMMA_FILE
#define PNG_CRC_NO_CHANGE
#define PNG_READ_RGB_TO_GRAY_SUPPORTED
Definition juce_PNGLoader.cpp:125
#define PNG_BACKGROUND_GAMMA_SCREEN
const Colour blue
Definition juce_Colours.h:52
png_uint_16 png_gamma_correct(png_structrp png_ptr, unsigned int value, png_fixed_point gamma_val)
Definition png.c:3947
png_byte png_gamma_8bit_correct(unsigned int value, png_fixed_point gamma_val)
Definition png.c:3864
void png_build_gamma_table(png_structrp png_ptr, int bit_depth)
Definition png.c:4196
int png_muldiv(png_fixed_point_p res, png_fixed_point a, png_int_32 times, png_int_32 divisor)
Definition png.c:3349
int png_gamma_significant(png_fixed_point gamma_val)
Definition png.c:3509
void png_colorspace_set_rgb_coefficients(png_structrp png_ptr)
Definition png.c:2469
png_fixed_point png_fixed(png_const_structrp png_ptr, double fp, png_const_charp text)
Definition png.c:3316
png_fixed_point png_reciprocal(png_fixed_point a)
Definition png.c:3488
png_fixed_point png_reciprocal2(png_fixed_point a, png_fixed_point b)
Definition png.c:3543
png_structrp png_fixed_point screen_gamma
Definition png.h:1352
png_set_rgb_to_gray_fixed
Definition png.h:1082
png_color * png_colorp
Definition png.h:483
png_fixed_point
Definition png.h:1902
png_structrp png_const_color_16p int background_gamma_code
Definition png.h:1302
png_set_alpha_mode_fixed
Definition png.h:1138
png_structrp png_ptr
Definition png.h:1082
const png_color_8 * png_const_color_8p
Definition png.h:508
png_structrp int mode
Definition png.h:1139
png_row_info * png_row_infop
Definition png.h:763
png_structrp int png_fixed_point red
Definition png.h:1083
png_set_background_fixed
Definition png.h:1301
struct png_color_struct png_color
png_structrp int error_action
Definition png.h:1083
png_set_gamma_fixed
Definition png.h:1351
png_structrp png_const_color_16p int int need_expand
Definition png.h:1303
png_structrp png_const_color_16p background_color
Definition png.h:1302
png_info *PNG_RESTRICT png_inforp
Definition png.h:470
png_uint_32
Definition png.h:1938
const png_color * png_const_colorp
Definition png.h:484
png_struct *PNG_RESTRICT png_structrp
Definition png.h:468
png_const_structrp png_const_inforp info_ptr
Definition png.h:1939
const png_color_16 * png_const_color_16p
Definition png.h:496
const png_byte * png_const_bytep
Definition pngconf.h:580
const png_uint_16 * png_const_uint_16p
Definition pngconf.h:586
png_byte * png_bytep
Definition pngconf.h:579
png_uint_16 ** png_uint_16pp
Definition pngconf.h:609
void png_app_warning(png_const_structrp png_ptr, png_const_charp error_message)
Definition pngerror.c:392
void PNGAPI png_warning(png_const_structrp png_ptr, png_const_charp warning_message)
Definition pngerror.c:216
void png_app_error(png_const_structrp png_ptr, png_const_charp error_message)
Definition pngerror.c:405
void PNGAPI png_free(png_const_structrp png_ptr, png_voidp ptr)
Definition pngmem.c:232
const png_uint_16p * png_const_uint_16pp
Definition pngpriv.h:937
void png_do_gamma(png_row_infop row_info, png_bytep row, png_structrp png_ptr)
Definition pngrtran.c:4268
void PNGAPI png_set_gray_to_rgb(png_structrp png_ptr)
Definition pngrtran.c:935
void PNGAPI png_set_strip_16(png_structrp png_ptr)
Definition pngrtran.c:184
void PNGAPI png_set_strip_alpha(png_structrp png_ptr)
Definition pngrtran.c:197
void PNGAPI png_set_crc_action(png_structrp png_ptr, int crit_action, int ancil_action)
Definition pngrtran.c:25
void PNGAPI png_set_expand(png_structrp png_ptr)
Definition pngrtran.c:852
void png_do_compose(png_row_infop row_info, png_bytep row, png_structrp png_ptr)
Definition pngrtran.c:3528
void PNGAPI png_set_palette_to_rgb(png_structrp png_ptr)
Definition pngrtran.c:882
void PNGAPI png_set_gamma(png_structrp png_ptr, double scrn_gamma, double file_gamma)
Definition pngrtran.c:838
static int png_gamma_threshold(png_fixed_point screen_gamma, png_fixed_point file_gamma)
Definition pngrtran.c:1076
int png_do_rgb_to_gray(png_structrp png_ptr, png_row_infop row_info, png_bytep row)
Definition pngrtran.c:3268
static png_fixed_point translate_gamma_flags(png_structrp png_ptr, png_fixed_point output_gamma, int is_screen)
Definition pngrtran.c:210
void png_init_read_transformations(png_structrp png_ptr)
Definition pngrtran.c:1269
void PNGAPI png_set_expand_gray_1_2_4_to_8(png_structrp png_ptr)
Definition pngrtran.c:894
void PNGAPI png_set_scale_16(png_structrp png_ptr)
Definition pngrtran.c:170
void png_do_expand_palette(png_row_infop row_info, png_bytep row, png_const_colorp palette, png_const_bytep trans_alpha, int num_trans)
Definition pngrtran.c:4535
void png_read_transform_info(png_structrp png_ptr, png_inforp info_ptr)
Definition pngrtran.c:1916
void png_do_unshift(png_row_infop row_info, png_bytep row, png_const_color_8p sig_bits)
Definition pngrtran.c:2518
static png_fixed_point convert_gamma_value(png_structrp png_ptr, double output_gamma)
Definition pngrtran.c:247
struct png_dsort_struct png_dsort
void PNGAPI png_set_read_user_transform_fn(png_structrp png_ptr, png_user_transform_ptr read_user_transform_fn)
Definition pngrtran.c:1054
static int png_rtran_ok(png_structrp png_ptr, int need_IHDR)
Definition pngrtran.c:97
void png_do_quantize(png_row_infop row_info, png_bytep row, png_const_bytep palette_lookup, png_const_bytep quantize_lookup)
Definition pngrtran.c:4946
void PNGAPI png_set_quantize(png_structrp png_ptr, png_colorp palette, int num_palette, int maximum_colors, png_const_uint_16p histogram, int full_quantize)
Definition pngrtran.c:410
void png_do_expand_16(png_row_infop row_info, png_bytep row)
Definition pngrtran.c:4918
void png_do_read_swap_alpha(png_row_infop row_info, png_bytep row)
Definition pngrtran.c:2743
void PNGAPI png_set_expand_16(png_structrp png_ptr)
Definition pngrtran.c:922
static void png_init_palette_transformations(png_structrp png_ptr)
Definition pngrtran.c:1101
void PNGAPI png_set_rgb_to_gray(png_structrp png_ptr, int error_action, double red, double green)
Definition pngrtran.c:1040
void png_do_unpack(png_row_infop row_info, png_bytep row)
Definition pngrtran.c:2420
void png_do_expand(png_row_infop row_info, png_bytep row, png_const_color_16p trans_color)
Definition pngrtran.c:4688
void PNGAPI png_set_tRNS_to_alpha(png_structrp png_ptr)
Definition pngrtran.c:906
void PNGAPI png_set_background(png_structrp png_ptr, png_const_color_16p background_color, int background_gamma_code, int need_expand, double background_gamma)
Definition pngrtran.c:154
void png_do_read_filler(png_row_infop row_info, png_bytep row, png_uint_32 filler, png_uint_32 flags)
Definition pngrtran.c:2942
png_dsort ** png_dsortpp
Definition pngrtran.c:407
void PNGAPI png_set_alpha_mode(png_structrp png_ptr, int mode, double output_gamma)
Definition pngrtran.c:382
void png_do_read_invert_alpha(png_row_infop row_info, png_bytep row)
Definition pngrtran.c:2840
static void png_init_rgb_transformations(png_structrp png_ptr)
Definition pngrtran.c:1184
void png_do_scale_16_to_8(png_row_infop row_info, png_bytep row)
Definition pngrtran.c:2657
void png_do_encode_alpha(png_row_infop row_info, png_bytep row, png_structrp png_ptr)
Definition pngrtran.c:4469
void png_do_gray_to_rgb(png_row_infop row_info, png_bytep row)
Definition pngrtran.c:3129
void png_do_chop(png_row_infop row_info, png_bytep row)
Definition pngrtran.c:2718
void png_do_read_transformations(png_structrp png_ptr, png_row_infop row_info)
Definition pngrtran.c:2120
png_dsort * png_dsortp
Definition pngrtran.c:406
png_int_32(PNGAPI png_get_int_32)(png_const_bytep buf)
Definition pngrutil.c:84
png_uint_16(PNGAPI png_get_uint_16)(png_const_bytep buf)
Definition pngrutil.c:102
void png_do_bgr(png_row_infop row_info, png_bytep row)
Definition pngtrans.c:619
void png_do_check_palette_indexes(png_structrp png_ptr, png_row_infop row_info)
Definition pngtrans.c:699
void png_do_packswap(png_row_infop row_info, png_bytep row)
Definition pngtrans.c:455
void png_do_swap(png_row_infop row_info, png_bytep row)
Definition pngtrans.c:319
void png_do_strip_channel(png_row_infop row_info, png_bytep row, int at_start)
Definition pngtrans.c:495
void png_do_invert(png_row_infop row_info, png_bytep row)
Definition pngtrans.c:262
png_uint_16 red
Definition png.h:490
png_uint_16 gray
Definition png.h:493
png_uint_16 green
Definition png.h:491
png_uint_16 blue
Definition png.h:492
png_byte green
Definition png.h:502
png_byte gray
Definition png.h:504
png_byte blue
Definition png.h:503
png_byte red
Definition png.h:501
png_byte alpha
Definition png.h:505
png_byte blue
Definition png.h:481
png_byte red
Definition png.h:479
png_byte green
Definition png.h:480
Definition pngrtran.c:401
struct png_dsort_struct * next
Definition pngrtran.c:402
png_byte left
Definition pngrtran.c:403
png_byte right
Definition pngrtran.c:404
png_uint_32 width
Definition png.h:755
png_byte color_type
Definition png.h:757
png_byte bit_depth
Definition png.h:758
png_byte pixel_depth
Definition png.h:760
png_byte channels
Definition png.h:759
size_t rowbytes
Definition png.h:756
static LV2_State_Status save(LV2_Handle instance, LV2_State_Store_Function store, void *callback_data, uint32_t flags, const LV2_Feature *const *features)
Definition test.c:161
uch * p
Definition crypt.c:594
return c
Definition crypt.c:175
int r
Definition crypt.c:458
typedef int(UZ_EXP MsgFn)()
static ZCONST char Far * method[NUM_METHODS]
Definition zipinfo.c:1008