Lines Matching full:png_ptr
30 png_structp png_ptr = png_create_png_struct(user_png_ver, error_ptr,
45 png_structp png_ptr = png_create_png_struct(user_png_ver, error_ptr,
49 if (png_ptr != NULL)
51 png_ptr->mode = PNG_IS_READ_STRUCT;
57 png_ptr->IDAT_read_size = PNG_IDAT_READ_SIZE;
61 png_ptr->flags |= PNG_FLAG_BENIGN_ERRORS_WARN;
67 png_ptr->flags |= PNG_FLAG_APP_WARNINGS_WARN;
75 png_set_read_fn(png_ptr, NULL, NULL);
78 return png_ptr;
92 png_read_info(png_structrp png_ptr, png_inforp info_ptr)
100 if (png_ptr == NULL || info_ptr == NULL)
104 png_read_sig(png_ptr, info_ptr);
108 png_uint_32 length = png_read_chunk_header(png_ptr);
109 png_uint_32 chunk_name = png_ptr->chunk_name;
116 if ((png_ptr->mode & PNG_HAVE_IHDR) == 0)
117 png_chunk_error(png_ptr, "Missing IHDR before IDAT");
119 else if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE &&
120 (png_ptr->mode & PNG_HAVE_PLTE) == 0)
121 png_chunk_error(png_ptr, "Missing PLTE before IDAT");
123 else if ((png_ptr->mode & PNG_AFTER_IDAT) != 0)
124 png_chunk_benign_error(png_ptr, "Too many IDATs found");
126 png_ptr->mode |= PNG_HAVE_IDAT;
129 else if ((png_ptr->mode & PNG_HAVE_IDAT) != 0)
131 png_ptr->mode |= PNG_HAVE_CHUNK_AFTER_IDAT;
132 png_ptr->mode |= PNG_AFTER_IDAT;
139 png_handle_IHDR(png_ptr, info_ptr, length);
142 png_handle_IEND(png_ptr, info_ptr, length);
145 else if ((keep = png_chunk_unknown_handling(png_ptr, chunk_name)) != 0)
147 png_handle_unknown(png_ptr, info_ptr, length, keep);
150 png_ptr->mode |= PNG_HAVE_PLTE;
154 png_ptr->idat_size = 0; /* It has been consumed */
160 png_handle_PLTE(png_ptr, info_ptr, length);
164 png_ptr->idat_size = length;
170 png_handle_bKGD(png_ptr, info_ptr, length);
175 png_handle_cHRM(png_ptr, info_ptr, length);
180 png_handle_eXIf(png_ptr, info_ptr, length);
185 png_handle_gAMA(png_ptr, info_ptr, length);
190 png_handle_hIST(png_ptr, info_ptr, length);
195 png_handle_oFFs(png_ptr, info_ptr, length);
200 png_handle_pCAL(png_ptr, info_ptr, length);
205 png_handle_sCAL(png_ptr, info_ptr, length);
210 png_handle_pHYs(png_ptr, info_ptr, length);
215 png_handle_sBIT(png_ptr, info_ptr, length);
220 png_handle_sRGB(png_ptr, info_ptr, length);
225 png_handle_iCCP(png_ptr, info_ptr, length);
230 png_handle_sPLT(png_ptr, info_ptr, length);
235 png_handle_tEXt(png_ptr, info_ptr, length);
240 png_handle_tIME(png_ptr, info_ptr, length);
245 png_handle_tRNS(png_ptr, info_ptr, length);
250 png_handle_zTXt(png_ptr, info_ptr, length);
255 png_handle_iTXt(png_ptr, info_ptr, length);
259 png_handle_unknown(png_ptr, info_ptr, length,
267 png_read_update_info(png_structrp png_ptr, png_inforp info_ptr)
271 if (png_ptr != NULL)
273 if ((png_ptr->flags & PNG_FLAG_ROW_INIT) == 0)
275 png_read_start_row(png_ptr);
278 png_read_transform_info(png_ptr, info_ptr);
286 png_app_error(png_ptr,
298 png_start_read_image(png_structrp png_ptr)
302 if (png_ptr != NULL)
304 if ((png_ptr->flags & PNG_FLAG_ROW_INIT) == 0)
305 png_read_start_row(png_ptr);
309 png_app_error(png_ptr,
383 png_read_row(png_structrp png_ptr, png_bytep row, png_bytep dsp_row)
387 if (png_ptr == NULL)
391 (unsigned long)png_ptr->row_number, png_ptr->pass);
396 if ((png_ptr->flags & PNG_FLAG_ROW_INIT) == 0)
397 png_read_start_row(png_ptr);
400 row_info.width = png_ptr->iwidth; /* NOTE: width of current interlaced row */
401 row_info.color_type = png_ptr->color_type;
402 row_info.bit_depth = png_ptr->bit_depth;
403 row_info.channels = png_ptr->channels;
404 row_info.pixel_depth = png_ptr->pixel_depth;
408 if (png_ptr->row_number == 0 && png_ptr->pass == 0)
412 if ((png_ptr->transformations & PNG_INVERT_MONO) != 0)
413 png_warning(png_ptr, "PNG_READ_INVERT_SUPPORTED is not defined");
417 if ((png_ptr->transformations & PNG_FILLER) != 0)
418 png_warning(png_ptr, "PNG_READ_FILLER_SUPPORTED is not defined");
423 if ((png_ptr->transformations & PNG_PACKSWAP) != 0)
424 png_warning(png_ptr, "PNG_READ_PACKSWAP_SUPPORTED is not defined");
428 if ((png_ptr->transformations & PNG_PACK) != 0)
429 png_warning(png_ptr, "PNG_READ_PACK_SUPPORTED is not defined");
433 if ((png_ptr->transformations & PNG_SHIFT) != 0)
434 png_warning(png_ptr, "PNG_READ_SHIFT_SUPPORTED is not defined");
438 if ((png_ptr->transformations & PNG_BGR) != 0)
439 png_warning(png_ptr, "PNG_READ_BGR_SUPPORTED is not defined");
443 if ((png_ptr->transformations & PNG_SWAP_BYTES) != 0)
444 png_warning(png_ptr, "PNG_READ_SWAP_SUPPORTED is not defined");
456 if (png_ptr->interlaced != 0 &&
457 (png_ptr->transformations & PNG_INTERLACE) != 0)
459 switch (png_ptr->pass)
462 if (png_ptr->row_number & 0x07)
465 png_combine_row(png_ptr, dsp_row, 1/*display*/);
466 png_read_finish_row(png_ptr);
472 if ((png_ptr->row_number & 0x07) || png_ptr->width < 5)
475 png_combine_row(png_ptr, dsp_row, 1/*display*/);
477 png_read_finish_row(png_ptr);
483 if ((png_ptr->row_number & 0x07) != 4)
485 if (dsp_row != NULL && (png_ptr->row_number & 4))
486 png_combine_row(png_ptr, dsp_row, 1/*display*/);
488 png_read_finish_row(png_ptr);
494 if ((png_ptr->row_number & 3) || png_ptr->width < 3)
497 png_combine_row(png_ptr, dsp_row, 1/*display*/);
499 png_read_finish_row(png_ptr);
505 if ((png_ptr->row_number & 3) != 2)
507 if (dsp_row != NULL && (png_ptr->row_number & 2))
508 png_combine_row(png_ptr, dsp_row, 1/*display*/);
510 png_read_finish_row(png_ptr);
516 if ((png_ptr->row_number & 1) || png_ptr->width < 2)
519 png_combine_row(png_ptr, dsp_row, 1/*display*/);
521 png_read_finish_row(png_ptr);
528 if ((png_ptr->row_number & 1) == 0)
530 png_read_finish_row(png_ptr);
538 if ((png_ptr
539 png_error(png_ptr, "Invalid attempt to read row data");
542 png_ptr->row_buf[0]=255; /* to force error if no data was found */
543 png_read_IDAT_data(png_ptr, png_ptr->row_buf, row_info.rowbytes + 1);
545 if (png_ptr->row_buf[0] > PNG_FILTER_VALUE_NONE)
547 if (png_ptr->row_buf[0] < PNG_FILTER_VALUE_LAST)
548 png_read_filter_row(png_ptr, &row_info, png_ptr->row_buf + 1,
549 png_ptr->prev_row + 1, png_ptr->row_buf[0]);
551 png_error(png_ptr, "bad adaptive filter value");
554 /* libpng 1.5.6: the following line was copying png_ptr->rowbytes before
559 memcpy(png_ptr->prev_row, png_ptr->row_buf, row_info.rowbytes + 1);
562 if ((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) != 0 &&
563 (png_ptr->filter_type == PNG_INTRAPIXEL_DIFFERENCING))
566 png_do_read_intrapixel(&row_info, png_ptr->row_buf + 1);
571 if (png_ptr->transformations)
572 png_do_read_transformations(png_ptr, &row_info);
576 if (png_ptr->transformed_pixel_depth == 0)
578 png_ptr->transformed_pixel_depth = row_info.pixel_depth;
579 if (row_info.pixel_depth > png_ptr->maximum_pixel_depth)
580 png_error(png_ptr, "sequential row overflow");
583 else if (png_ptr->transformed_pixel_depth != row_info.pixel_depth)
584 png_error(png_ptr, "internal sequential row size calculation error");
588 if (png_ptr->interlaced != 0 &&
589 (png_ptr->transformations & PNG_INTERLACE) != 0)
591 if (png_ptr->pass < 6)
592 png_do_read_interlace(&row_info, png_ptr->row_buf + 1, png_ptr->pass,
593 png_ptr->transformations);
596 png_combine_row(png_ptr, dsp_row, 1/*display*/);
599 png_combine_row(png_ptr, row, 0/*row*/);
606 png_combine_row(png_ptr, row, -1/*ignored*/);
609 png_combine_row(png_ptr, dsp_row, -1/*ignored*/);
611 png_read_finish_row(png_ptr);
613 if (png_ptr->read_row_fn != NULL)
614 (*(png_ptr->read_row_fn))(png_ptr, png_ptr->row_number, png_ptr->pass);
645 png_read_rows(png_structrp png_ptr, png_bytepp row,
654 if (png_ptr == NULL)
665 png_read_row(png_ptr, rptr, dptr);
672 png_read_row(png_ptr, rptr, NULL);
680 png_read_row(png_ptr, NULL, dptr);
700 png_read_image(png_structrp png_ptr, png_bytepp image)
708 if (png_ptr == NULL)
712 if ((png_ptr->flags & PNG_FLAG_ROW_INIT) == 0)
714 pass = png_set_interlace_handling(png_ptr);
716 png_start_read_image(png_ptr);
720 if (png_ptr->interlaced != 0 &&
721 (png_ptr->transformations & PNG_INTERLACE) == 0)
727 png_warning(png_ptr, "Interlace handling should be turned on when "
730 png_ptr->num_rows = png_ptr->height;
736 pass = png_set_interlace_handling(png_ptr);
739 if (png_ptr->interlaced)
740 png_error(png_ptr,
746 image_height=png_ptr->height;
753 png_read_row(png_ptr, *rp, NULL);
766 png_read_end(png_structrp png_ptr, png_inforp info_ptr)
774 if (png_ptr == NULL)
781 if (png_chunk_unknown_handling(png_ptr, png_IDAT) == 0)
783 png_read_finish_IDAT(png_ptr);
787 if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE &&
788 png_ptr->num_palette_max > png_ptr->num_palette)
789 png_benign_error(png_ptr, "Read palette index exceeding num_palette");
794 png_uint_32 length = png_read_chunk_header(png_ptr);
795 png_uint_32 chunk_name = png_ptr->chunk_name;
798 png_ptr->mode |= PNG_HAVE_CHUNK_AFTER_IDAT;
801 png_handle_IEND(png_ptr, info_ptr, length);
804 png_handle_IHDR(png_ptr, info_ptr, length);
807 png_crc_finish(png_ptr, length);
810 else if ((keep = png_chunk_unknown_handling(png_ptr, chunk_name)) != 0)
814 if ((length > 0 && !(png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED))
815 || (png_ptr->mode & PNG_HAVE_CHUNK_AFTER_IDAT) != 0)
816 png_benign_error(png_ptr, ".Too many IDATs found");
818 png_handle_unknown(png_ptr, info_ptr, length, keep);
820 png_ptr->mode |= PNG_HAVE_PLTE;
832 if ((length > 0 && !(png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED))
833 || (png_ptr->mode & PNG_HAVE_CHUNK_AFTER_IDAT) != 0)
834 png_benign_error(png_ptr, "..Too many IDATs found");
836 png_crc_finish(png_ptr, length);
839 png_handle_PLTE(png_ptr, info_ptr, length);
843 png_handle_bKGD(png_ptr, info_ptr, length);
848 png_handle_cHRM(png_ptr, info_ptr, length);
853 png_handle_eXIf(png_ptr, info_ptr, length);
858 png_handle_gAMA(png_ptr, info_ptr, length);
863 png_handle_hIST(png_ptr, info_ptr, length);
868 png_handle_oFFs(png_ptr, info_ptr, length);
873 png_handle_pCAL(png_ptr, info_ptr, length);
878 png_handle_sCAL(png_ptr, info_ptr, length);
883 png_handle_pHYs(png_ptr, info_ptr, length);
888 png_handle_sBIT(png_ptr, info_ptr, length);
893 png_handle_sRGB(png_ptr, info_ptr, length);
898 png_handle_iCCP(png_ptr, info_ptr, length);
903 png_handle_sPLT(png_ptr, info_ptr, length);
908 png_handle_tEXt(png_ptr, info_ptr, length);
913 png_handle_tIME(png_ptr, info_ptr, length);
918 png_handle_tRNS(png_ptr, info_ptr, length);
923 png_handle_zTXt(png_ptr, info_ptr, length);
928 png_handle_iTXt(png_ptr, info_ptr, length);
932 png_handle_unknown(png_ptr, info_ptr, length,
934 } while ((png_ptr->mode & PNG_HAVE_IEND) == 0);
940 png_read_destroy(png_structrp png_ptr)
945 png_destroy_gamma_table(png_ptr);
948 png_free(png_ptr, png_ptr->big_row_buf);
949 png_ptr->big_row_buf = NULL;
950 png_free(png_ptr, png_ptr->big_prev_row);
951 png_ptr->big_prev_row = NULL;
952 png_free(png_ptr, png_ptr->read_buffer);
953 png_ptr->read_buffer = NULL;
956 png_free(png_ptr, png_ptr->palette_lookup);
957 png_ptr->palette_lookup = NULL;
958 png_free(png_ptr, png_ptr->quantize_index);
959 png_ptr->quantize_index = NULL;
962 if ((png_ptr->free_me & PNG_FREE_PLTE) != 0)
964 png_zfree(png_ptr, png_ptr->palette);
965 png_ptr->palette = NULL;
967 png_ptr->free_me &= ~PNG_FREE_PLTE;
971 if ((png_ptr->free_me & PNG_FREE_TRNS) != 0)
973 png_free(png_ptr, png_ptr->trans_alpha);
974 png_ptr->trans_alpha = NULL;
976 png_ptr->free_me &= ~PNG_FREE_TRNS;
979 inflateEnd(&png_ptr->zstream);
982 png_free(png_ptr, png_ptr->save_buffer);
983 png_ptr->save_buffer = NULL;
988 png_free(png_ptr, png_ptr->unknown_chunk.data);
989 png_ptr->unknown_chunk.data = NULL;
993 png_free(png_ptr, png_ptr->chunk_list);
994 png_ptr->chunk_list = NULL;
1008 png_structrp png_ptr = NULL;
1013 png_ptr = *png_ptr_ptr;
1015 if (png_ptr == NULL)
1022 png_destroy_info_struct(png_ptr, end_info_ptr_ptr);
1023 png_destroy_info_struct(png_ptr, info_ptr_ptr);
1026 png_read_destroy(png_ptr);
1027 png_destroy_png_struct(png_ptr);
1031 png_set_read_status_fn(png_structrp png_ptr, png_read_status_ptr read_row_fn)
1033 if (png_ptr == NULL)
1036 png_ptr->read_row_fn = read_row_fn;
1043 png_read_png(png_structrp png_ptr, png_inforp info_ptr,
1046 if (png_ptr == NULL || info_ptr == NULL)
1052 png_read_info(png_ptr, info_ptr);
1054 png_error(png_ptr, "Image is too high to process with png_read_png()");
1070 png_set_scale_16(png_ptr);
1072 png_app_error(png_ptr, "PNG_TRANSFORM_SCALE_16 not supported");
1081 png_set_strip_16(png_ptr);
1083 png_app_error(png_ptr, "PNG_TRANSFORM_STRIP_16 not supported");
1091 png_set_strip_alpha(png_ptr);
1093 png_app_error(png_ptr, "PNG_TRANSFORM_STRIP_ALPHA not supported");
1101 png_set_packing(png_ptr);
1103 png_app_error(png_ptr, "PNG_TRANSFORM_PACKING not supported");
1111 png_set_packswap(png_ptr);
1113 png_app_error(png_ptr, "PNG_TRANSFORM_PACKSWAP not supported");
1123 png_set_expand(png_ptr);
1125 png_app_error(png_ptr, "PNG_TRANSFORM_EXPAND not supported");
1135 png_set_invert_mono(png_ptr);
1137 png_app_error(png_ptr, "PNG_TRANSFORM_INVERT_MONO not supported");
1147 png_set_shift(png_ptr, &info_ptr->sig_bit);
1149 png_app_error(png_ptr, "PNG_TRANSFORM_SHIFT not supported");
1155 png_set_bgr(png_ptr);
1157 png_app_error(png_ptr, "PNG_TRANSFORM_BGR not supported");
1163 png_set_swap_alpha(png_ptr);
1165 png_app_error(png_ptr, "PNG_TRANSFORM_SWAP_ALPHA not supported");
1171 png_set_swap(png_ptr);
1173 png_app_error(png_ptr, "PNG_TRANSFORM_SWAP_ENDIAN not supported");
1180 png_set_invert_alpha(png_ptr);
1182 png_app_error(png_ptr, "PNG_TRANSFORM_INVERT_ALPHA not supported");
1189 png_set_gray_to_rgb(png_ptr);
1191 png_app_error(png_ptr, "PNG_TRANSFORM_GRAY_TO_RGB not supported");
1197 png_set_expand_16(png_ptr);
1199 png_app_error(png_ptr, "PNG_TRANSFORM_EXPAND_16 not supported");
1207 (void)png_set_interlace_handling(png_ptr);
1213 png_read_update_info(png_ptr, info_ptr);
1217 png_free_data(png_ptr, info_ptr, PNG_FREE_ROWS, 0);
1222 info_ptr->row_pointers = png_voidcast(png_bytepp, png_malloc(png_ptr,
1232 png_malloc(png_ptr, info_ptr->rowbytes));
1235 png_read_image(png_ptr, info_ptr->row_pointers);
1239 png_read_end(png_ptr, info_ptr);
1304 png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, image,
1313 if (png_ptr != NULL)
1315 png_infop info_ptr = png_create_info_struct(png_ptr);
1320 png_malloc_warn(png_ptr, (sizeof *control)));
1326 control->png_ptr = png_ptr;
1335 png_destroy_info_struct(png_ptr, &info_ptr);
1338 png_destroy_read_struct(&png_ptr, NULL, NULL);
1349 png_image_format(png_structrp png_ptr)
1353 if ((png_ptr->color_type & PNG_COLOR_MASK_COLOR) != 0)
1356 if ((png_ptr->color_type & PNG_COLOR_MASK_ALPHA) != 0)
1359 /* Use png_ptr here, not info_ptr, because by examination png_handle_tRNS
1364 else if (png_ptr->num_trans > 0)
1367 if (png_ptr->bit_depth == 16)
1370 if ((png_ptr->color_type & PNG_COLOR_MASK_PALETTE) != 0)
1404 png_structrp png_ptr = image->opaque->png_ptr;
1408 png_set_benign_errors(png_ptr, 1/*warn*/);
1410 png_read_info(png_ptr, info_ptr);
1413 image->width = png_ptr->width;
1414 image->height = png_ptr->height;
1417 png_uint_32 format = png_image_format(png_ptr);
1427 if ((format & PNG_FORMAT_FLAG_COLOR) != 0 && ((png_ptr->colorspace.flags
1440 switch (png_ptr->color_type)
1443 cmap_entries = 1U << png_ptr->bit_depth;
1447 cmap_entries = (png_uint_32)png_ptr->num_palette;
1478 image->opaque->png_ptr->io_ptr = file;
1508 image->opaque->png_ptr->io_ptr = fp;
1535 png_image_memory_read(png_structp png_ptr, png_bytep out, png_size_t need)
1537 if (png_ptr != NULL)
1539 png_imagep image = png_voidcast(png_imagep, png_ptr->io_ptr);
1556 png_error(png_ptr, "read beyond end of data");
1560 png_error(png_ptr, "invalid memory read");
1579 png_ptr->io_ptr = image;
1580 image->opaque->png_ptr->read_data_fn = png_image_memory_read;
1603 png_image_skip_unused_chunks(png_structrp png_ptr)
1638 png_set_keep_unknown_chunks(png_ptr, PNG_HANDLE_CHUNK_NEVER,
1642 png_set_keep_unknown_chunks(png_ptr, PNG_HANDLE_CHUNK_AS_DEFAULT,
1662 png_fixed_point g = display->image->opaque->png_ptr->colorspace.gamma;
1710 png_error(display->image->opaque->png_ptr,
1767 png_error(image->opaque->png_ptr, "color-map index out of range");
1867 png_error(image->opaque->png_ptr, "bad encoding (internal error)");
2090 const png_structrp png_ptr = image->opaque->png_ptr;
2113 if (((png_ptr->color_type & PNG_COLOR_MASK_ALPHA) != 0 ||
2114 png_ptr->num_trans > 0) /* alpha in input */ &&
2121 png_error(png_ptr,
2152 if ((png_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_GAMMA) == 0)
2159 if (png_ptr->bit_depth == 16 &&
2161 png_ptr->colorspace.gamma = PNG_GAMMA_LINEAR;
2164 png_ptr->colorspace.gamma = PNG_GAMMA_sRGB_INVERSE;
2166 png_ptr->colorspace.flags |= PNG_COLORSPACE_HAVE_GAMMA;
2174 switch (png_ptr->color_type)
2177 if (png_ptr->bit_depth <= 8)
2184 cmap_entries = 1U << png_ptr->bit_depth;
2186 png_error(png_ptr, "gray[8] color-map: too few entries");
2194 if (png_ptr->num_trans > 0)
2196 trans = png_ptr->trans_color.gray;
2240 if (png_ptr->bit_depth < 8)
2241 png_set_packing(png_ptr);
2265 png_error(png_ptr, "gray[16] color-map: too few entries");
2269 if (png_ptr->num_trans > 0)
2307 png_set_background_fixed(png_ptr, &c,
2363 png_error(png_ptr, "gray+alpha color-map: too few entries");
2397 png_error(png_ptr, "gray-alpha color-map: too few entries");
2416 png_set_background_fixed(png_ptr, &c,
2431 png_error(png_ptr, "ga-alpha color-map: too few entries");
2518 png_set_rgb_to_gray_fixed(png_ptr, PNG_ERROR_ACTION_NONE, -1,
2525 if ((png_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA ||
2526 png_ptr->num_trans > 0) &&
2536 png_error(png_ptr, "rgb[ga] color-map: too few entries");
2550 png_error(png_ptr, "rgb[gray] color-map: too few entries");
2560 if ((png_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA ||
2561 png_ptr->num_trans > 0) &&
2562 png_gamma_not_sRGB(png_ptr->colorspace.gamma) != 0)
2573 if (png_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA ||
2574 png_ptr->num_trans > 0)
2595 png_ptr->colorspace.gamma)); /* now P_FILE */
2625 png_set_background_fixed(png_ptr, &c,
2644 if (png_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA ||
2645 png_ptr->num_trans > 0)
2655 png_error(png_ptr, "rgb+alpha color-map: too few entries");
2704 png_error(png_ptr, "rgb-alpha color-map: too few entries");
2774 png_set_background_fixed(png_ptr, &c,
2789 png_error(png_ptr, "rgb color-map: too few entries");
2802 unsigned int num_trans = png_ptr->num_trans;
2803 png_const_bytep trans = num_trans > 0 ? png_ptr->trans_alpha : NULL;
2804 png_const_colorp colormap = png_ptr->palette;
2815 cmap_entries = (unsigned int)png_ptr->num_palette;
2820 png_error(png_ptr, "palette color-map: too few entries");
2857 if (png_ptr->bit_depth < 8)
2858 png_set_packing(png_ptr);
2863 png_error(png_ptr, "invalid PNG color type");
2868 if (expand_tRNS != 0 && png_ptr->num_trans > 0 &&
2869 (png_ptr->color_type & PNG_COLOR_MASK_ALPHA) == 0)
2870 png_set_tRNS_to_alpha(png_ptr);
2876 png_set_alpha_mode_fixed(png_ptr, PNG_ALPHA_PNG, PNG_GAMMA_sRGB);
2880 if (png_ptr->bit_depth > 8)
2881 png_set_scale_16(png_ptr);
2886 png_error(png_ptr, "bad data option (internal error)");
2891 png_error(png_ptr, "color map overflow (BAD internal error)");
2925 png_error(png_ptr, "bad processing option (internal error)");
2928 png_error(png_ptr, "bad background index (internal error)");
2943 png_structrp png_ptr = image->opaque->png_ptr;
2950 switch (png_ptr->interlaced)
2961 png_error(png_ptr, "unknown interlace type");
2977 if (png_ptr->interlaced == PNG_INTERLACE_ADAM7)
3003 png_read_row(png_ptr, inrow, NULL);
3133 png_structrp png_ptr = control->png_ptr;
3138 PNG_SKIP_CHUNKS(png_ptr);
3145 passes = png_set_interlace_handling(png_ptr);
3147 png_read_update_info(png_ptr, info_ptr);
3171 png_ptr->screen_gamma == PNG_GAMMA_sRGB &&
3181 png_ptr->screen_gamma == PNG_GAMMA_sRGB &&
3191 png_ptr->screen_gamma == PNG_GAMMA_sRGB &&
3199 png_error(png_ptr, "bad color-map processing (internal error)");
3227 png_voidp row = png_malloc(png_ptr, png_get_rowbytes(png_ptr, info_ptr));
3232 png_free(png_ptr, row);
3248 png_read_row(png_ptr, row, NULL);
3264 png_structrp png_ptr = image->opaque->png_ptr;
3267 switch (png_ptr->interlaced)
3278 png_error(png_ptr, "unknown interlace type");
3294 if (png_ptr->interlaced == PNG_INTERLACE_ADAM7)
3321 png_read_row(png_ptr, inrow, NULL);
3391 png_structrp png_ptr = image->opaque->png_ptr;
3402 if ((png_ptr->transformations & PNG_RGB_TO_GRAY) == 0)
3403 png_error(png_ptr, "lost rgb to gray");
3405 if ((png_ptr->transformations & PNG_COMPOSE) != 0)
3406 png_error(png_ptr, "unexpected compose");
3408 if (png_get_channels(png_ptr, info_ptr) != 2)
3409 png_error(png_ptr, "lost/gained channels");
3414 png_error(png_ptr, "unexpected 8-bit transformation");
3416 switch (png_ptr->interlaced)
3427 png_error(png_ptr, "unknown interlace type");
3453 if (png_ptr->interlaced == PNG_INTERLACE_ADAM7)
3482 png_read_row(png_ptr, inrow, NULL);
3527 png_read_row(png_ptr, inrow, NULL);
3592 if (png_ptr->interlaced == PNG_INTERLACE_ADAM7)
3619 png_read_row(png_ptr, png_voidcast(png_bytep,
3657 png_error(png_ptr, "unexpected bit depth");
3671 png_structrp png_ptr = image->opaque->png_ptr;
3684 png_set_expand(png_ptr);
3688 png_uint_32 base_format = png_image_format(png_ptr) &
3699 png_set_gray_to_rgb(png_ptr);
3719 png_set_rgb_to_gray_fixed(png_ptr, PNG_ERROR_ACTION_NONE,
3740 png_set_alpha_mode_fixed(png_ptr, PNG_ALPHA_PNG, input_gamma_default);
3784 if (png_muldiv(>est, output_gamma, png_ptr->colorspace.gamma,
3801 png_set_expand_16(png_ptr);
3804 png_set_scale_16(png_ptr);
3828 png_set_strip_alpha(png_ptr);
3847 png_set_background_fixed(png_ptr, &c,
3891 png_set_add_alpha(png_ptr, filler, where);
3902 png_set_alpha_mode_fixed(png_ptr, mode, output_gamma);
3911 png_set_bgr(png_ptr);
3934 png_set_swap_alpha(png_ptr);
3952 png_set_swap(png_ptr);
3957 png_error(png_ptr, "png_read_image: unsupported transformation");
3960 PNG_SKIP_CHUNKS(png_ptr);
3969 passes = png_set_interlace_handling(png_ptr);
3971 png_read_update_info(png_ptr, info_ptr);
3992 png_error(png_ptr, "png_image_read: alpha channel lost");
4002 if ((png_ptr->transformations & PNG_BGR) != 0)
4013 if ((png_ptr->transformations & PNG_SWAP_ALPHA) != 0 ||
4014 ((png_ptr->transformations & PNG_ADD_ALPHA) != 0 &&
4015 (png_ptr->flags & PNG_FLAG_FILLER_AFTER) == 0))
4018 png_error(png_ptr, "unexpected alpha swap transformation");
4026 png_error(png_ptr, "png_read_image: invalid transformations");
4058 png_voidp row = png_malloc(png_ptr, png_get_rowbytes(png_ptr, info_ptr));
4063 png_free(png_ptr, row);
4071 png_voidp row = png_malloc(png_ptr, png_get_rowbytes(png_ptr, info_ptr));
4076 png_free(png_ptr, row);
4092 png_read_row(png_ptr, row, NULL);