• Home
  • Raw
  • Download

Lines Matching refs:png_ptr

25 png_set_crc_action(png_structrp png_ptr, int crit_action, int ancil_action)  in png_set_crc_action()  argument
29 if (png_ptr == NULL) in png_set_crc_action()
39 png_ptr->flags &= ~PNG_FLAG_CRC_CRITICAL_MASK; in png_set_crc_action()
40 png_ptr->flags |= PNG_FLAG_CRC_CRITICAL_USE; in png_set_crc_action()
44 png_ptr->flags &= ~PNG_FLAG_CRC_CRITICAL_MASK; in png_set_crc_action()
45 png_ptr->flags |= PNG_FLAG_CRC_CRITICAL_USE | in png_set_crc_action()
50 png_warning(png_ptr, in png_set_crc_action()
56 png_ptr->flags &= ~PNG_FLAG_CRC_CRITICAL_MASK; in png_set_crc_action()
67 png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK; in png_set_crc_action()
68 png_ptr->flags |= PNG_FLAG_CRC_ANCILLARY_USE; in png_set_crc_action()
72 png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK; in png_set_crc_action()
73 png_ptr->flags |= PNG_FLAG_CRC_ANCILLARY_USE | in png_set_crc_action()
78 png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK; in png_set_crc_action()
79 png_ptr->flags |= PNG_FLAG_CRC_ANCILLARY_NOWARN; in png_set_crc_action()
86 png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK; in png_set_crc_action()
98 png_rtran_ok(png_structrp png_ptr, int need_IHDR) in png_rtran_ok() argument
100 if (png_ptr != NULL) in png_rtran_ok()
102 if ((png_ptr->flags & PNG_FLAG_ROW_INIT) != 0) in png_rtran_ok()
103 png_app_error(png_ptr, in png_rtran_ok()
106 else if (need_IHDR && (png_ptr->mode & PNG_HAVE_IHDR) == 0) in png_rtran_ok()
107 png_app_error(png_ptr, "invalid before the PNG header has been read"); in png_rtran_ok()
112 png_ptr->flags |= PNG_FLAG_DETECT_UNINITIALIZED; in png_rtran_ok()
125 png_set_background_fixed(png_structrp png_ptr, in png_set_background_fixed() argument
131 if (png_rtran_ok(png_ptr, 0) == 0 || background_color == NULL) in png_set_background_fixed()
136 png_warning(png_ptr, "Application must supply a known background gamma"); in png_set_background_fixed()
140 png_ptr->transformations |= PNG_COMPOSE | PNG_STRIP_ALPHA; in png_set_background_fixed()
141 png_ptr->transformations &= ~PNG_ENCODE_ALPHA; in png_set_background_fixed()
142 png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; in png_set_background_fixed()
144 png_ptr->background = *background_color; in png_set_background_fixed()
145 png_ptr->background_gamma = background_gamma; in png_set_background_fixed()
146 png_ptr->background_gamma_type = (png_byte)(background_gamma_code); in png_set_background_fixed()
148 png_ptr->transformations |= PNG_BACKGROUND_EXPAND; in png_set_background_fixed()
150 png_ptr->transformations &= ~PNG_BACKGROUND_EXPAND; in png_set_background_fixed()
155 png_set_background(png_structrp png_ptr, in png_set_background() argument
159 png_set_background_fixed(png_ptr, background_color, background_gamma_code, in png_set_background()
160 need_expand, png_fixed(png_ptr, background_gamma, "png_set_background")); in png_set_background()
171 png_set_scale_16(png_structrp png_ptr) in png_set_scale_16() argument
175 if (png_rtran_ok(png_ptr, 0) == 0) in png_set_scale_16()
178 png_ptr->transformations |= PNG_SCALE_16_TO_8; in png_set_scale_16()
185 png_set_strip_16(png_structrp png_ptr) in png_set_strip_16() argument
189 if (png_rtran_ok(png_ptr, 0) == 0) in png_set_strip_16()
192 png_ptr->transformations |= PNG_16_TO_8; in png_set_strip_16()
198 png_set_strip_alpha(png_structrp png_ptr) in png_set_strip_alpha() argument
202 if (png_rtran_ok(png_ptr, 0) == 0) in png_set_strip_alpha()
205 png_ptr->transformations |= PNG_STRIP_ALPHA; in png_set_strip_alpha()
211 translate_gamma_flags(png_structrp png_ptr, png_fixed_point output_gamma, in translate_gamma_flags() argument
226 png_ptr->flags |= PNG_FLAG_ASSUME_sRGB; in translate_gamma_flags()
228 PNG_UNUSED(png_ptr) in translate_gamma_flags()
250 convert_gamma_value(png_structrp png_ptr, double output_gamma) in convert_gamma_value() argument
266 png_fixed_error(png_ptr, "gamma value"); in convert_gamma_value()
275 png_set_alpha_mode_fixed(png_structrp png_ptr, int mode, in png_set_alpha_mode_fixed() argument
283 if (png_rtran_ok(png_ptr, 0) == 0) in png_set_alpha_mode_fixed()
286 output_gamma = translate_gamma_flags(png_ptr, output_gamma, 1/*screen*/); in png_set_alpha_mode_fixed()
298 png_error(png_ptr, "output gamma out of expected range"); in png_set_alpha_mode_fixed()
325 png_ptr->transformations &= ~PNG_ENCODE_ALPHA; in png_set_alpha_mode_fixed()
326 png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; in png_set_alpha_mode_fixed()
331 png_ptr->transformations &= ~PNG_ENCODE_ALPHA; in png_set_alpha_mode_fixed()
332 png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; in png_set_alpha_mode_fixed()
339 png_ptr->transformations &= ~PNG_ENCODE_ALPHA; in png_set_alpha_mode_fixed()
340 png_ptr->flags |= PNG_FLAG_OPTIMIZE_ALPHA; in png_set_alpha_mode_fixed()
346 png_ptr->transformations |= PNG_ENCODE_ALPHA; in png_set_alpha_mode_fixed()
347 png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; in png_set_alpha_mode_fixed()
351 png_error(png_ptr, "invalid alpha mode"); in png_set_alpha_mode_fixed()
358 if (png_ptr->colorspace.gamma == 0) in png_set_alpha_mode_fixed()
360 png_ptr->colorspace.gamma = file_gamma; in png_set_alpha_mode_fixed()
361 png_ptr->colorspace.flags |= PNG_COLORSPACE_HAVE_GAMMA; in png_set_alpha_mode_fixed()
365 png_ptr->screen_gamma = output_gamma; in png_set_alpha_mode_fixed()
373 memset(&png_ptr->background, 0, (sizeof png_ptr->background)); in png_set_alpha_mode_fixed()
374 png_ptr->background_gamma = png_ptr->colorspace.gamma; /* just in case */ in png_set_alpha_mode_fixed()
375 png_ptr->background_gamma_type = PNG_BACKGROUND_GAMMA_FILE; in png_set_alpha_mode_fixed()
376 png_ptr->transformations &= ~PNG_BACKGROUND_EXPAND; in png_set_alpha_mode_fixed()
378 if ((png_ptr->transformations & PNG_COMPOSE) != 0) in png_set_alpha_mode_fixed()
379 png_error(png_ptr, in png_set_alpha_mode_fixed()
382 png_ptr->transformations |= PNG_COMPOSE; in png_set_alpha_mode_fixed()
388 png_set_alpha_mode(png_structrp png_ptr, int mode, double output_gamma) in png_set_alpha_mode() argument
390 png_set_alpha_mode_fixed(png_ptr, mode, convert_gamma_value(png_ptr, in png_set_alpha_mode()
416 png_set_quantize(png_structrp png_ptr, png_colorp palette, in png_set_quantize() argument
422 if (png_rtran_ok(png_ptr, 0) == 0) in png_set_quantize()
425 png_ptr->transformations |= PNG_QUANTIZE; in png_set_quantize()
431 png_ptr->quantize_index = (png_bytep)png_malloc(png_ptr, in png_set_quantize()
434 png_ptr->quantize_index[i] = (png_byte)i; in png_set_quantize()
448 png_ptr->quantize_sort = (png_bytep)png_malloc(png_ptr, in png_set_quantize()
453 png_ptr->quantize_sort[i] = (png_byte)i; in png_set_quantize()
470 if (histogram[png_ptr->quantize_sort[j]] in png_set_quantize()
471 < histogram[png_ptr->quantize_sort[j + 1]]) in png_set_quantize()
475 t = png_ptr->quantize_sort[j]; in png_set_quantize()
476 png_ptr->quantize_sort[j] = png_ptr->quantize_sort[j + 1]; in png_set_quantize()
477 png_ptr->quantize_sort[j + 1] = t; in png_set_quantize()
496 if ((int)png_ptr->quantize_sort[i] >= maximum_colors) in png_set_quantize()
500 while ((int)png_ptr->quantize_sort[j] >= maximum_colors); in png_set_quantize()
516 if ((int)png_ptr->quantize_sort[i] >= maximum_colors) in png_set_quantize()
522 while ((int)png_ptr->quantize_sort[j] >= maximum_colors); in png_set_quantize()
528 png_ptr->quantize_index[j] = (png_byte)i; in png_set_quantize()
529 png_ptr->quantize_index[i] = (png_byte)j; in png_set_quantize()
536 if ((int)png_ptr->quantize_index[i] >= maximum_colors) in png_set_quantize()
541 d_index = png_ptr->quantize_index[i]; in png_set_quantize()
556 png_ptr->quantize_index[i] = (png_byte)min_k; in png_set_quantize()
560 png_free(png_ptr, png_ptr->quantize_sort); in png_set_quantize()
561 png_ptr->quantize_sort = NULL; in png_set_quantize()
582 png_ptr->index_to_palette = (png_bytep)png_malloc(png_ptr, in png_set_quantize()
584 png_ptr->palette_to_index = (png_bytep)png_malloc(png_ptr, in png_set_quantize()
590 png_ptr->index_to_palette[i] = (png_byte)i; in png_set_quantize()
591 png_ptr->palette_to_index[i] = (png_byte)i; in png_set_quantize()
594 hash = (png_dsortpp)png_calloc(png_ptr, (png_uint_32)(769 * in png_set_quantize()
624 t = (png_dsortp)png_malloc_warn(png_ptr, in png_set_quantize()
649 if ((int)png_ptr->index_to_palette[p->left] in png_set_quantize()
651 (int)png_ptr->index_to_palette[p->right] in png_set_quantize()
668 palette[png_ptr->index_to_palette[j]] in png_set_quantize()
676 if (png_ptr->quantize_index[k] == in png_set_quantize()
677 png_ptr->index_to_palette[j]) in png_set_quantize()
678 png_ptr->quantize_index[k] = in png_set_quantize()
679 png_ptr->index_to_palette[next_j]; in png_set_quantize()
681 if ((int)png_ptr->quantize_index[k] == in png_set_quantize()
683 png_ptr->quantize_index[k] = in png_set_quantize()
684 png_ptr->index_to_palette[j]; in png_set_quantize()
688 png_ptr->index_to_palette[png_ptr->palette_to_index in png_set_quantize()
689 [num_new_palette]] = png_ptr->index_to_palette[j]; in png_set_quantize()
691 png_ptr->palette_to_index[png_ptr->index_to_palette[j]] in png_set_quantize()
692 = png_ptr->palette_to_index[num_new_palette]; in png_set_quantize()
694 png_ptr->index_to_palette[j] = in png_set_quantize()
697 png_ptr->palette_to_index[num_new_palette] = in png_set_quantize()
716 png_free(png_ptr, p); in png_set_quantize()
724 png_free(png_ptr, hash); in png_set_quantize()
725 png_free(png_ptr, png_ptr->palette_to_index); in png_set_quantize()
726 png_free(png_ptr, png_ptr->index_to_palette); in png_set_quantize()
727 png_ptr->palette_to_index = NULL; in png_set_quantize()
728 png_ptr->index_to_palette = NULL; in png_set_quantize()
732 if (png_ptr->palette == NULL) in png_set_quantize()
734 png_ptr->palette = palette; in png_set_quantize()
736 png_ptr->num_palette = (png_uint_16)num_palette; in png_set_quantize()
749 png_ptr->palette_lookup = (png_bytep)png_calloc(png_ptr, in png_set_quantize()
752 distance = (png_bytep)png_malloc(png_ptr, (png_uint_32)(num_entries * in png_set_quantize()
790 png_ptr->palette_lookup[d_index] = (png_byte)i; in png_set_quantize()
797 png_free(png_ptr, distance); in png_set_quantize()
804 png_set_gamma_fixed(png_structrp png_ptr, png_fixed_point scrn_gamma, in png_set_gamma_fixed() argument
809 if (png_rtran_ok(png_ptr, 0) == 0) in png_set_gamma_fixed()
813 scrn_gamma = translate_gamma_flags(png_ptr, scrn_gamma, 1/*screen*/); in png_set_gamma_fixed()
814 file_gamma = translate_gamma_flags(png_ptr, file_gamma, 0/*file*/); in png_set_gamma_fixed()
828 png_error(png_ptr, "invalid file gamma in png_set_gamma"); in png_set_gamma_fixed()
831 png_error(png_ptr, "invalid screen gamma in png_set_gamma"); in png_set_gamma_fixed()
837 png_ptr->colorspace.gamma = file_gamma; in png_set_gamma_fixed()
838 png_ptr->colorspace.flags |= PNG_COLORSPACE_HAVE_GAMMA; in png_set_gamma_fixed()
839 png_ptr->screen_gamma = scrn_gamma; in png_set_gamma_fixed()
844 png_set_gamma(png_structrp png_ptr, double scrn_gamma, double file_gamma) in png_set_gamma() argument
846 png_set_gamma_fixed(png_ptr, convert_gamma_value(png_ptr, scrn_gamma), in png_set_gamma()
847 convert_gamma_value(png_ptr, file_gamma)); in png_set_gamma()
858 png_set_expand(png_structrp png_ptr) in png_set_expand() argument
862 if (png_rtran_ok(png_ptr, 0) == 0) in png_set_expand()
865 png_ptr->transformations |= (PNG_EXPAND | PNG_EXPAND_tRNS); in png_set_expand()
888 png_set_palette_to_rgb(png_structrp png_ptr) in png_set_palette_to_rgb() argument
892 if (png_rtran_ok(png_ptr, 0) == 0) in png_set_palette_to_rgb()
895 png_ptr->transformations |= (PNG_EXPAND | PNG_EXPAND_tRNS); in png_set_palette_to_rgb()
900 png_set_expand_gray_1_2_4_to_8(png_structrp png_ptr) in png_set_expand_gray_1_2_4_to_8() argument
904 if (png_rtran_ok(png_ptr, 0) == 0) in png_set_expand_gray_1_2_4_to_8()
907 png_ptr->transformations |= PNG_EXPAND; in png_set_expand_gray_1_2_4_to_8()
912 png_set_tRNS_to_alpha(png_structrp png_ptr) in png_set_tRNS_to_alpha() argument
916 if (png_rtran_ok(png_ptr, 0) == 0) in png_set_tRNS_to_alpha()
919 png_ptr->transformations |= (PNG_EXPAND | PNG_EXPAND_tRNS); in png_set_tRNS_to_alpha()
928 png_set_expand_16(png_structrp png_ptr) in png_set_expand_16() argument
932 if (png_rtran_ok(png_ptr, 0) == 0) in png_set_expand_16()
935 png_ptr->transformations |= (PNG_EXPAND_16 | PNG_EXPAND | PNG_EXPAND_tRNS); in png_set_expand_16()
941 png_set_gray_to_rgb(png_structrp png_ptr) in png_set_gray_to_rgb() argument
945 if (png_rtran_ok(png_ptr, 0) == 0) in png_set_gray_to_rgb()
949 png_set_expand_gray_1_2_4_to_8(png_ptr); in png_set_gray_to_rgb()
950 png_ptr->transformations |= PNG_GRAY_TO_RGB; in png_set_gray_to_rgb()
956 png_set_rgb_to_gray_fixed(png_structrp png_ptr, int error_action, in png_set_rgb_to_gray_fixed() argument
963 if (png_rtran_ok(png_ptr, 1) == 0) in png_set_rgb_to_gray_fixed()
969 png_ptr->transformations |= PNG_RGB_TO_GRAY; in png_set_rgb_to_gray_fixed()
973 png_ptr->transformations |= PNG_RGB_TO_GRAY_WARN; in png_set_rgb_to_gray_fixed()
977 png_ptr->transformations |= PNG_RGB_TO_GRAY_ERR; in png_set_rgb_to_gray_fixed()
981 png_error(png_ptr, "invalid error action to rgb_to_gray"); in png_set_rgb_to_gray_fixed()
984 if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) in png_set_rgb_to_gray_fixed()
986 png_ptr->transformations |= PNG_EXPAND; in png_set_rgb_to_gray_fixed()
992 png_error(png_ptr, in png_set_rgb_to_gray_fixed()
1011 png_ptr->rgb_to_gray_red_coeff = red_int; in png_set_rgb_to_gray_fixed()
1012 png_ptr->rgb_to_gray_green_coeff = green_int; in png_set_rgb_to_gray_fixed()
1013 png_ptr->rgb_to_gray_coefficients_set = 1; in png_set_rgb_to_gray_fixed()
1019 png_app_warning(png_ptr, in png_set_rgb_to_gray_fixed()
1028 if (png_ptr->rgb_to_gray_red_coeff == 0 && in png_set_rgb_to_gray_fixed()
1029 png_ptr->rgb_to_gray_green_coeff == 0) in png_set_rgb_to_gray_fixed()
1031 png_ptr->rgb_to_gray_red_coeff = 6968; in png_set_rgb_to_gray_fixed()
1032 png_ptr->rgb_to_gray_green_coeff = 23434; in png_set_rgb_to_gray_fixed()
1045 png_set_rgb_to_gray(png_structrp png_ptr, int error_action, double red, in png_set_rgb_to_gray() argument
1048 png_set_rgb_to_gray_fixed(png_ptr, error_action, in png_set_rgb_to_gray()
1049 png_fixed(png_ptr, red, "rgb to gray red coefficient"), in png_set_rgb_to_gray()
1050 png_fixed(png_ptr, green, "rgb to gray green coefficient")); in png_set_rgb_to_gray()
1059 png_set_read_user_transform_fn(png_structrp png_ptr, png_user_transform_ptr in png_set_read_user_transform_fn() argument
1065 png_ptr->transformations |= PNG_USER_TRANSFORM; in png_set_read_user_transform_fn()
1066 png_ptr->read_user_transform_fn = read_user_transform_fn; in png_set_read_user_transform_fn()
1103 png_init_palette_transformations(png_structrp png_ptr) in png_init_palette_transformations() argument
1116 if (png_ptr->num_trans > 0) in png_init_palette_transformations()
1121 for (i=0; i<png_ptr->num_trans; ++i) in png_init_palette_transformations()
1123 if (png_ptr->trans_alpha[i] == 255) in png_init_palette_transformations()
1125 else if (png_ptr->trans_alpha[i] == 0) in png_init_palette_transformations()
1143 png_ptr->transformations &= ~PNG_ENCODE_ALPHA; in png_init_palette_transformations()
1144 png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; in png_init_palette_transformations()
1147 png_ptr->transformations &= ~(PNG_COMPOSE | PNG_BACKGROUND_EXPAND); in png_init_palette_transformations()
1159 if ((png_ptr->transformations & PNG_BACKGROUND_EXPAND) != 0 && in png_init_palette_transformations()
1160 (png_ptr->transformations & PNG_EXPAND) != 0) in png_init_palette_transformations()
1163 png_ptr->background.red = in png_init_palette_transformations()
1164 png_ptr->palette[png_ptr->background.index].red; in png_init_palette_transformations()
1165 png_ptr->background.green = in png_init_palette_transformations()
1166 png_ptr->palette[png_ptr->background.index].green; in png_init_palette_transformations()
1167 png_ptr->background.blue = in png_init_palette_transformations()
1168 png_ptr->palette[png_ptr->background.index].blue; in png_init_palette_transformations()
1171 if ((png_ptr->transformations & PNG_INVERT_ALPHA) != 0) in png_init_palette_transformations()
1173 if ((png_ptr->transformations & PNG_EXPAND_tRNS) == 0) in png_init_palette_transformations()
1178 int i, istop = png_ptr->num_trans; in png_init_palette_transformations()
1181 png_ptr->trans_alpha[i] = (png_byte)(255 - in png_init_palette_transformations()
1182 png_ptr->trans_alpha[i]); in png_init_palette_transformations()
1192 png_init_rgb_transformations(png_structrp png_ptr) in png_init_rgb_transformations() argument
1198 int input_has_alpha = (png_ptr->color_type & PNG_COLOR_MASK_ALPHA) != 0; in png_init_rgb_transformations()
1199 int input_has_transparency = png_ptr->num_trans > 0; in png_init_rgb_transformations()
1209 png_ptr->transformations &= ~PNG_ENCODE_ALPHA; in png_init_rgb_transformations()
1210 png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; in png_init_rgb_transformations()
1214 png_ptr->transformations &= ~(PNG_COMPOSE | PNG_BACKGROUND_EXPAND); in png_init_rgb_transformations()
1226 if ((png_ptr->transformations & PNG_BACKGROUND_EXPAND) != 0 && in png_init_rgb_transformations()
1227 (png_ptr->transformations & PNG_EXPAND) != 0 && in png_init_rgb_transformations()
1228 (png_ptr->color_type & PNG_COLOR_MASK_COLOR) == 0) in png_init_rgb_transformations()
1233 int gray = png_ptr->background.gray; in png_init_rgb_transformations()
1234 int trans_gray = png_ptr->trans_color.gray; in png_init_rgb_transformations()
1236 switch (png_ptr->bit_depth) in png_init_rgb_transformations()
1263 png_ptr->background.red = png_ptr->background.green = in png_init_rgb_transformations()
1264 png_ptr->background.blue = (png_uint_16)gray; in png_init_rgb_transformations()
1266 if ((png_ptr->transformations & PNG_EXPAND_tRNS) == 0) in png_init_rgb_transformations()
1268 png_ptr->trans_color.red = png_ptr->trans_color.green = in png_init_rgb_transformations()
1269 png_ptr->trans_color.blue = (png_uint_16)trans_gray; in png_init_rgb_transformations()
1277 png_init_read_transformations(png_structrp png_ptr) in png_init_read_transformations() argument
1302 if (png_ptr->colorspace.gamma != 0) /* has been set */ in png_init_read_transformations()
1304 if (png_ptr->screen_gamma != 0) /* screen set too */ in png_init_read_transformations()
1305 gamma_correction = png_gamma_threshold(png_ptr->colorspace.gamma, in png_init_read_transformations()
1306 png_ptr->screen_gamma); in png_init_read_transformations()
1312 png_ptr->screen_gamma = png_reciprocal(png_ptr->colorspace.gamma); in png_init_read_transformations()
1315 else if (png_ptr->screen_gamma != 0) in png_init_read_transformations()
1321 png_ptr->colorspace.gamma = png_reciprocal(png_ptr->screen_gamma); in png_init_read_transformations()
1329 png_ptr->screen_gamma = png_ptr->colorspace.gamma = PNG_FP_1; in png_init_read_transformations()
1332 png_ptr->colorspace.flags |= PNG_COLORSPACE_HAVE_GAMMA; in png_init_read_transformations()
1343 png_ptr->transformations |= PNG_GAMMA; in png_init_read_transformations()
1346 png_ptr->transformations &= ~PNG_GAMMA; in png_init_read_transformations()
1380 if ((png_ptr->transformations & PNG_STRIP_ALPHA) != 0 && in png_init_read_transformations()
1381 (png_ptr->transformations & PNG_COMPOSE) == 0) in png_init_read_transformations()
1388 png_ptr->transformations &= ~(PNG_BACKGROUND_EXPAND | PNG_ENCODE_ALPHA | in png_init_read_transformations()
1390 png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; in png_init_read_transformations()
1399 png_ptr->num_trans = 0; in png_init_read_transformations()
1407 if (png_gamma_significant(png_ptr->screen_gamma) == 0) in png_init_read_transformations()
1409 png_ptr->transformations &= ~PNG_ENCODE_ALPHA; in png_init_read_transformations()
1410 png_ptr->flags &= ~PNG_FLAG_OPTIMIZE_ALPHA; in png_init_read_transformations()
1418 if ((png_ptr->transformations & PNG_RGB_TO_GRAY) != 0) in png_init_read_transformations()
1419 png_colorspace_set_rgb_coefficients(png_ptr); in png_init_read_transformations()
1439 if ((png_ptr->transformations & PNG_BACKGROUND_EXPAND) != 0) in png_init_read_transformations()
1444 if ((png_ptr->color_type & PNG_COLOR_MASK_COLOR) == 0) in png_init_read_transformations()
1445 png_ptr->mode |= PNG_BACKGROUND_IS_GRAY; in png_init_read_transformations()
1448 else if ((png_ptr->transformations & PNG_COMPOSE) != 0) in png_init_read_transformations()
1455 if ((png_ptr->transformations & PNG_GRAY_TO_RGB) != 0) in png_init_read_transformations()
1457 if (png_ptr->background.red == png_ptr->background.green && in png_init_read_transformations()
1458 png_ptr->background.red == png_ptr->background.blue) in png_init_read_transformations()
1460 png_ptr->mode |= PNG_BACKGROUND_IS_GRAY; in png_init_read_transformations()
1461 png_ptr->background.gray = png_ptr->background.red; in png_init_read_transformations()
1479 if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) in png_init_read_transformations()
1480 png_init_palette_transformations(png_ptr); in png_init_read_transformations()
1483 png_init_rgb_transformations(png_ptr); in png_init_read_transformations()
1487 if ((png_ptr->transformations & PNG_EXPAND_16) != 0 && in png_init_read_transformations()
1488 (png_ptr->transformations & PNG_COMPOSE) != 0 && in png_init_read_transformations()
1489 (png_ptr->transformations & PNG_BACKGROUND_EXPAND) == 0 && in png_init_read_transformations()
1490 png_ptr->bit_depth != 16) in png_init_read_transformations()
1503 CHOP(png_ptr->background.red); in png_init_read_transformations()
1504 CHOP(png_ptr->background.green); in png_init_read_transformations()
1505 CHOP(png_ptr->background.blue); in png_init_read_transformations()
1506 CHOP(png_ptr->background.gray); in png_init_read_transformations()
1514 if ((png_ptr->transformations & (PNG_16_TO_8|PNG_SCALE_16_TO_8)) != 0 && in png_init_read_transformations()
1515 (png_ptr->transformations & PNG_COMPOSE) != 0 && in png_init_read_transformations()
1516 (png_ptr->transformations & PNG_BACKGROUND_EXPAND) == 0 && in png_init_read_transformations()
1517 png_ptr->bit_depth == 16) in png_init_read_transformations()
1525 png_ptr->background.red = (png_uint_16)(png_ptr->background.red * 257); in png_init_read_transformations()
1526 png_ptr->background.green = in png_init_read_transformations()
1527 (png_uint_16)(png_ptr->background.green * 257); in png_init_read_transformations()
1528 png_ptr->background.blue = (png_uint_16)(png_ptr->background.blue * 257); in png_init_read_transformations()
1529 png_ptr->background.gray = (png_uint_16)(png_ptr->background.gray * 257); in png_init_read_transformations()
1544 png_ptr->background_1 = png_ptr->background; in png_init_read_transformations()
1560 if ((png_ptr->transformations & PNG_GAMMA) != 0 || in png_init_read_transformations()
1561 ((png_ptr->transformations & PNG_RGB_TO_GRAY) != 0 && in png_init_read_transformations()
1562 (png_gamma_significant(png_ptr->colorspace.gamma) != 0 || in png_init_read_transformations()
1563 png_gamma_significant(png_ptr->screen_gamma) != 0)) || in png_init_read_transformations()
1564 ((png_ptr->transformations & PNG_COMPOSE) != 0 && in png_init_read_transformations()
1565 (png_gamma_significant(png_ptr->colorspace.gamma) != 0 || in png_init_read_transformations()
1566 png_gamma_significant(png_ptr->screen_gamma) != 0 in png_init_read_transformations()
1568 || (png_ptr->background_gamma_type == PNG_BACKGROUND_GAMMA_UNIQUE && in png_init_read_transformations()
1569 png_gamma_significant(png_ptr->background_gamma) != 0) in png_init_read_transformations()
1571 )) || ((png_ptr->transformations & PNG_ENCODE_ALPHA) != 0 && in png_init_read_transformations()
1572 png_gamma_significant(png_ptr->screen_gamma) != 0)) in png_init_read_transformations()
1574 png_build_gamma_table(png_ptr, png_ptr->bit_depth); in png_init_read_transformations()
1577 if ((png_ptr->transformations & PNG_COMPOSE) != 0) in png_init_read_transformations()
1585 if ((png_ptr->transformations & PNG_RGB_TO_GRAY) != 0) in png_init_read_transformations()
1586 png_warning(png_ptr, in png_init_read_transformations()
1589 if ((png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) != 0) in png_init_read_transformations()
1595 png_colorp palette = png_ptr->palette; in png_init_read_transformations()
1596 int num_palette = png_ptr->num_palette; in png_init_read_transformations()
1598 if (png_ptr->background_gamma_type == PNG_BACKGROUND_GAMMA_FILE) in png_init_read_transformations()
1601 back.red = png_ptr->gamma_table[png_ptr->background.red]; in png_init_read_transformations()
1602 back.green = png_ptr->gamma_table[png_ptr->background.green]; in png_init_read_transformations()
1603 back.blue = png_ptr->gamma_table[png_ptr->background.blue]; in png_init_read_transformations()
1605 back_1.red = png_ptr->gamma_to_1[png_ptr->background.red]; in png_init_read_transformations()
1606 back_1.green = png_ptr->gamma_to_1[png_ptr->background.green]; in png_init_read_transformations()
1607 back_1.blue = png_ptr->gamma_to_1[png_ptr->background.blue]; in png_init_read_transformations()
1613 switch (png_ptr->background_gamma_type) in png_init_read_transformations()
1616 g = (png_ptr->screen_gamma); in png_init_read_transformations()
1621 g = png_reciprocal(png_ptr->colorspace.gamma); in png_init_read_transformations()
1622 gs = png_reciprocal2(png_ptr->colorspace.gamma, in png_init_read_transformations()
1623 png_ptr->screen_gamma); in png_init_read_transformations()
1627 g = png_reciprocal(png_ptr->background_gamma); in png_init_read_transformations()
1628 gs = png_reciprocal2(png_ptr->background_gamma, in png_init_read_transformations()
1629 png_ptr->screen_gamma); in png_init_read_transformations()
1639 back.red = png_gamma_8bit_correct(png_ptr->background.red, in png_init_read_transformations()
1641 back.green = png_gamma_8bit_correct(png_ptr->background.green, in png_init_read_transformations()
1643 back.blue = png_gamma_8bit_correct(png_ptr->background.blue, in png_init_read_transformations()
1649 back.red = (png_byte)png_ptr->background.red; in png_init_read_transformations()
1650 back.green = (png_byte)png_ptr->background.green; in png_init_read_transformations()
1651 back.blue = (png_byte)png_ptr->background.blue; in png_init_read_transformations()
1656 back_1.red = png_gamma_8bit_correct(png_ptr->background.red, in png_init_read_transformations()
1659 png_ptr->background.green, g); in png_init_read_transformations()
1660 back_1.blue = png_gamma_8bit_correct(png_ptr->background.blue, in png_init_read_transformations()
1666 back_1.red = (png_byte)png_ptr->background.red; in png_init_read_transformations()
1667 back_1.green = (png_byte)png_ptr->background.green; in png_init_read_transformations()
1668 back_1.blue = (png_byte)png_ptr->background.blue; in png_init_read_transformations()
1674 if (i < (int)png_ptr->num_trans && in png_init_read_transformations()
1675 png_ptr->trans_alpha[i] != 0xff) in png_init_read_transformations()
1677 if (png_ptr->trans_alpha[i] == 0) in png_init_read_transformations()
1685 v = png_ptr->gamma_to_1[palette[i].red]; in png_init_read_transformations()
1686 png_composite(w, v, png_ptr->trans_alpha[i], back_1.red); in png_init_read_transformations()
1687 palette[i].red = png_ptr->gamma_from_1[w]; in png_init_read_transformations()
1689 v = png_ptr->gamma_to_1[palette[i].green]; in png_init_read_transformations()
1690 png_composite(w, v, png_ptr->trans_alpha[i], back_1.green); in png_init_read_transformations()
1691 palette[i].green = png_ptr->gamma_from_1[w]; in png_init_read_transformations()
1693 v = png_ptr->gamma_to_1[palette[i].blue]; in png_init_read_transformations()
1694 png_composite(w, v, png_ptr->trans_alpha[i], back_1.blue); in png_init_read_transformations()
1695 palette[i].blue = png_ptr->gamma_from_1[w]; in png_init_read_transformations()
1700 palette[i].red = png_ptr->gamma_table[palette[i].red]; in png_init_read_transformations()
1701 palette[i].green = png_ptr->gamma_table[palette[i].green]; in png_init_read_transformations()
1702 palette[i].blue = png_ptr->gamma_table[palette[i].blue]; in png_init_read_transformations()
1712 png_ptr->transformations &= ~(PNG_COMPOSE | PNG_GAMMA); in png_init_read_transformations()
1722 switch (png_ptr->background_gamma_type) in png_init_read_transformations()
1725 g = png_ptr->screen_gamma; in png_init_read_transformations()
1730 g = png_reciprocal(png_ptr->colorspace.gamma); in png_init_read_transformations()
1731 gs = png_reciprocal2(png_ptr->colorspace.gamma, in png_init_read_transformations()
1732 png_ptr->screen_gamma); in png_init_read_transformations()
1736 g = png_reciprocal(png_ptr->background_gamma); in png_init_read_transformations()
1737 gs = png_reciprocal2(png_ptr->background_gamma, in png_init_read_transformations()
1738 png_ptr->screen_gamma); in png_init_read_transformations()
1742 png_error(png_ptr, "invalid background gamma type"); in png_init_read_transformations()
1749 png_ptr->background_1.gray = png_gamma_correct(png_ptr, in png_init_read_transformations()
1750 png_ptr->background.gray, g); in png_init_read_transformations()
1753 png_ptr->background.gray = png_gamma_correct(png_ptr, in png_init_read_transformations()
1754 png_ptr->background.gray, gs); in png_init_read_transformations()
1756 if ((png_ptr->background.red != png_ptr->background.green) || in png_init_read_transformations()
1757 (png_ptr->background.red != png_ptr->background.blue) || in png_init_read_transformations()
1758 (png_ptr->background.red != png_ptr->background.gray)) in png_init_read_transformations()
1763 png_ptr->background_1.red = png_gamma_correct(png_ptr, in png_init_read_transformations()
1764 png_ptr->background.red, g); in png_init_read_transformations()
1766 png_ptr->background_1.green = png_gamma_correct(png_ptr, in png_init_read_transformations()
1767 png_ptr->background.green, g); in png_init_read_transformations()
1769 png_ptr->background_1.blue = png_gamma_correct(png_ptr, in png_init_read_transformations()
1770 png_ptr->background.blue, g); in png_init_read_transformations()
1775 png_ptr->background.red = png_gamma_correct(png_ptr, in png_init_read_transformations()
1776 png_ptr->background.red, gs); in png_init_read_transformations()
1778 png_ptr->background.green = png_gamma_correct(png_ptr, in png_init_read_transformations()
1779 png_ptr->background.green, gs); in png_init_read_transformations()
1781 png_ptr->background.blue = png_gamma_correct(png_ptr, in png_init_read_transformations()
1782 png_ptr->background.blue, gs); in png_init_read_transformations()
1789 png_ptr->background_1.red = png_ptr->background_1.green in png_init_read_transformations()
1790 = png_ptr->background_1.blue = png_ptr->background_1.gray; in png_init_read_transformations()
1792 png_ptr->background.red = png_ptr->background.green in png_init_read_transformations()
1793 = png_ptr->background.blue = png_ptr->background.gray; in png_init_read_transformations()
1797 png_ptr->background_gamma_type = PNG_BACKGROUND_GAMMA_SCREEN; in png_init_read_transformations()
1804 if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE in png_init_read_transformations()
1807 && ((png_ptr->transformations & PNG_EXPAND) == 0 || in png_init_read_transformations()
1808 (png_ptr->transformations & PNG_RGB_TO_GRAY) == 0) in png_init_read_transformations()
1812 png_colorp palette = png_ptr->palette; in png_init_read_transformations()
1813 int num_palette = png_ptr->num_palette; in png_init_read_transformations()
1821 palette[i].red = png_ptr->gamma_table[palette[i].red]; in png_init_read_transformations()
1822 palette[i].green = png_ptr->gamma_table[palette[i].green]; in png_init_read_transformations()
1823 palette[i].blue = png_ptr->gamma_table[palette[i].blue]; in png_init_read_transformations()
1827 png_ptr->transformations &= ~PNG_GAMMA; in png_init_read_transformations()
1837 if ((png_ptr->transformations & PNG_COMPOSE) != 0 && in png_init_read_transformations()
1838 (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)) in png_init_read_transformations()
1841 int istop = (int)png_ptr->num_trans; in png_init_read_transformations()
1843 png_colorp palette = png_ptr->palette; in png_init_read_transformations()
1845 back.red = (png_byte)png_ptr->background.red; in png_init_read_transformations()
1846 back.green = (png_byte)png_ptr->background.green; in png_init_read_transformations()
1847 back.blue = (png_byte)png_ptr->background.blue; in png_init_read_transformations()
1851 if (png_ptr->trans_alpha[i] == 0) in png_init_read_transformations()
1856 else if (png_ptr->trans_alpha[i] != 0xff) in png_init_read_transformations()
1860 png_ptr->trans_alpha[i], back.red); in png_init_read_transformations()
1863 png_ptr->trans_alpha[i], back.green); in png_init_read_transformations()
1866 png_ptr->trans_alpha[i], back.blue); in png_init_read_transformations()
1870 png_ptr->transformations &= ~PNG_COMPOSE; in png_init_read_transformations()
1875 if ((png_ptr->transformations & PNG_SHIFT) != 0 && in png_init_read_transformations()
1876 (png_ptr->transformations & PNG_EXPAND) == 0 && in png_init_read_transformations()
1877 (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)) in png_init_read_transformations()
1880 int istop = png_ptr->num_palette; in png_init_read_transformations()
1881 int shift = 8 - png_ptr->sig_bit.red; in png_init_read_transformations()
1883 png_ptr->transformations &= ~PNG_SHIFT; in png_init_read_transformations()
1892 int component = png_ptr->palette[i].red; in png_init_read_transformations()
1895 png_ptr->palette[i].red = (png_byte)component; in png_init_read_transformations()
1898 shift = 8 - png_ptr->sig_bit.green; in png_init_read_transformations()
1902 int component = png_ptr->palette[i].green; in png_init_read_transformations()
1905 png_ptr->palette[i].green = (png_byte)component; in png_init_read_transformations()
1908 shift = 8 - png_ptr->sig_bit.blue; in png_init_read_transformations()
1912 int component = png_ptr->palette[i].blue; in png_init_read_transformations()
1915 png_ptr->palette[i].blue = (png_byte)component; in png_init_read_transformations()
1926 png_read_transform_info(png_structrp png_ptr, png_inforp info_ptr) in png_read_transform_info() argument
1931 if ((png_ptr->transformations & PNG_EXPAND) != 0) in png_read_transform_info()
1939 if (png_ptr->num_trans > 0) in png_read_transform_info()
1948 if (png_ptr->palette == NULL) in png_read_transform_info()
1949 png_error (png_ptr, "Palette is NULL in indexed image"); in png_read_transform_info()
1953 if (png_ptr->num_trans != 0) in png_read_transform_info()
1955 if ((png_ptr->transformations & PNG_EXPAND_tRNS) != 0) in png_read_transform_info()
1971 if ((png_ptr->transformations & PNG_COMPOSE) != 0) in png_read_transform_info()
1972 info_ptr->background = png_ptr->background; in png_read_transform_info()
1985 info_ptr->colorspace.gamma = png_ptr->colorspace.gamma; in png_read_transform_info()
1992 if ((png_ptr->transformations & PNG_SCALE_16_TO_8) != 0) in png_read_transform_info()
1997 if ((png_ptr->transformations & PNG_16_TO_8) != 0) in png_read_transform_info()
2011 png_ptr->transformations |= PNG_16_TO_8; in png_read_transform_info()
2016 png_ptr->transformations |= PNG_SCALE_16_TO_8; in png_read_transform_info()
2027 if ((png_ptr->transformations & PNG_GRAY_TO_RGB) != 0) in png_read_transform_info()
2033 if ((png_ptr->transformations & PNG_RGB_TO_GRAY) != 0) in png_read_transform_info()
2039 if ((png_ptr->transformations & PNG_QUANTIZE) != 0) in png_read_transform_info()
2043 png_ptr->palette_lookup != 0 && info_ptr->bit_depth == 8) in png_read_transform_info()
2051 if ((png_ptr->transformations & PNG_EXPAND_16) != 0 && in png_read_transform_info()
2060 if ((png_ptr->transformations & PNG_PACK) != 0 && in png_read_transform_info()
2075 if ((png_ptr->transformations & PNG_STRIP_ALPHA) != 0) in png_read_transform_info()
2088 if ((png_ptr->transformations & PNG_FILLER) != 0 && in png_read_transform_info()
2094 if ((png_ptr->transformations & PNG_ADD_ALPHA) != 0) in png_read_transform_info()
2101 if ((png_ptr->transformations & PNG_USER_TRANSFORM) != 0) in png_read_transform_info()
2103 if (png_ptr->user_transform_depth != 0) in png_read_transform_info()
2104 info_ptr->bit_depth = png_ptr->user_transform_depth; in png_read_transform_info()
2106 if (png_ptr->user_transform_channels != 0) in png_read_transform_info()
2107 info_ptr->channels = png_ptr->user_transform_channels; in png_read_transform_info()
2122 png_ptr->info_rowbytes = info_ptr->rowbytes; in png_read_transform_info()
2125 if (png_ptr != NULL) in png_read_transform_info()
2986 png_do_rgb_to_gray(png_structrp png_ptr, png_row_infop row_info, png_bytep row) in png_do_rgb_to_gray() argument
2996 PNG_CONST png_uint_32 rc = png_ptr->rgb_to_gray_red_coeff; in png_do_rgb_to_gray()
2997 PNG_CONST png_uint_32 gc = png_ptr->rgb_to_gray_green_coeff; in png_do_rgb_to_gray()
3011 if (png_ptr->gamma_from_1 != NULL && png_ptr->gamma_to_1 != NULL) in png_do_rgb_to_gray()
3025 red = png_ptr->gamma_to_1[red]; in png_do_rgb_to_gray()
3026 green = png_ptr->gamma_to_1[green]; in png_do_rgb_to_gray()
3027 blue = png_ptr->gamma_to_1[blue]; in png_do_rgb_to_gray()
3030 *(dp++) = png_ptr->gamma_from_1[ in png_do_rgb_to_gray()
3039 if (png_ptr->gamma_table != NULL) in png_do_rgb_to_gray()
3040 red = png_ptr->gamma_table[red]; in png_do_rgb_to_gray()
3083 if (png_ptr->gamma_16_to_1 != NULL && png_ptr->gamma_16_from_1 != NULL) in png_do_rgb_to_gray()
3100 if (png_ptr->gamma_16_table != NULL) in png_do_rgb_to_gray()
3101 w = png_ptr->gamma_16_table[(red & 0xff) in png_do_rgb_to_gray()
3102 >> png_ptr->gamma_shift][red >> 8]; in png_do_rgb_to_gray()
3110 png_uint_16 red_1 = png_ptr->gamma_16_to_1[(red & 0xff) in png_do_rgb_to_gray()
3111 >> png_ptr->gamma_shift][red>>8]; in png_do_rgb_to_gray()
3113 png_ptr->gamma_16_to_1[(green & 0xff) >> in png_do_rgb_to_gray()
3114 png_ptr->gamma_shift][green>>8]; in png_do_rgb_to_gray()
3115 png_uint_16 blue_1 = png_ptr->gamma_16_to_1[(blue & 0xff) in png_do_rgb_to_gray()
3116 >> png_ptr->gamma_shift][blue>>8]; in png_do_rgb_to_gray()
3119 w = png_ptr->gamma_16_from_1[(gray16 & 0xff) >> in png_do_rgb_to_gray()
3120 png_ptr->gamma_shift][gray16 >> 8]; in png_do_rgb_to_gray()
3189 png_do_compose(png_row_infop row_info, png_bytep row, png_structrp png_ptr) in png_do_compose() argument
3192 png_const_bytep gamma_table = png_ptr->gamma_table; in png_do_compose()
3193 png_const_bytep gamma_from_1 = png_ptr->gamma_from_1; in png_do_compose()
3194 png_const_bytep gamma_to_1 = png_ptr->gamma_to_1; in png_do_compose()
3195 png_const_uint_16pp gamma_16 = png_ptr->gamma_16_table; in png_do_compose()
3196 png_const_uint_16pp gamma_16_from_1 = png_ptr->gamma_16_from_1; in png_do_compose()
3197 png_const_uint_16pp gamma_16_to_1 = png_ptr->gamma_16_to_1; in png_do_compose()
3198 int gamma_shift = png_ptr->gamma_shift; in png_do_compose()
3199 int optimize = (png_ptr->flags & PNG_FLAG_OPTIMIZE_ALPHA) != 0; in png_do_compose()
3223 == png_ptr->trans_color.gray) in png_do_compose()
3226 tmp |= png_ptr->background.gray << shift; in png_do_compose()
3252 == png_ptr->trans_color.gray) in png_do_compose()
3255 tmp |= png_ptr->background.gray << shift; in png_do_compose()
3288 == png_ptr->trans_color.gray) in png_do_compose()
3291 tmp |= png_ptr->background.gray << shift; in png_do_compose()
3318 == png_ptr->trans_color.gray) in png_do_compose()
3321 tmp |= png_ptr->background.gray << shift; in png_do_compose()
3354 == png_ptr->trans_color.gray) in png_do_compose()
3357 tmp |= png_ptr->background.gray << shift; in png_do_compose()
3382 if (*sp == png_ptr->trans_color.gray) in png_do_compose()
3383 *sp = (png_byte)png_ptr->background.gray; in png_do_compose()
3395 if (*sp == png_ptr->trans_color.gray) in png_do_compose()
3396 *sp = (png_byte)png_ptr->background.gray; in png_do_compose()
3414 if (v == png_ptr->trans_color.gray) in png_do_compose()
3417 *sp = (png_byte)((png_ptr->background.gray >> 8) in png_do_compose()
3419 *(sp + 1) = (png_byte)(png_ptr->background.gray in png_do_compose()
3441 if (v == png_ptr->trans_color.gray) in png_do_compose()
3443 *sp = (png_byte)((png_ptr->background.gray >> 8) in png_do_compose()
3445 *(sp + 1) = (png_byte)(png_ptr->background.gray in png_do_compose()
3469 if (*sp == png_ptr->trans_color.red && in png_do_compose()
3470 *(sp + 1) == png_ptr->trans_color.green && in png_do_compose()
3471 *(sp + 2) == png_ptr->trans_color.blue) in png_do_compose()
3473 *sp = (png_byte)png_ptr->background.red; in png_do_compose()
3474 *(sp + 1) = (png_byte)png_ptr->background.green; in png_do_compose()
3475 *(sp + 2) = (png_byte)png_ptr->background.blue; in png_do_compose()
3492 if (*sp == png_ptr->trans_color.red && in png_do_compose()
3493 *(sp + 1) == png_ptr->trans_color.green && in png_do_compose()
3494 *(sp + 2) == png_ptr->trans_color.blue) in png_do_compose()
3496 *sp = (png_byte)png_ptr->background.red; in png_do_compose()
3497 *(sp + 1) = (png_byte)png_ptr->background.green; in png_do_compose()
3498 *(sp + 2) = (png_byte)png_ptr->background.blue; in png_do_compose()
3519 if (r == png_ptr->trans_color.red && in png_do_compose()
3520 g == png_ptr->trans_color.green && in png_do_compose()
3521 b == png_ptr->trans_color.blue) in png_do_compose()
3524 *sp = (png_byte)((png_ptr->background.red >> 8) & 0xff); in png_do_compose()
3525 *(sp + 1) = (png_byte)(png_ptr->background.red & 0xff); in png_do_compose()
3526 *(sp + 2) = (png_byte)((png_ptr->background.green >> 8) in png_do_compose()
3528 *(sp + 3) = (png_byte)(png_ptr->background.green in png_do_compose()
3530 *(sp + 4) = (png_byte)((png_ptr->background.blue >> 8) in png_do_compose()
3532 *(sp + 5) = (png_byte)(png_ptr->background.blue & 0xff); in png_do_compose()
3566 if (r == png_ptr->trans_color.red && in png_do_compose()
3567 g == png_ptr->trans_color.green && in png_do_compose()
3568 b == png_ptr->trans_color.blue) in png_do_compose()
3570 *sp = (png_byte)((png_ptr->background.red >> 8) & 0xff); in png_do_compose()
3571 *(sp + 1) = (png_byte)(png_ptr->background.red & 0xff); in png_do_compose()
3572 *(sp + 2) = (png_byte)((png_ptr->background.green >> 8) in png_do_compose()
3574 *(sp + 3) = (png_byte)(png_ptr->background.green in png_do_compose()
3576 *(sp + 4) = (png_byte)((png_ptr->background.blue >> 8) in png_do_compose()
3578 *(sp + 5) = (png_byte)(png_ptr->background.blue & 0xff); in png_do_compose()
3605 *sp = (png_byte)png_ptr->background.gray; in png_do_compose()
3613 png_composite(w, v, a, png_ptr->background_1.gray); in png_do_compose()
3629 *sp = (png_byte)png_ptr->background.gray; in png_do_compose()
3632 png_composite(*sp, *sp, a, png_ptr->background.gray); in png_do_compose()
3660 *sp = (png_byte)((png_ptr->background.gray >> 8) in png_do_compose()
3662 *(sp + 1) = (png_byte)(png_ptr->background.gray & 0xff); in png_do_compose()
3670 png_composite_16(v, g, a, png_ptr->background_1.gray); in png_do_compose()
3692 *sp = (png_byte)((png_ptr->background.gray >> 8) in png_do_compose()
3694 *(sp + 1) = (png_byte)(png_ptr->background.gray & 0xff); in png_do_compose()
3702 png_composite_16(v, g, a, png_ptr->background.gray); in png_do_compose()
3735 *sp = (png_byte)png_ptr->background.red; in png_do_compose()
3736 *(sp + 1) = (png_byte)png_ptr->background.green; in png_do_compose()
3737 *(sp + 2) = (png_byte)png_ptr->background.blue; in png_do_compose()
3745 png_composite(w, v, a, png_ptr->background_1.red); in png_do_compose()
3750 png_composite(w, v, a, png_ptr->background_1.green); in png_do_compose()
3755 png_composite(w, v, a, png_ptr->background_1.blue); in png_do_compose()
3771 *sp = (png_byte)png_ptr->background.red; in png_do_compose()
3772 *(sp + 1) = (png_byte)png_ptr->background.green; in png_do_compose()
3773 *(sp + 2) = (png_byte)png_ptr->background.blue; in png_do_compose()
3778 png_composite(*sp, *sp, a, png_ptr->background.red); in png_do_compose()
3781 png_ptr->background.green); in png_do_compose()
3784 png_ptr->background.blue); in png_do_compose()
3821 *sp = (png_byte)((png_ptr->background.red >> 8) & 0xff); in png_do_compose()
3822 *(sp + 1) = (png_byte)(png_ptr->background.red & 0xff); in png_do_compose()
3823 *(sp + 2) = (png_byte)((png_ptr->background.green >> 8) in png_do_compose()
3825 *(sp + 3) = (png_byte)(png_ptr->background.green in png_do_compose()
3827 *(sp + 4) = (png_byte)((png_ptr->background.blue >> 8) in png_do_compose()
3829 *(sp + 5) = (png_byte)(png_ptr->background.blue & 0xff); in png_do_compose()
3837 png_composite_16(w, v, a, png_ptr->background_1.red); in png_do_compose()
3845 png_composite_16(w, v, a, png_ptr->background_1.green); in png_do_compose()
3854 png_composite_16(w, v, a, png_ptr->background_1.blue); in png_do_compose()
3876 *sp = (png_byte)((png_ptr->background.red >> 8) & 0xff); in png_do_compose()
3877 *(sp + 1) = (png_byte)(png_ptr->background.red & 0xff); in png_do_compose()
3878 *(sp + 2) = (png_byte)((png_ptr->background.green >> 8) in png_do_compose()
3880 *(sp + 3) = (png_byte)(png_ptr->background.green in png_do_compose()
3882 *(sp + 4) = (png_byte)((png_ptr->background.blue >> 8) in png_do_compose()
3884 *(sp + 5) = (png_byte)(png_ptr->background.blue & 0xff); in png_do_compose()
3897 png_composite_16(v, r, a, png_ptr->background.red); in png_do_compose()
3901 png_composite_16(v, g, a, png_ptr->background.green); in png_do_compose()
3905 png_composite_16(v, b, a, png_ptr->background.blue); in png_do_compose()
3930 png_do_gamma(png_row_infop row_info, png_bytep row, png_structrp png_ptr) in png_do_gamma() argument
3932 png_const_bytep gamma_table = png_ptr->gamma_table; in png_do_gamma()
3933 png_const_uint_16pp gamma_16_table = png_ptr->gamma_16_table; in png_do_gamma()
3934 int gamma_shift = png_ptr->gamma_shift; in png_do_gamma()
4131 png_do_encode_alpha(png_row_infop row_info, png_bytep row, png_structrp png_ptr) in png_do_encode_alpha() argument
4141 PNG_CONST png_bytep table = png_ptr->gamma_from_1; in png_do_encode_alpha()
4160 PNG_CONST png_uint_16pp table = png_ptr->gamma_16_from_1; in png_do_encode_alpha()
4161 PNG_CONST int gamma_shift = png_ptr->gamma_shift; in png_do_encode_alpha()
4188 png_warning(png_ptr, "png_do_encode_alpha: unexpected call"); in png_do_encode_alpha()
4707 png_do_read_transformations(png_structrp png_ptr, png_row_infop row_info) in png_do_read_transformations() argument
4711 if (png_ptr->row_buf == NULL) in png_do_read_transformations()
4717 png_error(png_ptr, "NULL row buffer"); in png_do_read_transformations()
4726 if ((png_ptr->flags & PNG_FLAG_DETECT_UNINITIALIZED) != 0 && in png_do_read_transformations()
4727 (png_ptr->flags & PNG_FLAG_ROW_INIT) == 0) in png_do_read_transformations()
4733 png_error(png_ptr, "Uninitialized row"); in png_do_read_transformations()
4737 if ((png_ptr->transformations & PNG_EXPAND) != 0) in png_do_read_transformations()
4741 png_do_expand_palette(row_info, png_ptr->row_buf + 1, in png_do_read_transformations()
4742 png_ptr->palette, png_ptr->trans_alpha, png_ptr->num_trans); in png_do_read_transformations()
4747 if (png_ptr->num_trans != 0 && in png_do_read_transformations()
4748 (png_ptr->transformations & PNG_EXPAND_tRNS) != 0) in png_do_read_transformations()
4749 png_do_expand(row_info, png_ptr->row_buf + 1, in png_do_read_transformations()
4750 &(png_ptr->trans_color)); in png_do_read_transformations()
4753 png_do_expand(row_info, png_ptr->row_buf + 1, in png_do_read_transformations()
4760 if ((png_ptr->transformations & PNG_STRIP_ALPHA) != 0 && in png_do_read_transformations()
4761 (png_ptr->transformations & PNG_COMPOSE) == 0 && in png_do_read_transformations()
4764 png_do_strip_channel(row_info, png_ptr->row_buf + 1, in png_do_read_transformations()
4769 if ((png_ptr->transformations & PNG_RGB_TO_GRAY) != 0) in png_do_read_transformations()
4772 png_do_rgb_to_gray(png_ptr, row_info, in png_do_read_transformations()
4773 png_ptr->row_buf + 1); in png_do_read_transformations()
4777 png_ptr->rgb_to_gray_status=1; in png_do_read_transformations()
4778 if ((png_ptr->transformations & PNG_RGB_TO_GRAY) == in png_do_read_transformations()
4780 png_warning(png_ptr, "png_do_rgb_to_gray found nongray pixel"); in png_do_read_transformations()
4782 if ((png_ptr->transformations & PNG_RGB_TO_GRAY) == in png_do_read_transformations()
4784 png_error(png_ptr, "png_do_rgb_to_gray found nongray pixel"); in png_do_read_transformations()
4824 if ((png_ptr->transformations & PNG_GRAY_TO_RGB) != 0 && in png_do_read_transformations()
4825 (png_ptr->mode & PNG_BACKGROUND_IS_GRAY) == 0) in png_do_read_transformations()
4826 png_do_gray_to_rgb(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
4831 if ((png_ptr->transformations & PNG_COMPOSE) != 0) in png_do_read_transformations()
4832 png_do_compose(row_info, png_ptr->row_buf + 1, png_ptr); in png_do_read_transformations()
4836 if ((png_ptr->transformations & PNG_GAMMA) != 0 && in png_do_read_transformations()
4839 (png_ptr->transformations & PNG_RGB_TO_GRAY) == 0 && in png_do_read_transformations()
4846 !((png_ptr->transformations & PNG_COMPOSE) != 0 && in png_do_read_transformations()
4847 ((png_ptr->num_trans != 0) || in png_do_read_transformations()
4848 (png_ptr->color_type & PNG_COLOR_MASK_ALPHA) != 0)) && in png_do_read_transformations()
4853 (png_ptr->color_type != PNG_COLOR_TYPE_PALETTE)) in png_do_read_transformations()
4854 png_do_gamma(row_info, png_ptr->row_buf + 1, png_ptr); in png_do_read_transformations()
4858 if ((png_ptr->transformations & PNG_STRIP_ALPHA) != 0 && in png_do_read_transformations()
4859 (png_ptr->transformations & PNG_COMPOSE) != 0 && in png_do_read_transformations()
4862 png_do_strip_channel(row_info, png_ptr->row_buf + 1, in png_do_read_transformations()
4867 if ((png_ptr->transformations & PNG_ENCODE_ALPHA) != 0 && in png_do_read_transformations()
4869 png_do_encode_alpha(row_info, png_ptr->row_buf + 1, png_ptr); in png_do_read_transformations()
4873 if ((png_ptr->transformations & PNG_SCALE_16_TO_8) != 0) in png_do_read_transformations()
4874 png_do_scale_16_to_8(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
4882 if ((png_ptr->transformations & PNG_16_TO_8) != 0) in png_do_read_transformations()
4883 png_do_chop(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
4887 if ((png_ptr->transformations & PNG_QUANTIZE) != 0) in png_do_read_transformations()
4889 png_do_quantize(row_info, png_ptr->row_buf + 1, in png_do_read_transformations()
4890 png_ptr->palette_lookup, png_ptr->quantize_index); in png_do_read_transformations()
4893 png_error(png_ptr, "png_do_quantize returned rowbytes=0"); in png_do_read_transformations()
4903 if ((png_ptr->transformations & PNG_EXPAND_16) != 0) in png_do_read_transformations()
4904 png_do_expand_16(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
4909 if ((png_ptr->transformations & PNG_GRAY_TO_RGB) != 0 && in png_do_read_transformations()
4910 (png_ptr->mode & PNG_BACKGROUND_IS_GRAY) != 0) in png_do_read_transformations()
4911 png_do_gray_to_rgb(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
4915 if ((png_ptr->transformations & PNG_INVERT_MONO) != 0) in png_do_read_transformations()
4916 png_do_invert(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
4920 if ((png_ptr->transformations & PNG_INVERT_ALPHA) != 0) in png_do_read_transformations()
4921 png_do_read_invert_alpha(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
4925 if ((png_ptr->transformations & PNG_SHIFT) != 0) in png_do_read_transformations()
4926 png_do_unshift(row_info, png_ptr->row_buf + 1, in png_do_read_transformations()
4927 &(png_ptr->shift)); in png_do_read_transformations()
4931 if ((png_ptr->transformations & PNG_PACK) != 0) in png_do_read_transformations()
4932 png_do_unpack(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
4938 png_ptr->num_palette_max >= 0) in png_do_read_transformations()
4939 png_do_check_palette_indexes(png_ptr, row_info); in png_do_read_transformations()
4943 if ((png_ptr->transformations & PNG_BGR) != 0) in png_do_read_transformations()
4944 png_do_bgr(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
4948 if ((png_ptr->transformations & PNG_PACKSWAP) != 0) in png_do_read_transformations()
4949 png_do_packswap(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
4953 if ((png_ptr->transformations & PNG_FILLER) != 0) in png_do_read_transformations()
4954 png_do_read_filler(row_info, png_ptr->row_buf + 1, in png_do_read_transformations()
4955 (png_uint_32)png_ptr->filler, png_ptr->flags); in png_do_read_transformations()
4959 if ((png_ptr->transformations & PNG_SWAP_ALPHA) != 0) in png_do_read_transformations()
4960 png_do_read_swap_alpha(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
4965 if ((png_ptr->transformations & PNG_SWAP_BYTES) != 0) in png_do_read_transformations()
4966 png_do_swap(row_info, png_ptr->row_buf + 1); in png_do_read_transformations()
4971 if ((png_ptr->transformations & PNG_USER_TRANSFORM) != 0) in png_do_read_transformations()
4973 if (png_ptr->read_user_transform_fn != NULL) in png_do_read_transformations()
4974 (*(png_ptr->read_user_transform_fn)) /* User read transform function */ in png_do_read_transformations()
4975 (png_ptr, /* png_ptr */ in png_do_read_transformations()
4983 png_ptr->row_buf + 1); /* start of pixel data for row */ in png_do_read_transformations()
4985 if (png_ptr->user_transform_depth != 0) in png_do_read_transformations()
4986 row_info->bit_depth = png_ptr->user_transform_depth; in png_do_read_transformations()
4988 if (png_ptr->user_transform_channels != 0) in png_do_read_transformations()
4989 row_info->channels = png_ptr->user_transform_channels; in png_do_read_transformations()