Lines Matching refs:png_ptr
24 png_set_crc_action(png_structrp png_ptr, int crit_action, int ancil_action) in png_set_crc_action() argument
28 if (png_ptr == NULL) in png_set_crc_action()
38 png_ptr->flags &= ~PNG_FLAG_CRC_CRITICAL_MASK; in png_set_crc_action()
39 png_ptr->flags |= PNG_FLAG_CRC_CRITICAL_USE; in png_set_crc_action()
43 png_ptr->flags &= ~PNG_FLAG_CRC_CRITICAL_MASK; in png_set_crc_action()
44 png_ptr->flags |= PNG_FLAG_CRC_CRITICAL_USE | in png_set_crc_action()
49 png_warning(png_ptr, in png_set_crc_action()
55 png_ptr->flags &= ~PNG_FLAG_CRC_CRITICAL_MASK; in png_set_crc_action()
66 png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK; in png_set_crc_action()
67 png_ptr->flags |= PNG_FLAG_CRC_ANCILLARY_USE; in png_set_crc_action()
71 png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK; in png_set_crc_action()
72 png_ptr->flags |= PNG_FLAG_CRC_ANCILLARY_USE | in png_set_crc_action()
77 png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK; in png_set_crc_action()
78 png_ptr->flags |= PNG_FLAG_CRC_ANCILLARY_NOWARN; in png_set_crc_action()
85 png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK; in png_set_crc_action()
96 png_rtran_ok(png_structrp png_ptr, int need_IHDR) in png_rtran_ok() argument
98 if (png_ptr != NULL) in png_rtran_ok()
100 if (png_ptr->flags & PNG_FLAG_ROW_INIT) in png_rtran_ok()
101 png_app_error(png_ptr, in png_rtran_ok()
104 else if (need_IHDR && (png_ptr->mode & PNG_HAVE_IHDR) == 0) in png_rtran_ok()
105 png_app_error(png_ptr, "invalid before the PNG header has been read"); in png_rtran_ok()
110 png_ptr->flags |= PNG_FLAG_DETECT_UNINITIALIZED; in png_rtran_ok()
123 png_set_background_fixed(png_structrp png_ptr, in png_set_background_fixed() argument
129 if (!png_rtran_ok(png_ptr, 0) || background_color == NULL) in png_set_background_fixed()
134 png_warning(png_ptr, "Application must supply a known background gamma"); in png_set_background_fixed()
138 png_ptr->transformations |= PNG_COMPOSE | PNG_STRIP_ALPHA; in png_set_background_fixed()
139 png_ptr->transformations &= ~PNG_ENCODE_ALPHA; in png_set_background_fixed()
140 png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; in png_set_background_fixed()
142 png_ptr->background = *background_color; in png_set_background_fixed()
143 png_ptr->background_gamma = background_gamma; in png_set_background_fixed()
144 png_ptr->background_gamma_type = (png_byte)(background_gamma_code); in png_set_background_fixed()
146 png_ptr->transformations |= PNG_BACKGROUND_EXPAND; in png_set_background_fixed()
148 png_ptr->transformations &= ~PNG_BACKGROUND_EXPAND; in png_set_background_fixed()
153 png_set_background(png_structrp png_ptr, in png_set_background() argument
157 png_set_background_fixed(png_ptr, background_color, background_gamma_code, in png_set_background()
158 need_expand, png_fixed(png_ptr, background_gamma, "png_set_background")); in png_set_background()
169 png_set_scale_16(png_structrp png_ptr) in png_set_scale_16() argument
173 if (!png_rtran_ok(png_ptr, 0)) in png_set_scale_16()
176 png_ptr->transformations |= PNG_SCALE_16_TO_8; in png_set_scale_16()
183 png_set_strip_16(png_structrp png_ptr) in png_set_strip_16() argument
187 if (!png_rtran_ok(png_ptr, 0)) in png_set_strip_16()
190 png_ptr->transformations |= PNG_16_TO_8; in png_set_strip_16()
196 png_set_strip_alpha(png_structrp png_ptr) in png_set_strip_alpha() argument
200 if (!png_rtran_ok(png_ptr, 0)) in png_set_strip_alpha()
203 png_ptr->transformations |= PNG_STRIP_ALPHA; in png_set_strip_alpha()
209 translate_gamma_flags(png_structrp png_ptr, png_fixed_point output_gamma, in translate_gamma_flags() argument
224 png_ptr->flags |= PNG_FLAG_ASSUME_sRGB; in translate_gamma_flags()
226 PNG_UNUSED(png_ptr) in translate_gamma_flags()
248 convert_gamma_value(png_structrp png_ptr, double output_gamma) in convert_gamma_value() argument
264 png_fixed_error(png_ptr, "gamma value"); in convert_gamma_value()
273 png_set_alpha_mode_fixed(png_structrp png_ptr, int mode, in png_set_alpha_mode_fixed() argument
281 if (!png_rtran_ok(png_ptr, 0)) in png_set_alpha_mode_fixed()
284 output_gamma = translate_gamma_flags(png_ptr, output_gamma, 1/*screen*/); in png_set_alpha_mode_fixed()
293 png_error(png_ptr, "output gamma out of expected range"); in png_set_alpha_mode_fixed()
320 png_ptr->transformations &= ~PNG_ENCODE_ALPHA; in png_set_alpha_mode_fixed()
321 png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; in png_set_alpha_mode_fixed()
326 png_ptr->transformations &= ~PNG_ENCODE_ALPHA; in png_set_alpha_mode_fixed()
327 png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; in png_set_alpha_mode_fixed()
334 png_ptr->transformations &= ~PNG_ENCODE_ALPHA; in png_set_alpha_mode_fixed()
335 png_ptr->flags |= PNG_FLAG_OPTIMIZE_ALPHA; in png_set_alpha_mode_fixed()
341 png_ptr->transformations |= PNG_ENCODE_ALPHA; in png_set_alpha_mode_fixed()
342 png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; in png_set_alpha_mode_fixed()
346 png_error(png_ptr, "invalid alpha mode"); in png_set_alpha_mode_fixed()
353 if (png_ptr->colorspace.gamma == 0) in png_set_alpha_mode_fixed()
355 png_ptr->colorspace.gamma = file_gamma; in png_set_alpha_mode_fixed()
356 png_ptr->colorspace.flags |= PNG_COLORSPACE_HAVE_GAMMA; in png_set_alpha_mode_fixed()
360 png_ptr->screen_gamma = output_gamma; in png_set_alpha_mode_fixed()
368 memset(&png_ptr->background, 0, (sizeof png_ptr->background)); in png_set_alpha_mode_fixed()
369 png_ptr->background_gamma = png_ptr->colorspace.gamma; /* just in case */ in png_set_alpha_mode_fixed()
370 png_ptr->background_gamma_type = PNG_BACKGROUND_GAMMA_FILE; in png_set_alpha_mode_fixed()
371 png_ptr->transformations &= ~PNG_BACKGROUND_EXPAND; in png_set_alpha_mode_fixed()
373 if (png_ptr->transformations & PNG_COMPOSE) in png_set_alpha_mode_fixed()
374 png_error(png_ptr, in png_set_alpha_mode_fixed()
377 png_ptr->transformations |= PNG_COMPOSE; in png_set_alpha_mode_fixed()
383 png_set_alpha_mode(png_structrp png_ptr, int mode, double output_gamma) in png_set_alpha_mode() argument
385 png_set_alpha_mode_fixed(png_ptr, mode, convert_gamma_value(png_ptr, in png_set_alpha_mode()
411 png_set_quantize(png_structrp png_ptr, png_colorp palette, in png_set_quantize() argument
417 if (!png_rtran_ok(png_ptr, 0)) in png_set_quantize()
420 png_ptr->transformations |= PNG_QUANTIZE; in png_set_quantize()
426 png_ptr->quantize_index = (png_bytep)png_malloc(png_ptr, in png_set_quantize()
429 png_ptr->quantize_index[i] = (png_byte)i; in png_set_quantize()
443 png_ptr->quantize_sort = (png_bytep)png_malloc(png_ptr, in png_set_quantize()
448 png_ptr->quantize_sort[i] = (png_byte)i; in png_set_quantize()
465 if (histogram[png_ptr->quantize_sort[j]] in png_set_quantize()
466 < histogram[png_ptr->quantize_sort[j + 1]]) in png_set_quantize()
470 t = png_ptr->quantize_sort[j]; in png_set_quantize()
471 png_ptr->quantize_sort[j] = png_ptr->quantize_sort[j + 1]; in png_set_quantize()
472 png_ptr->quantize_sort[j + 1] = t; in png_set_quantize()
491 if ((int)png_ptr->quantize_sort[i] >= maximum_colors) in png_set_quantize()
495 while ((int)png_ptr->quantize_sort[j] >= maximum_colors); in png_set_quantize()
511 if ((int)png_ptr->quantize_sort[i] >= maximum_colors) in png_set_quantize()
517 while ((int)png_ptr->quantize_sort[j] >= maximum_colors); in png_set_quantize()
523 png_ptr->quantize_index[j] = (png_byte)i; in png_set_quantize()
524 png_ptr->quantize_index[i] = (png_byte)j; in png_set_quantize()
531 if ((int)png_ptr->quantize_index[i] >= maximum_colors) in png_set_quantize()
536 d_index = png_ptr->quantize_index[i]; in png_set_quantize()
551 png_ptr->quantize_index[i] = (png_byte)min_k; in png_set_quantize()
555 png_free(png_ptr, png_ptr->quantize_sort); in png_set_quantize()
556 png_ptr->quantize_sort = NULL; in png_set_quantize()
577 png_ptr->index_to_palette = (png_bytep)png_malloc(png_ptr, in png_set_quantize()
579 png_ptr->palette_to_index = (png_bytep)png_malloc(png_ptr, in png_set_quantize()
585 png_ptr->index_to_palette[i] = (png_byte)i; in png_set_quantize()
586 png_ptr->palette_to_index[i] = (png_byte)i; in png_set_quantize()
589 hash = (png_dsortpp)png_calloc(png_ptr, (png_uint_32)(769 * in png_set_quantize()
619 t = (png_dsortp)png_malloc_warn(png_ptr, in png_set_quantize()
644 if ((int)png_ptr->index_to_palette[p->left] in png_set_quantize()
646 (int)png_ptr->index_to_palette[p->right] in png_set_quantize()
663 palette[png_ptr->index_to_palette[j]] in png_set_quantize()
671 if (png_ptr->quantize_index[k] == in png_set_quantize()
672 png_ptr->index_to_palette[j]) in png_set_quantize()
673 png_ptr->quantize_index[k] = in png_set_quantize()
674 png_ptr->index_to_palette[next_j]; in png_set_quantize()
676 if ((int)png_ptr->quantize_index[k] == in png_set_quantize()
678 png_ptr->quantize_index[k] = in png_set_quantize()
679 png_ptr->index_to_palette[j]; in png_set_quantize()
683 png_ptr->index_to_palette[png_ptr->palette_to_index in png_set_quantize()
684 [num_new_palette]] = png_ptr->index_to_palette[j]; in png_set_quantize()
686 png_ptr->palette_to_index[png_ptr->index_to_palette[j]] in png_set_quantize()
687 = png_ptr->palette_to_index[num_new_palette]; in png_set_quantize()
689 png_ptr->index_to_palette[j] = in png_set_quantize()
692 png_ptr->palette_to_index[num_new_palette] = in png_set_quantize()
711 png_free(png_ptr, p); in png_set_quantize()
719 png_free(png_ptr, hash); in png_set_quantize()
720 png_free(png_ptr, png_ptr->palette_to_index); in png_set_quantize()
721 png_free(png_ptr, png_ptr->index_to_palette); in png_set_quantize()
722 png_ptr->palette_to_index = NULL; in png_set_quantize()
723 png_ptr->index_to_palette = NULL; in png_set_quantize()
727 if (png_ptr->palette == NULL) in png_set_quantize()
729 png_ptr->palette = palette; in png_set_quantize()
731 png_ptr->num_palette = (png_uint_16)num_palette; in png_set_quantize()
744 png_ptr->palette_lookup = (png_bytep)png_calloc(png_ptr, in png_set_quantize()
747 distance = (png_bytep)png_malloc(png_ptr, (png_uint_32)(num_entries * in png_set_quantize()
785 png_ptr->palette_lookup[d_index] = (png_byte)i; in png_set_quantize()
792 png_free(png_ptr, distance); in png_set_quantize()
799 png_set_gamma_fixed(png_structrp png_ptr, png_fixed_point scrn_gamma, in png_set_gamma_fixed() argument
804 if (!png_rtran_ok(png_ptr, 0)) in png_set_gamma_fixed()
808 scrn_gamma = translate_gamma_flags(png_ptr, scrn_gamma, 1/*screen*/); in png_set_gamma_fixed()
809 file_gamma = translate_gamma_flags(png_ptr, file_gamma, 0/*file*/); in png_set_gamma_fixed()
823 png_error(png_ptr, "invalid file gamma in png_set_gamma"); in png_set_gamma_fixed()
826 png_error(png_ptr, "invalid screen gamma in png_set_gamma"); in png_set_gamma_fixed()
832 png_ptr->colorspace.gamma = file_gamma; in png_set_gamma_fixed()
833 png_ptr->colorspace.flags |= PNG_COLORSPACE_HAVE_GAMMA; in png_set_gamma_fixed()
834 png_ptr->screen_gamma = scrn_gamma; in png_set_gamma_fixed()
839 png_set_gamma(png_structrp png_ptr, double scrn_gamma, double file_gamma) in png_set_gamma() argument
841 png_set_gamma_fixed(png_ptr, convert_gamma_value(png_ptr, scrn_gamma), in png_set_gamma()
842 convert_gamma_value(png_ptr, file_gamma)); in png_set_gamma()
853 png_set_expand(png_structrp png_ptr) in png_set_expand() argument
857 if (!png_rtran_ok(png_ptr, 0)) in png_set_expand()
860 png_ptr->transformations |= (PNG_EXPAND | PNG_EXPAND_tRNS); in png_set_expand()
883 png_set_palette_to_rgb(png_structrp png_ptr) in png_set_palette_to_rgb() argument
887 if (!png_rtran_ok(png_ptr, 0)) in png_set_palette_to_rgb()
890 png_ptr->transformations |= (PNG_EXPAND | PNG_EXPAND_tRNS); in png_set_palette_to_rgb()
895 png_set_expand_gray_1_2_4_to_8(png_structrp png_ptr) in png_set_expand_gray_1_2_4_to_8() argument
899 if (!png_rtran_ok(png_ptr, 0)) in png_set_expand_gray_1_2_4_to_8()
902 png_ptr->transformations |= PNG_EXPAND; in png_set_expand_gray_1_2_4_to_8()
907 png_set_tRNS_to_alpha(png_structrp png_ptr) in png_set_tRNS_to_alpha() argument
911 if (!png_rtran_ok(png_ptr, 0)) in png_set_tRNS_to_alpha()
914 png_ptr->transformations |= (PNG_EXPAND | PNG_EXPAND_tRNS); in png_set_tRNS_to_alpha()
923 png_set_expand_16(png_structrp png_ptr) in png_set_expand_16() argument
927 if (!png_rtran_ok(png_ptr, 0)) in png_set_expand_16()
930 png_ptr->transformations |= (PNG_EXPAND_16 | PNG_EXPAND | PNG_EXPAND_tRNS); in png_set_expand_16()
936 png_set_gray_to_rgb(png_structrp png_ptr) in png_set_gray_to_rgb() argument
940 if (!png_rtran_ok(png_ptr, 0)) in png_set_gray_to_rgb()
944 png_set_expand_gray_1_2_4_to_8(png_ptr); in png_set_gray_to_rgb()
945 png_ptr->transformations |= PNG_GRAY_TO_RGB; in png_set_gray_to_rgb()
951 png_set_rgb_to_gray_fixed(png_structrp png_ptr, int error_action, in png_set_rgb_to_gray_fixed() argument
958 if (!png_rtran_ok(png_ptr, 1)) in png_set_rgb_to_gray_fixed()
964 png_ptr->transformations |= PNG_RGB_TO_GRAY; in png_set_rgb_to_gray_fixed()
968 png_ptr->transformations |= PNG_RGB_TO_GRAY_WARN; in png_set_rgb_to_gray_fixed()
972 png_ptr->transformations |= PNG_RGB_TO_GRAY_ERR; in png_set_rgb_to_gray_fixed()
976 png_error(png_ptr, "invalid error action to rgb_to_gray"); in png_set_rgb_to_gray_fixed()
980 if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) in png_set_rgb_to_gray_fixed()
982 png_ptr->transformations |= PNG_EXPAND; in png_set_rgb_to_gray_fixed()
988 png_error(png_ptr, in png_set_rgb_to_gray_fixed()
1007 png_ptr->rgb_to_gray_red_coeff = red_int; in png_set_rgb_to_gray_fixed()
1008 png_ptr->rgb_to_gray_green_coeff = green_int; in png_set_rgb_to_gray_fixed()
1009 png_ptr->rgb_to_gray_coefficients_set = 1; in png_set_rgb_to_gray_fixed()
1015 png_app_warning(png_ptr, in png_set_rgb_to_gray_fixed()
1024 if (png_ptr->rgb_to_gray_red_coeff == 0 && in png_set_rgb_to_gray_fixed()
1025 png_ptr->rgb_to_gray_green_coeff == 0) in png_set_rgb_to_gray_fixed()
1027 png_ptr->rgb_to_gray_red_coeff = 6968; in png_set_rgb_to_gray_fixed()
1028 png_ptr->rgb_to_gray_green_coeff = 23434; in png_set_rgb_to_gray_fixed()
1041 png_set_rgb_to_gray(png_structrp png_ptr, int error_action, double red, in png_set_rgb_to_gray() argument
1044 png_set_rgb_to_gray_fixed(png_ptr, error_action, in png_set_rgb_to_gray()
1045 png_fixed(png_ptr, red, "rgb to gray red coefficient"), in png_set_rgb_to_gray()
1046 png_fixed(png_ptr, green, "rgb to gray green coefficient")); in png_set_rgb_to_gray()
1055 png_set_read_user_transform_fn(png_structrp png_ptr, png_user_transform_ptr in png_set_read_user_transform_fn() argument
1061 png_ptr->transformations |= PNG_USER_TRANSFORM; in png_set_read_user_transform_fn()
1062 png_ptr->read_user_transform_fn = read_user_transform_fn; in png_set_read_user_transform_fn()
1099 png_init_palette_transformations(png_structrp png_ptr) in png_init_palette_transformations() argument
1112 if (png_ptr->num_trans > 0) in png_init_palette_transformations()
1117 for (i=0; i<png_ptr->num_trans; ++i) in png_init_palette_transformations()
1118 if (png_ptr->trans_alpha[i] == 255) in png_init_palette_transformations()
1120 else if (png_ptr->trans_alpha[i] == 0) in png_init_palette_transformations()
1133 png_ptr->transformations &= ~PNG_ENCODE_ALPHA; in png_init_palette_transformations()
1134 png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; in png_init_palette_transformations()
1137 png_ptr->transformations &= ~(PNG_COMPOSE | PNG_BACKGROUND_EXPAND); in png_init_palette_transformations()
1149 if ((png_ptr->transformations & PNG_BACKGROUND_EXPAND) && in png_init_palette_transformations()
1150 (png_ptr->transformations & PNG_EXPAND)) in png_init_palette_transformations()
1153 png_ptr->background.red = in png_init_palette_transformations()
1154 png_ptr->palette[png_ptr->background.index].red; in png_init_palette_transformations()
1155 png_ptr->background.green = in png_init_palette_transformations()
1156 png_ptr->palette[png_ptr->background.index].green; in png_init_palette_transformations()
1157 png_ptr->background.blue = in png_init_palette_transformations()
1158 png_ptr->palette[png_ptr->background.index].blue; in png_init_palette_transformations()
1161 if (png_ptr->transformations & PNG_INVERT_ALPHA) in png_init_palette_transformations()
1163 if (!(png_ptr->transformations & PNG_EXPAND_tRNS)) in png_init_palette_transformations()
1168 int i, istop = png_ptr->num_trans; in png_init_palette_transformations()
1171 png_ptr->trans_alpha[i] = (png_byte)(255 - in png_init_palette_transformations()
1172 png_ptr->trans_alpha[i]); in png_init_palette_transformations()
1182 png_init_rgb_transformations(png_structrp png_ptr) in png_init_rgb_transformations() argument
1188 int input_has_alpha = (png_ptr->color_type & PNG_COLOR_MASK_ALPHA) != 0; in png_init_rgb_transformations()
1189 int input_has_transparency = png_ptr->num_trans > 0; in png_init_rgb_transformations()
1199 png_ptr->transformations &= ~PNG_ENCODE_ALPHA; in png_init_rgb_transformations()
1200 png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; in png_init_rgb_transformations()
1204 png_ptr->transformations &= ~(PNG_COMPOSE | PNG_BACKGROUND_EXPAND); in png_init_rgb_transformations()
1216 if ((png_ptr->transformations & PNG_BACKGROUND_EXPAND) && in png_init_rgb_transformations()
1217 (png_ptr->transformations & PNG_EXPAND) && in png_init_rgb_transformations()
1218 !(png_ptr->color_type & PNG_COLOR_MASK_COLOR)) in png_init_rgb_transformations()
1223 int gray = png_ptr->background.gray; in png_init_rgb_transformations()
1224 int trans_gray = png_ptr->trans_color.gray; in png_init_rgb_transformations()
1226 switch (png_ptr->bit_depth) in png_init_rgb_transformations()
1253 png_ptr->background.red = png_ptr->background.green = in png_init_rgb_transformations()
1254 png_ptr->background.blue = (png_uint_16)gray; in png_init_rgb_transformations()
1256 if (!(png_ptr->transformations & PNG_EXPAND_tRNS)) in png_init_rgb_transformations()
1258 png_ptr->trans_color.red = png_ptr->trans_color.green = in png_init_rgb_transformations()
1259 png_ptr->trans_color.blue = (png_uint_16)trans_gray; in png_init_rgb_transformations()
1267 png_init_read_transformations(png_structrp png_ptr) in png_init_read_transformations() argument
1292 if (png_ptr->colorspace.gamma != 0) /* has been set */ in png_init_read_transformations()
1294 if (png_ptr->screen_gamma != 0) /* screen set too */ in png_init_read_transformations()
1295 gamma_correction = png_gamma_threshold(png_ptr->colorspace.gamma, in png_init_read_transformations()
1296 png_ptr->screen_gamma); in png_init_read_transformations()
1302 png_ptr->screen_gamma = png_reciprocal(png_ptr->colorspace.gamma); in png_init_read_transformations()
1305 else if (png_ptr->screen_gamma != 0) in png_init_read_transformations()
1311 png_ptr->colorspace.gamma = png_reciprocal(png_ptr->screen_gamma); in png_init_read_transformations()
1319 png_ptr->screen_gamma = png_ptr->colorspace.gamma = PNG_FP_1; in png_init_read_transformations()
1322 png_ptr->colorspace.flags |= PNG_COLORSPACE_HAVE_GAMMA; in png_init_read_transformations()
1333 png_ptr->transformations |= PNG_GAMMA; in png_init_read_transformations()
1336 png_ptr->transformations &= ~PNG_GAMMA; in png_init_read_transformations()
1370 if ((png_ptr->transformations & PNG_STRIP_ALPHA) && in png_init_read_transformations()
1371 !(png_ptr->transformations & PNG_COMPOSE)) in png_init_read_transformations()
1378 png_ptr->transformations &= ~(PNG_BACKGROUND_EXPAND | PNG_ENCODE_ALPHA | in png_init_read_transformations()
1380 png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; in png_init_read_transformations()
1389 png_ptr->num_trans = 0; in png_init_read_transformations()
1397 if (!png_gamma_significant(png_ptr->screen_gamma)) in png_init_read_transformations()
1399 png_ptr->transformations &= ~PNG_ENCODE_ALPHA; in png_init_read_transformations()
1400 png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; in png_init_read_transformations()
1408 if (png_ptr->transformations & PNG_RGB_TO_GRAY) in png_init_read_transformations()
1409 png_colorspace_set_rgb_coefficients(png_ptr); in png_init_read_transformations()
1429 if (png_ptr->transformations & PNG_BACKGROUND_EXPAND) in png_init_read_transformations()
1434 if (!(png_ptr->color_type & PNG_COLOR_MASK_COLOR)) in png_init_read_transformations()
1435 png_ptr->mode |= PNG_BACKGROUND_IS_GRAY; in png_init_read_transformations()
1438 else if (png_ptr->transformations & PNG_COMPOSE) in png_init_read_transformations()
1445 if (png_ptr->transformations & PNG_GRAY_TO_RGB) in png_init_read_transformations()
1447 if (png_ptr->background.red == png_ptr->background.green && in png_init_read_transformations()
1448 png_ptr->background.red == png_ptr->background.blue) in png_init_read_transformations()
1450 png_ptr->mode |= PNG_BACKGROUND_IS_GRAY; in png_init_read_transformations()
1451 png_ptr->background.gray = png_ptr->background.red; in png_init_read_transformations()
1469 if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) in png_init_read_transformations()
1470 png_init_palette_transformations(png_ptr); in png_init_read_transformations()
1473 png_init_rgb_transformations(png_ptr); in png_init_read_transformations()
1477 if ((png_ptr->transformations & PNG_EXPAND_16) && in png_init_read_transformations()
1478 (png_ptr->transformations & PNG_COMPOSE) && in png_init_read_transformations()
1479 !(png_ptr->transformations & PNG_BACKGROUND_EXPAND) && in png_init_read_transformations()
1480 png_ptr->bit_depth != 16) in png_init_read_transformations()
1493 CHOP(png_ptr->background.red); in png_init_read_transformations()
1494 CHOP(png_ptr->background.green); in png_init_read_transformations()
1495 CHOP(png_ptr->background.blue); in png_init_read_transformations()
1496 CHOP(png_ptr->background.gray); in png_init_read_transformations()
1504 if ((png_ptr->transformations & (PNG_16_TO_8|PNG_SCALE_16_TO_8)) && in png_init_read_transformations()
1505 (png_ptr->transformations & PNG_COMPOSE) && in png_init_read_transformations()
1506 !(png_ptr->transformations & PNG_BACKGROUND_EXPAND) && in png_init_read_transformations()
1507 png_ptr->bit_depth == 16) in png_init_read_transformations()
1515 png_ptr->background.red = (png_uint_16)(png_ptr->background.red * 257); in png_init_read_transformations()
1516 png_ptr->background.green = in png_init_read_transformations()
1517 (png_uint_16)(png_ptr->background.green * 257); in png_init_read_transformations()
1518 png_ptr->background.blue = (png_uint_16)(png_ptr->background.blue * 257); in png_init_read_transformations()
1519 png_ptr->background.gray = (png_uint_16)(png_ptr->background.gray * 257); in png_init_read_transformations()
1534 png_ptr->background_1 = png_ptr->background; in png_init_read_transformations()
1550 if ((png_ptr->transformations & PNG_GAMMA) in png_init_read_transformations()
1551 || ((png_ptr->transformations & PNG_RGB_TO_GRAY) in png_init_read_transformations()
1552 && (png_gamma_significant(png_ptr->colorspace.gamma) || in png_init_read_transformations()
1553 png_gamma_significant(png_ptr->screen_gamma))) in png_init_read_transformations()
1554 || ((png_ptr->transformations & PNG_COMPOSE) in png_init_read_transformations()
1555 && (png_gamma_significant(png_ptr->colorspace.gamma) in png_init_read_transformations()
1556 || png_gamma_significant(png_ptr->screen_gamma) in png_init_read_transformations()
1558 || (png_ptr->background_gamma_type == PNG_BACKGROUND_GAMMA_UNIQUE in png_init_read_transformations()
1559 && png_gamma_significant(png_ptr->background_gamma)) in png_init_read_transformations()
1561 )) || ((png_ptr->transformations & PNG_ENCODE_ALPHA) in png_init_read_transformations()
1562 && png_gamma_significant(png_ptr->screen_gamma)) in png_init_read_transformations()
1565 png_build_gamma_table(png_ptr, png_ptr->bit_depth); in png_init_read_transformations()
1568 if (png_ptr->transformations & PNG_COMPOSE) in png_init_read_transformations()
1576 if (png_ptr->transformations & PNG_RGB_TO_GRAY) in png_init_read_transformations()
1577 png_warning(png_ptr, in png_init_read_transformations()
1580 if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) in png_init_read_transformations()
1586 png_colorp palette = png_ptr->palette; in png_init_read_transformations()
1587 int num_palette = png_ptr->num_palette; in png_init_read_transformations()
1589 if (png_ptr->background_gamma_type == PNG_BACKGROUND_GAMMA_FILE) in png_init_read_transformations()
1592 back.red = png_ptr->gamma_table[png_ptr->background.red]; in png_init_read_transformations()
1593 back.green = png_ptr->gamma_table[png_ptr->background.green]; in png_init_read_transformations()
1594 back.blue = png_ptr->gamma_table[png_ptr->background.blue]; in png_init_read_transformations()
1596 back_1.red = png_ptr->gamma_to_1[png_ptr->background.red]; in png_init_read_transformations()
1597 back_1.green = png_ptr->gamma_to_1[png_ptr->background.green]; in png_init_read_transformations()
1598 back_1.blue = png_ptr->gamma_to_1[png_ptr->background.blue]; in png_init_read_transformations()
1604 switch (png_ptr->background_gamma_type) in png_init_read_transformations()
1607 g = (png_ptr->screen_gamma); in png_init_read_transformations()
1612 g = png_reciprocal(png_ptr->colorspace.gamma); in png_init_read_transformations()
1613 gs = png_reciprocal2(png_ptr->colorspace.gamma, in png_init_read_transformations()
1614 png_ptr->screen_gamma); in png_init_read_transformations()
1618 g = png_reciprocal(png_ptr->background_gamma); in png_init_read_transformations()
1619 gs = png_reciprocal2(png_ptr->background_gamma, in png_init_read_transformations()
1620 png_ptr->screen_gamma); in png_init_read_transformations()
1630 back.red = png_gamma_8bit_correct(png_ptr->background.red, in png_init_read_transformations()
1632 back.green = png_gamma_8bit_correct(png_ptr->background.green, in png_init_read_transformations()
1634 back.blue = png_gamma_8bit_correct(png_ptr->background.blue, in png_init_read_transformations()
1640 back.red = (png_byte)png_ptr->background.red; in png_init_read_transformations()
1641 back.green = (png_byte)png_ptr->background.green; in png_init_read_transformations()
1642 back.blue = (png_byte)png_ptr->background.blue; in png_init_read_transformations()
1647 back_1.red = png_gamma_8bit_correct(png_ptr->background.red, in png_init_read_transformations()
1650 png_ptr->background.green, g); in png_init_read_transformations()
1651 back_1.blue = png_gamma_8bit_correct(png_ptr->background.blue, in png_init_read_transformations()
1657 back_1.red = (png_byte)png_ptr->background.red; in png_init_read_transformations()
1658 back_1.green = (png_byte)png_ptr->background.green; in png_init_read_transformations()
1659 back_1.blue = (png_byte)png_ptr->background.blue; in png_init_read_transformations()
1665 if (i < (int)png_ptr->num_trans && in png_init_read_transformations()
1666 png_ptr->trans_alpha[i] != 0xff) in png_init_read_transformations()
1668 if (png_ptr->trans_alpha[i] == 0) in png_init_read_transformations()
1676 v = png_ptr->gamma_to_1[palette[i].red]; in png_init_read_transformations()
1677 png_composite(w, v, png_ptr->trans_alpha[i], back_1.red); in png_init_read_transformations()
1678 palette[i].red = png_ptr->gamma_from_1[w]; in png_init_read_transformations()
1680 v = png_ptr->gamma_to_1[palette[i].green]; in png_init_read_transformations()
1681 png_composite(w, v, png_ptr->trans_alpha[i], back_1.green); in png_init_read_transformations()
1682 palette[i].green = png_ptr->gamma_from_1[w]; in png_init_read_transformations()
1684 v = png_ptr->gamma_to_1[palette[i].blue]; in png_init_read_transformations()
1685 png_composite(w, v, png_ptr->trans_alpha[i], back_1.blue); in png_init_read_transformations()
1686 palette[i].blue = png_ptr->gamma_from_1[w]; in png_init_read_transformations()
1691 palette[i].red = png_ptr->gamma_table[palette[i].red]; in png_init_read_transformations()
1692 palette[i].green = png_ptr->gamma_table[palette[i].green]; in png_init_read_transformations()
1693 palette[i].blue = png_ptr->gamma_table[palette[i].blue]; in png_init_read_transformations()
1703 png_ptr->transformations &= ~(PNG_COMPOSE | PNG_GAMMA); in png_init_read_transformations()
1713 switch (png_ptr->background_gamma_type) in png_init_read_transformations()
1716 g = png_ptr->screen_gamma; in png_init_read_transformations()
1721 g = png_reciprocal(png_ptr->colorspace.gamma); in png_init_read_transformations()
1722 gs = png_reciprocal2(png_ptr->colorspace.gamma, in png_init_read_transformations()
1723 png_ptr->screen_gamma); in png_init_read_transformations()
1727 g = png_reciprocal(png_ptr->background_gamma); in png_init_read_transformations()
1728 gs = png_reciprocal2(png_ptr->background_gamma, in png_init_read_transformations()
1729 png_ptr->screen_gamma); in png_init_read_transformations()
1733 png_error(png_ptr, "invalid background gamma type"); in png_init_read_transformations()
1740 png_ptr->background_1.gray = png_gamma_correct(png_ptr, in png_init_read_transformations()
1741 png_ptr->background.gray, g); in png_init_read_transformations()
1744 png_ptr->background.gray = png_gamma_correct(png_ptr, in png_init_read_transformations()
1745 png_ptr->background.gray, gs); in png_init_read_transformations()
1747 if ((png_ptr->background.red != png_ptr->background.green) || in png_init_read_transformations()
1748 (png_ptr->background.red != png_ptr->background.blue) || in png_init_read_transformations()
1749 (png_ptr->background.red != png_ptr->background.gray)) in png_init_read_transformations()
1754 png_ptr->background_1.red = png_gamma_correct(png_ptr, in png_init_read_transformations()
1755 png_ptr->background.red, g); in png_init_read_transformations()
1757 png_ptr->background_1.green = png_gamma_correct(png_ptr, in png_init_read_transformations()
1758 png_ptr->background.green, g); in png_init_read_transformations()
1760 png_ptr->background_1.blue = png_gamma_correct(png_ptr, in png_init_read_transformations()
1761 png_ptr->background.blue, g); in png_init_read_transformations()
1766 png_ptr->background.red = png_gamma_correct(png_ptr, in png_init_read_transformations()
1767 png_ptr->background.red, gs); in png_init_read_transformations()
1769 png_ptr->background.green = png_gamma_correct(png_ptr, in png_init_read_transformations()
1770 png_ptr->background.green, gs); in png_init_read_transformations()
1772 png_ptr->background.blue = png_gamma_correct(png_ptr, in png_init_read_transformations()
1773 png_ptr->background.blue, gs); in png_init_read_transformations()
1780 png_ptr->background_1.red = png_ptr->background_1.green in png_init_read_transformations()
1781 = png_ptr->background_1.blue = png_ptr->background_1.gray; in png_init_read_transformations()
1783 png_ptr->background.red = png_ptr->background.green in png_init_read_transformations()
1784 = png_ptr->background.blue = png_ptr->background.gray; in png_init_read_transformations()
1788 png_ptr->background_gamma_type = PNG_BACKGROUND_GAMMA_SCREEN; in png_init_read_transformations()
1795 if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE in png_init_read_transformations()
1798 && ((png_ptr->transformations & PNG_EXPAND) == 0 || in png_init_read_transformations()
1799 (png_ptr->transformations & PNG_RGB_TO_GRAY) == 0) in png_init_read_transformations()
1803 png_colorp palette = png_ptr->palette; in png_init_read_transformations()
1804 int num_palette = png_ptr->num_palette; in png_init_read_transformations()
1812 palette[i].red = png_ptr->gamma_table[palette[i].red]; in png_init_read_transformations()
1813 palette[i].green = png_ptr->gamma_table[palette[i].green]; in png_init_read_transformations()
1814 palette[i].blue = png_ptr->gamma_table[palette[i].blue]; in png_init_read_transformations()
1818 png_ptr->transformations &= ~PNG_GAMMA; in png_init_read_transformations()
1828 if ((png_ptr->transformations & PNG_COMPOSE) && in png_init_read_transformations()
1829 (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)) in png_init_read_transformations()
1832 int istop = (int)png_ptr->num_trans; in png_init_read_transformations()
1834 png_colorp palette = png_ptr->palette; in png_init_read_transformations()
1836 back.red = (png_byte)png_ptr->background.red; in png_init_read_transformations()
1837 back.green = (png_byte)png_ptr->background.green; in png_init_read_transformations()
1838 back.blue = (png_byte)png_ptr->background.blue; in png_init_read_transformations()
1842 if (png_ptr->trans_alpha[i] == 0) in png_init_read_transformations()
1847 else if (png_ptr->trans_alpha[i] != 0xff) in png_init_read_transformations()
1851 png_ptr->trans_alpha[i], back.red); in png_init_read_transformations()
1854 png_ptr->trans_alpha[i], back.green); in png_init_read_transformations()
1857 png_ptr->trans_alpha[i], back.blue); in png_init_read_transformations()
1861 png_ptr->transformations &= ~PNG_COMPOSE; in png_init_read_transformations()
1868 if ((png_ptr->transformations & PNG_SHIFT) && in png_init_read_transformations()
1869 !(png_ptr->transformations & PNG_EXPAND) && in png_init_read_transformations()
1870 (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)) in png_init_read_transformations()
1873 int istop = png_ptr->num_palette; in png_init_read_transformations()
1874 int shift = 8 - png_ptr->sig_bit.red; in png_init_read_transformations()
1876 png_ptr->transformations &= ~PNG_SHIFT; in png_init_read_transformations()
1884 int component = png_ptr->palette[i].red; in png_init_read_transformations()
1887 png_ptr->palette[i].red = (png_byte)component; in png_init_read_transformations()
1890 shift = 8 - png_ptr->sig_bit.green; in png_init_read_transformations()
1893 int component = png_ptr->palette[i].green; in png_init_read_transformations()
1896 png_ptr->palette[i].green = (png_byte)component; in png_init_read_transformations()
1899 shift = 8 - png_ptr->sig_bit.blue; in png_init_read_transformations()
1902 int component = png_ptr->palette[i].blue; in png_init_read_transformations()
1905 png_ptr->palette[i].blue = (png_byte)component; in png_init_read_transformations()
1916 png_read_transform_info(png_structrp png_ptr, png_inforp info_ptr) in png_read_transform_info() argument
1921 if (png_ptr->transformations & PNG_EXPAND) in png_read_transform_info()
1929 if (png_ptr->num_trans > 0) in png_read_transform_info()
1940 if (png_ptr->num_trans) in png_read_transform_info()
1942 if (png_ptr->transformations & PNG_EXPAND_tRNS) in png_read_transform_info()
1958 if (png_ptr->transformations & PNG_COMPOSE) in png_read_transform_info()
1959 info_ptr->background = png_ptr->background; in png_read_transform_info()
1972 info_ptr->colorspace.gamma = png_ptr->colorspace.gamma; in png_read_transform_info()
1979 if (png_ptr->transformations & PNG_SCALE_16_TO_8) in png_read_transform_info()
1984 if (png_ptr->transformations & PNG_16_TO_8) in png_read_transform_info()
1998 png_ptr->transformations |= PNG_16_TO_8; in png_read_transform_info()
2003 png_ptr->transformations |= PNG_SCALE_16_TO_8; in png_read_transform_info()
2014 if (png_ptr->transformations & PNG_GRAY_TO_RGB) in png_read_transform_info()
2020 if (png_ptr->transformations & PNG_RGB_TO_GRAY) in png_read_transform_info()
2026 if (png_ptr->transformations & PNG_QUANTIZE) in png_read_transform_info()
2030 png_ptr->palette_lookup && info_ptr->bit_depth == 8) in png_read_transform_info()
2038 if (png_ptr->transformations & PNG_EXPAND_16 && info_ptr->bit_depth == 8 && in png_read_transform_info()
2046 if ((png_ptr->transformations & PNG_PACK) && (info_ptr->bit_depth < 8)) in png_read_transform_info()
2060 if (png_ptr->transformations & PNG_STRIP_ALPHA) in png_read_transform_info()
2073 if ((png_ptr->transformations & PNG_FILLER) && in png_read_transform_info()
2079 if (png_ptr->transformations & PNG_ADD_ALPHA) in png_read_transform_info()
2086 if (png_ptr->transformations & PNG_USER_TRANSFORM) in png_read_transform_info()
2088 if (info_ptr->bit_depth < png_ptr->user_transform_depth) in png_read_transform_info()
2089 info_ptr->bit_depth = png_ptr->user_transform_depth; in png_read_transform_info()
2091 if (info_ptr->channels < png_ptr->user_transform_channels) in png_read_transform_info()
2092 info_ptr->channels = png_ptr->user_transform_channels; in png_read_transform_info()
2107 png_ptr->info_rowbytes = info_ptr->rowbytes; in png_read_transform_info()
2110 if (png_ptr) in png_read_transform_info()
2120 png_do_read_transformations(png_structrp png_ptr, png_row_infop row_info) in png_do_read_transformations() argument
2124 if (png_ptr->row_buf == NULL) in png_do_read_transformations()
2130 png_error(png_ptr, "NULL row buffer"); in png_do_read_transformations()
2139 if ((png_ptr->flags & PNG_FLAG_DETECT_UNINITIALIZED) != 0 && in png_do_read_transformations()
2140 !(png_ptr->flags & PNG_FLAG_ROW_INIT)) in png_do_read_transformations()
2146 png_error(png_ptr, "Uninitialized row"); in png_do_read_transformations()
2150 if (png_ptr->transformations & PNG_EXPAND) in png_do_read_transformations()
2154 png_do_expand_palette(row_info, png_ptr->row_buf + 1, in png_do_read_transformations()
2155 png_ptr->palette, png_ptr->trans_alpha, png_ptr->num_trans); in png_do_read_transformations()
2160 if (png_ptr->num_trans && in png_do_read_transformations()
2161 (png_ptr->transformations & PNG_EXPAND_tRNS)) in png_do_read_transformations()
2162 png_do_expand(row_info, png_ptr->row_buf + 1, in png_do_read_transformations()
2163 &(png_ptr->trans_color)); in png_do_read_transformations()
2166 png_do_expand(row_info, png_ptr->row_buf + 1, in png_do_read_transformations()
2173 if ((png_ptr->transformations & PNG_STRIP_ALPHA) && in png_do_read_transformations()
2174 !(png_ptr->transformations & PNG_COMPOSE) && in png_do_read_transformations()
2177 png_do_strip_channel(row_info, png_ptr->row_buf + 1, in png_do_read_transformations()
2182 if (png_ptr->transformations & PNG_RGB_TO_GRAY) in png_do_read_transformations()
2185 png_do_rgb_to_gray(png_ptr, row_info, in png_do_read_transformations()
2186 png_ptr->row_buf + 1); in png_do_read_transformations()
2190 png_ptr->rgb_to_gray_status=1; in png_do_read_transformations()
2191 if ((png_ptr->transformations & PNG_RGB_TO_GRAY) == in png_do_read_transformations()
2193 png_warning(png_ptr, "png_do_rgb_to_gray found nongray pixel"); in png_do_read_transformations()
2195 if ((png_ptr->transformations & PNG_RGB_TO_GRAY) == in png_do_read_transformations()
2197 png_error(png_ptr, "png_do_rgb_to_gray found nongray pixel"); in png_do_read_transformations()
2237 if ((png_ptr->transformations & PNG_GRAY_TO_RGB) && in png_do_read_transformations()
2238 !(png_ptr->mode & PNG_BACKGROUND_IS_GRAY)) in png_do_read_transformations()
2239 png_do_gray_to_rgb(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
2244 if (png_ptr->transformations & PNG_COMPOSE) in png_do_read_transformations()
2245 png_do_compose(row_info, png_ptr->row_buf + 1, png_ptr); in png_do_read_transformations()
2249 if ((png_ptr->transformations & PNG_GAMMA) && in png_do_read_transformations()
2252 !(png_ptr->transformations & PNG_RGB_TO_GRAY) && in png_do_read_transformations()
2259 !((png_ptr->transformations & PNG_COMPOSE) && in png_do_read_transformations()
2260 ((png_ptr->num_trans != 0) || in png_do_read_transformations()
2261 (png_ptr->color_type & PNG_COLOR_MASK_ALPHA))) && in png_do_read_transformations()
2266 (png_ptr->color_type != PNG_COLOR_TYPE_PALETTE)) in png_do_read_transformations()
2267 png_do_gamma(row_info, png_ptr->row_buf + 1, png_ptr); in png_do_read_transformations()
2271 if ((png_ptr->transformations & PNG_STRIP_ALPHA) && in png_do_read_transformations()
2272 (png_ptr->transformations & PNG_COMPOSE) && in png_do_read_transformations()
2275 png_do_strip_channel(row_info, png_ptr->row_buf + 1, in png_do_read_transformations()
2280 if ((png_ptr->transformations & PNG_ENCODE_ALPHA) && in png_do_read_transformations()
2282 png_do_encode_alpha(row_info, png_ptr->row_buf + 1, png_ptr); in png_do_read_transformations()
2286 if (png_ptr->transformations & PNG_SCALE_16_TO_8) in png_do_read_transformations()
2287 png_do_scale_16_to_8(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
2295 if (png_ptr->transformations & PNG_16_TO_8) in png_do_read_transformations()
2296 png_do_chop(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
2300 if (png_ptr->transformations & PNG_QUANTIZE) in png_do_read_transformations()
2302 png_do_quantize(row_info, png_ptr->row_buf + 1, in png_do_read_transformations()
2303 png_ptr->palette_lookup, png_ptr->quantize_index); in png_do_read_transformations()
2306 png_error(png_ptr, "png_do_quantize returned rowbytes=0"); in png_do_read_transformations()
2316 if (png_ptr->transformations & PNG_EXPAND_16) in png_do_read_transformations()
2317 png_do_expand_16(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
2322 if ((png_ptr->transformations & PNG_GRAY_TO_RGB) && in png_do_read_transformations()
2323 (png_ptr->mode & PNG_BACKGROUND_IS_GRAY)) in png_do_read_transformations()
2324 png_do_gray_to_rgb(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
2328 if (png_ptr->transformations & PNG_INVERT_MONO) in png_do_read_transformations()
2329 png_do_invert(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
2333 if (png_ptr->transformations & PNG_SHIFT) in png_do_read_transformations()
2334 png_do_unshift(row_info, png_ptr->row_buf + 1, in png_do_read_transformations()
2335 &(png_ptr->shift)); in png_do_read_transformations()
2339 if (png_ptr->transformations & PNG_PACK) in png_do_read_transformations()
2340 png_do_unpack(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
2346 png_ptr->num_palette_max >= 0) in png_do_read_transformations()
2347 png_do_check_palette_indexes(png_ptr, row_info); in png_do_read_transformations()
2351 if (png_ptr->transformations & PNG_BGR) in png_do_read_transformations()
2352 png_do_bgr(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
2356 if (png_ptr->transformations & PNG_PACKSWAP) in png_do_read_transformations()
2357 png_do_packswap(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
2361 if (png_ptr->transformations & PNG_FILLER) in png_do_read_transformations()
2362 png_do_read_filler(row_info, png_ptr->row_buf + 1, in png_do_read_transformations()
2363 (png_uint_32)png_ptr->filler, png_ptr->flags); in png_do_read_transformations()
2367 if (png_ptr->transformations & PNG_INVERT_ALPHA) in png_do_read_transformations()
2368 png_do_read_invert_alpha(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
2372 if (png_ptr->transformations & PNG_SWAP_ALPHA) in png_do_read_transformations()
2373 png_do_read_swap_alpha(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
2378 if (png_ptr->transformations & PNG_SWAP_BYTES) in png_do_read_transformations()
2379 png_do_swap(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
2384 if (png_ptr->transformations & PNG_USER_TRANSFORM) in png_do_read_transformations()
2386 if (png_ptr->read_user_transform_fn != NULL) in png_do_read_transformations()
2387 (*(png_ptr->read_user_transform_fn)) /* User read transform function */ in png_do_read_transformations()
2388 (png_ptr, /* png_ptr */ in png_do_read_transformations()
2396 png_ptr->row_buf + 1); /* start of pixel data for row */ in png_do_read_transformations()
2398 if (png_ptr->user_transform_depth) in png_do_read_transformations()
2399 row_info->bit_depth = png_ptr->user_transform_depth; in png_do_read_transformations()
2401 if (png_ptr->user_transform_channels) in png_do_read_transformations()
2402 row_info->channels = png_ptr->user_transform_channels; in png_do_read_transformations()
3268 png_do_rgb_to_gray(png_structrp png_ptr, png_row_infop row_info, png_bytep row) in png_do_rgb_to_gray() argument
3278 PNG_CONST png_uint_32 rc = png_ptr->rgb_to_gray_red_coeff; in png_do_rgb_to_gray()
3279 PNG_CONST png_uint_32 gc = png_ptr->rgb_to_gray_green_coeff; in png_do_rgb_to_gray()
3293 if (png_ptr->gamma_from_1 != NULL && png_ptr->gamma_to_1 != NULL) in png_do_rgb_to_gray()
3307 red = png_ptr->gamma_to_1[red]; in png_do_rgb_to_gray()
3308 green = png_ptr->gamma_to_1[green]; in png_do_rgb_to_gray()
3309 blue = png_ptr->gamma_to_1[blue]; in png_do_rgb_to_gray()
3312 *(dp++) = png_ptr->gamma_from_1[ in png_do_rgb_to_gray()
3321 if (png_ptr->gamma_table != NULL) in png_do_rgb_to_gray()
3322 red = png_ptr->gamma_table[red]; in png_do_rgb_to_gray()
3365 if (png_ptr->gamma_16_to_1 != NULL && png_ptr->gamma_16_from_1 != NULL) in png_do_rgb_to_gray()
3381 if (png_ptr->gamma_16_table != NULL) in png_do_rgb_to_gray()
3382 w = png_ptr->gamma_16_table[(red&0xff) in png_do_rgb_to_gray()
3383 >> png_ptr->gamma_shift][red>>8]; in png_do_rgb_to_gray()
3391 png_uint_16 red_1 = png_ptr->gamma_16_to_1[(red&0xff) in png_do_rgb_to_gray()
3392 >> png_ptr->gamma_shift][red>>8]; in png_do_rgb_to_gray()
3394 png_ptr->gamma_16_to_1[(green&0xff) >> in png_do_rgb_to_gray()
3395 png_ptr->gamma_shift][green>>8]; in png_do_rgb_to_gray()
3396 png_uint_16 blue_1 = png_ptr->gamma_16_to_1[(blue&0xff) in png_do_rgb_to_gray()
3397 >> png_ptr->gamma_shift][blue>>8]; in png_do_rgb_to_gray()
3400 w = png_ptr->gamma_16_from_1[(gray16&0xff) >> in png_do_rgb_to_gray()
3401 png_ptr->gamma_shift][gray16 >> 8]; in png_do_rgb_to_gray()
3528 png_do_compose(png_row_infop row_info, png_bytep row, png_structrp png_ptr) in png_do_compose() argument
3531 png_const_bytep gamma_table = png_ptr->gamma_table; in png_do_compose()
3532 png_const_bytep gamma_from_1 = png_ptr->gamma_from_1; in png_do_compose()
3533 png_const_bytep gamma_to_1 = png_ptr->gamma_to_1; in png_do_compose()
3534 png_const_uint_16pp gamma_16 = png_ptr->gamma_16_table; in png_do_compose()
3535 png_const_uint_16pp gamma_16_from_1 = png_ptr->gamma_16_from_1; in png_do_compose()
3536 png_const_uint_16pp gamma_16_to_1 = png_ptr->gamma_16_to_1; in png_do_compose()
3537 int gamma_shift = png_ptr->gamma_shift; in png_do_compose()
3538 int optimize = (png_ptr->flags & PNG_FLAG_OPTIMIZE_ALPHA) != 0; in png_do_compose()
3562 == png_ptr->trans_color.gray) in png_do_compose()
3565 tmp |= png_ptr->background.gray << shift; in png_do_compose()
3591 == png_ptr->trans_color.gray) in png_do_compose()
3594 tmp |= png_ptr->background.gray << shift; in png_do_compose()
3627 == png_ptr->trans_color.gray) in png_do_compose()
3630 tmp |= png_ptr->background.gray << shift; in png_do_compose()
3657 == png_ptr->trans_color.gray) in png_do_compose()
3660 tmp |= png_ptr->background.gray << shift; in png_do_compose()
3693 == png_ptr->trans_color.gray) in png_do_compose()
3696 tmp |= png_ptr->background.gray << shift; in png_do_compose()
3721 if (*sp == png_ptr->trans_color.gray) in png_do_compose()
3722 *sp = (png_byte)png_ptr->background.gray; in png_do_compose()
3734 if (*sp == png_ptr->trans_color.gray) in png_do_compose()
3735 *sp = (png_byte)png_ptr->background.gray; in png_do_compose()
3753 if (v == png_ptr->trans_color.gray) in png_do_compose()
3756 *sp = (png_byte)((png_ptr->background.gray >> 8) in png_do_compose()
3758 *(sp + 1) = (png_byte)(png_ptr->background.gray in png_do_compose()
3780 if (v == png_ptr->trans_color.gray) in png_do_compose()
3782 *sp = (png_byte)((png_ptr->background.gray >> 8) in png_do_compose()
3784 *(sp + 1) = (png_byte)(png_ptr->background.gray in png_do_compose()
3808 if (*sp == png_ptr->trans_color.red && in png_do_compose()
3809 *(sp + 1) == png_ptr->trans_color.green && in png_do_compose()
3810 *(sp + 2) == png_ptr->trans_color.blue) in png_do_compose()
3812 *sp = (png_byte)png_ptr->background.red; in png_do_compose()
3813 *(sp + 1) = (png_byte)png_ptr->background.green; in png_do_compose()
3814 *(sp + 2) = (png_byte)png_ptr->background.blue; in png_do_compose()
3831 if (*sp == png_ptr->trans_color.red && in png_do_compose()
3832 *(sp + 1) == png_ptr->trans_color.green && in png_do_compose()
3833 *(sp + 2) == png_ptr->trans_color.blue) in png_do_compose()
3835 *sp = (png_byte)png_ptr->background.red; in png_do_compose()
3836 *(sp + 1) = (png_byte)png_ptr->background.green; in png_do_compose()
3837 *(sp + 2) = (png_byte)png_ptr->background.blue; in png_do_compose()
3858 if (r == png_ptr->trans_color.red && in png_do_compose()
3859 g == png_ptr->trans_color.green && in png_do_compose()
3860 b == png_ptr->trans_color.blue) in png_do_compose()
3863 *sp = (png_byte)((png_ptr->background.red >> 8) & 0xff); in png_do_compose()
3864 *(sp + 1) = (png_byte)(png_ptr->background.red & 0xff); in png_do_compose()
3865 *(sp + 2) = (png_byte)((png_ptr->background.green >> 8) in png_do_compose()
3867 *(sp + 3) = (png_byte)(png_ptr->background.green in png_do_compose()
3869 *(sp + 4) = (png_byte)((png_ptr->background.blue >> 8) in png_do_compose()
3871 *(sp + 5) = (png_byte)(png_ptr->background.blue & 0xff); in png_do_compose()
3905 if (r == png_ptr->trans_color.red && in png_do_compose()
3906 g == png_ptr->trans_color.green && in png_do_compose()
3907 b == png_ptr->trans_color.blue) in png_do_compose()
3909 *sp = (png_byte)((png_ptr->background.red >> 8) & 0xff); in png_do_compose()
3910 *(sp + 1) = (png_byte)(png_ptr->background.red & 0xff); in png_do_compose()
3911 *(sp + 2) = (png_byte)((png_ptr->background.green >> 8) in png_do_compose()
3913 *(sp + 3) = (png_byte)(png_ptr->background.green in png_do_compose()
3915 *(sp + 4) = (png_byte)((png_ptr->background.blue >> 8) in png_do_compose()
3917 *(sp + 5) = (png_byte)(png_ptr->background.blue & 0xff); in png_do_compose()
3944 *sp = (png_byte)png_ptr->background.gray; in png_do_compose()
3952 png_composite(w, v, a, png_ptr->background_1.gray); in png_do_compose()
3968 *sp = (png_byte)png_ptr->background.gray; in png_do_compose()
3971 png_composite(*sp, *sp, a, png_ptr->background.gray); in png_do_compose()
3999 *sp = (png_byte)((png_ptr->background.gray >> 8) in png_do_compose()
4001 *(sp + 1) = (png_byte)(png_ptr->background.gray & 0xff); in png_do_compose()
4009 png_composite_16(v, g, a, png_ptr->background_1.gray); in png_do_compose()
4030 *sp = (png_byte)((png_ptr->background.gray >> 8) in png_do_compose()
4032 *(sp + 1) = (png_byte)(png_ptr->background.gray & 0xff); in png_do_compose()
4040 png_composite_16(v, g, a, png_ptr->background.gray); in png_do_compose()
4073 *sp = (png_byte)png_ptr->background.red; in png_do_compose()
4074 *(sp + 1) = (png_byte)png_ptr->background.green; in png_do_compose()
4075 *(sp + 2) = (png_byte)png_ptr->background.blue; in png_do_compose()
4083 png_composite(w, v, a, png_ptr->background_1.red); in png_do_compose()
4088 png_composite(w, v, a, png_ptr->background_1.green); in png_do_compose()
4093 png_composite(w, v, a, png_ptr->background_1.blue); in png_do_compose()
4109 *sp = (png_byte)png_ptr->background.red; in png_do_compose()
4110 *(sp + 1) = (png_byte)png_ptr->background.green; in png_do_compose()
4111 *(sp + 2) = (png_byte)png_ptr->background.blue; in png_do_compose()
4116 png_composite(*sp, *sp, a, png_ptr->background.red); in png_do_compose()
4119 png_ptr->background.green); in png_do_compose()
4122 png_ptr->background.blue); in png_do_compose()
4159 *sp = (png_byte)((png_ptr->background.red >> 8) & 0xff); in png_do_compose()
4160 *(sp + 1) = (png_byte)(png_ptr->background.red & 0xff); in png_do_compose()
4161 *(sp + 2) = (png_byte)((png_ptr->background.green >> 8) in png_do_compose()
4163 *(sp + 3) = (png_byte)(png_ptr->background.green in png_do_compose()
4165 *(sp + 4) = (png_byte)((png_ptr->background.blue >> 8) in png_do_compose()
4167 *(sp + 5) = (png_byte)(png_ptr->background.blue & 0xff); in png_do_compose()
4175 png_composite_16(w, v, a, png_ptr->background_1.red); in png_do_compose()
4183 png_composite_16(w, v, a, png_ptr->background_1.green); in png_do_compose()
4192 png_composite_16(w, v, a, png_ptr->background_1.blue); in png_do_compose()
4214 *sp = (png_byte)((png_ptr->background.red >> 8) & 0xff); in png_do_compose()
4215 *(sp + 1) = (png_byte)(png_ptr->background.red & 0xff); in png_do_compose()
4216 *(sp + 2) = (png_byte)((png_ptr->background.green >> 8) in png_do_compose()
4218 *(sp + 3) = (png_byte)(png_ptr->background.green in png_do_compose()
4220 *(sp + 4) = (png_byte)((png_ptr->background.blue >> 8) in png_do_compose()
4222 *(sp + 5) = (png_byte)(png_ptr->background.blue & 0xff); in png_do_compose()
4235 png_composite_16(v, r, a, png_ptr->background.red); in png_do_compose()
4239 png_composite_16(v, g, a, png_ptr->background.green); in png_do_compose()
4243 png_composite_16(v, b, a, png_ptr->background.blue); in png_do_compose()
4268 png_do_gamma(png_row_infop row_info, png_bytep row, png_structrp png_ptr) in png_do_gamma() argument
4270 png_const_bytep gamma_table = png_ptr->gamma_table; in png_do_gamma()
4271 png_const_uint_16pp gamma_16_table = png_ptr->gamma_16_table; in png_do_gamma()
4272 int gamma_shift = png_ptr->gamma_shift; in png_do_gamma()
4469 png_do_encode_alpha(png_row_infop row_info, png_bytep row, png_structrp png_ptr) in png_do_encode_alpha() argument
4479 PNG_CONST png_bytep table = png_ptr->gamma_from_1; in png_do_encode_alpha()
4498 PNG_CONST png_uint_16pp table = png_ptr->gamma_16_from_1; in png_do_encode_alpha()
4499 PNG_CONST int gamma_shift = png_ptr->gamma_shift; in png_do_encode_alpha()
4526 png_warning(png_ptr, "png_do_encode_alpha: unexpected call"); in png_do_encode_alpha()