18 #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) 20 #if defined(PNG_bKGD_SUPPORTED) 24 png_debug1(1,
"in %s storage function\n",
"bKGD");
25 if (png_ptr == NULL || info_ptr == NULL)
33 #if defined(PNG_cHRM_SUPPORTED) 34 #ifdef PNG_FLOATING_POINT_SUPPORTED 40 png_debug1(1,
"in %s storage function\n",
"cHRM");
41 if (png_ptr == NULL || info_ptr == NULL)
43 if (!(white_x || white_y || red_x || red_y || green_x || green_y ||
47 "Ignoring attempt to set all-zero chromaticity values");
50 if (white_x < 0.0 || white_y < 0.0 ||
51 red_x < 0.0 || red_y < 0.0 ||
52 green_x < 0.0 || green_y < 0.0 ||
53 blue_x < 0.0 || blue_y < 0.0)
56 "Ignoring attempt to set negative chromaticity value");
59 if (white_x > 21474.83 || white_y > 21474.83 ||
60 red_x > 21474.83 || red_y > 21474.83 ||
61 green_x > 21474.83 || green_y > 21474.83 ||
62 blue_x > 21474.83 || blue_y > 21474.83)
65 "Ignoring attempt to set chromaticity value exceeding 21474.83");
69 info_ptr->x_white = (float)white_x;
70 info_ptr->y_white = (float)white_y;
71 info_ptr->x_red = (float)red_x;
72 info_ptr->y_red = (float)red_y;
73 info_ptr->x_green = (float)green_x;
74 info_ptr->y_green = (float)green_y;
75 info_ptr->x_blue = (float)blue_x;
76 info_ptr->y_blue = (float)blue_y;
77 #ifdef PNG_FIXED_POINT_SUPPORTED 90 #ifdef PNG_FIXED_POINT_SUPPORTED 97 png_debug1(1,
"in %s storage function\n",
"cHRM");
98 if (png_ptr == NULL || info_ptr == NULL)
101 if (!(white_x || white_y || red_x || red_y || green_x || green_y ||
105 "Ignoring attempt to set all-zero chromaticity values");
108 if (white_x < 0 || white_y < 0 ||
109 red_x < 0 || red_y < 0 ||
110 green_x < 0 || green_y < 0 ||
111 blue_x < 0 || blue_y < 0)
114 "Ignoring attempt to set negative chromaticity value");
127 "Ignoring attempt to set chromaticity value exceeding 21474.83");
130 info_ptr->int_x_white =
white_x;
131 info_ptr->int_y_white =
white_y;
132 info_ptr->int_x_red =
red_x;
133 info_ptr->int_y_red =
red_y;
134 info_ptr->int_x_green =
green_x;
135 info_ptr->int_y_green =
green_y;
136 info_ptr->int_x_blue =
blue_x;
137 info_ptr->int_y_blue =
blue_y;
138 #ifdef PNG_FLOATING_POINT_SUPPORTED 139 info_ptr->x_white = (float)(white_x/100000.);
140 info_ptr->y_white = (float)(white_y/100000.);
141 info_ptr->x_red = (float)( red_x/100000.);
142 info_ptr->y_red = (float)( red_y/100000.);
143 info_ptr->x_green = (float)(green_x/100000.);
144 info_ptr->y_green = (float)(green_y/100000.);
145 info_ptr->x_blue = (float)( blue_x/100000.);
146 info_ptr->y_blue = (float)( blue_y/100000.);
153 #if defined(PNG_gAMA_SUPPORTED) 154 #ifdef PNG_FLOATING_POINT_SUPPORTED 159 png_debug1(1,
"in %s storage function\n",
"gAMA");
160 if (png_ptr == NULL || info_ptr == NULL)
164 if (file_gamma > 21474.83)
166 png_warning(png_ptr,
"Limiting gamma to 21474.83");
171 info_ptr->gamma = (float)gamma;
172 #ifdef PNG_FIXED_POINT_SUPPORTED 173 info_ptr->int_gamma = (
int)(gamma*100000.+.5);
186 png_debug1(1,
"in %s storage function\n",
"gAMA");
187 if (png_ptr == NULL || info_ptr == NULL)
192 png_warning(png_ptr,
"Limiting gamma to 21474.83");
199 png_warning(png_ptr,
"Setting negative gamma to zero");
205 #ifdef PNG_FLOATING_POINT_SUPPORTED 206 info_ptr->gamma = (float)(gamma/100000.);
208 #ifdef PNG_FIXED_POINT_SUPPORTED 209 info_ptr->int_gamma = gamma;
217 #if defined(PNG_hIST_SUPPORTED) 223 png_debug1(1,
"in %s storage function\n",
"hIST");
224 if (png_ptr == NULL || info_ptr == NULL)
226 if (info_ptr->num_palette == 0 || info_ptr->num_palette
230 "Invalid palette size, hIST allocation skipped.");
234 #ifdef PNG_FREE_ME_SUPPORTED 241 if (png_ptr->hist == NULL)
243 png_warning(png_ptr,
"Insufficient memory for hIST chunk data.");
247 for (i = 0; i < info_ptr->num_palette; i++)
248 png_ptr->hist[i] = hist[i];
249 info_ptr->hist = png_ptr->hist;
255 png_ptr->flags |= PNG_FLAG_FREE_HIST;
266 png_debug1(1,
"in %s storage function\n",
"IHDR");
267 if (png_ptr == NULL || info_ptr == NULL)
271 if (width == 0 || height == 0)
272 png_error(png_ptr,
"Image width or height is zero in IHDR");
273 #ifdef PNG_SET_USER_LIMITS_SUPPORTED 274 if (width > png_ptr->user_width_max || height > png_ptr->user_height_max)
275 png_error(png_ptr,
"image size exceeds user limits in IHDR");
278 png_error(png_ptr,
"image size exceeds user limits in IHDR");
281 png_error(png_ptr,
"Invalid image size in IHDR");
288 png_warning(png_ptr,
"Width is too large for libpng to process pixels");
291 if (bit_depth != 1 && bit_depth != 2 && bit_depth != 4 &&
292 bit_depth != 8 && bit_depth != 16)
293 png_error(png_ptr,
"Invalid bit depth in IHDR");
295 if (color_type < 0 || color_type == 1 ||
296 color_type == 5 || color_type > 6)
297 png_error(png_ptr,
"Invalid color type in IHDR");
303 png_error(png_ptr,
"Invalid color type/bit depth combination in IHDR");
306 png_error(png_ptr,
"Unknown interlace method in IHDR");
309 png_error(png_ptr,
"Unknown compression method in IHDR");
311 #if defined(PNG_MNG_FEATURES_SUPPORTED) 321 if ((png_ptr->mode&PNG_HAVE_PNG_SIGNATURE)&&png_ptr->mng_features_permitted)
322 png_warning(png_ptr,
"MNG features are not allowed in a PNG datastream");
327 ((png_ptr->mode&PNG_HAVE_PNG_SIGNATURE) == 0) &&
330 png_error(png_ptr,
"Unknown filter method in IHDR");
331 if (png_ptr->mode&PNG_HAVE_PNG_SIGNATURE)
332 png_warning(png_ptr,
"Invalid filter method in IHDR");
336 png_error(png_ptr,
"Unknown filter method in IHDR");
339 info_ptr->width =
width;
340 info_ptr->height =
height;
341 info_ptr->bit_depth = (
png_byte)bit_depth;
342 info_ptr->color_type =(
png_byte) color_type;
343 info_ptr->compression_type = (
png_byte)compression_type;
344 info_ptr->filter_type = (
png_byte)filter_type;
345 info_ptr->interlace_type = (
png_byte)interlace_type;
347 info_ptr->channels = 1;
349 info_ptr->channels = 3;
351 info_ptr->channels = 1;
353 info_ptr->channels++;
354 info_ptr->pixel_depth = (
png_byte)(info_ptr->channels * info_ptr->bit_depth);
365 info_ptr->rowbytes = PNG_ROWBYTES(info_ptr->pixel_depth, width);
368 #if defined(PNG_oFFs_SUPPORTED) 373 png_debug1(1,
"in %s storage function\n",
"oFFs");
374 if (png_ptr == NULL || info_ptr == NULL)
379 info_ptr->offset_unit_type = (
png_byte)unit_type;
384 #if defined(PNG_pCAL_SUPPORTED) 393 png_debug1(1,
"in %s storage function\n",
"pCAL");
394 if (png_ptr == NULL || info_ptr == NULL)
398 png_debug1(3,
"allocating purpose for info (%lu bytes)\n",
399 (
unsigned long)length);
401 if (info_ptr->pcal_purpose == NULL)
403 png_warning(png_ptr,
"Insufficient memory for pCAL purpose.");
408 png_debug(3,
"storing X0, X1, type, and nparams in info\n");
409 info_ptr->pcal_X0 =
X0;
410 info_ptr->pcal_X1 =
X1;
411 info_ptr->pcal_type = (
png_byte)type;
412 info_ptr->pcal_nparams = (
png_byte)nparams;
415 png_debug1(3,
"allocating units for info (%lu bytes)\n",
416 (
unsigned long)length);
418 if (info_ptr->pcal_units == NULL)
420 png_warning(png_ptr,
"Insufficient memory for pCAL units.");
427 if (info_ptr->pcal_params == NULL)
429 png_warning(png_ptr,
"Insufficient memory for pCAL params.");
433 info_ptr->pcal_params[
nparams] = NULL;
438 png_debug2(3,
"allocating parameter %d for info (%lu bytes)\n", i,
439 (
unsigned long)length);
441 if (info_ptr->pcal_params[i] == NULL)
443 png_warning(png_ptr,
"Insufficient memory for pCAL parameter.");
450 #ifdef PNG_FREE_ME_SUPPORTED 456 #if defined(PNG_READ_sCAL_SUPPORTED) || defined(PNG_WRITE_sCAL_SUPPORTED) 457 #ifdef PNG_FLOATING_POINT_SUPPORTED 462 png_debug1(1,
"in %s storage function\n",
"sCAL");
463 if (png_ptr == NULL || info_ptr == NULL)
466 info_ptr->scal_unit = (
png_byte)unit;
467 info_ptr->scal_pixel_width =
width;
468 info_ptr->scal_pixel_height =
height;
473 #ifdef PNG_FIXED_POINT_SUPPORTED 480 png_debug1(1,
"in %s storage function\n",
"sCAL");
481 if (png_ptr == NULL ||
info_ptr == NULL)
487 png_debug1(3,
"allocating unit for info (%u bytes)\n",
488 (
unsigned int)length);
493 "Memory allocation failed while processing sCAL.");
499 png_debug1(3,
"allocating unit for info (%u bytes)\n",
500 (
unsigned int)length);
502 if (
info_ptr->scal_s_height == NULL)
507 "Memory allocation failed while processing sCAL.");
512 #ifdef PNG_FREE_ME_SUPPORTED 520 #if defined(PNG_pHYs_SUPPORTED) 525 png_debug1(1,
"in %s storage function\n",
"pHYs");
526 if (png_ptr == NULL || info_ptr == NULL)
529 info_ptr->x_pixels_per_unit =
res_x;
530 info_ptr->y_pixels_per_unit =
res_y;
531 info_ptr->phys_unit_type = (
png_byte)unit_type;
541 png_debug1(1,
"in %s storage function\n",
"PLTE");
542 if (png_ptr == NULL || info_ptr == NULL)
548 png_error(png_ptr,
"Invalid palette length");
561 #ifdef PNG_FREE_ME_SUPPORTED 570 png_memset(png_ptr->palette, 0, PNG_MAX_PALETTE_LENGTH *
573 info_ptr->palette = png_ptr->palette;
574 info_ptr->num_palette = png_ptr->num_palette = (
png_uint_16)num_palette;
576 #ifdef PNG_FREE_ME_SUPPORTED 579 png_ptr->flags |= PNG_FLAG_FREE_PLTE;
585 #if defined(PNG_sBIT_SUPPORTED) 590 png_debug1(1,
"in %s storage function\n",
"sBIT");
591 if (png_ptr == NULL || info_ptr == NULL)
599 #if defined(PNG_sRGB_SUPPORTED) 603 png_debug1(1,
"in %s storage function\n",
"sRGB");
604 if (png_ptr == NULL || info_ptr == NULL)
607 info_ptr->srgb_intent = (
png_byte)intent;
615 #if defined(PNG_gAMA_SUPPORTED) 616 #ifdef PNG_FLOATING_POINT_SUPPORTED 619 #ifdef PNG_FIXED_POINT_SUPPORTED 623 #if defined(PNG_cHRM_SUPPORTED) 624 #ifdef PNG_FLOATING_POINT_SUPPORTED 627 #ifdef PNG_FIXED_POINT_SUPPORTED 632 png_debug1(1,
"in %s storage function\n",
"sRGB_gAMA_and_cHRM");
633 if (png_ptr == NULL || info_ptr == NULL)
638 #if defined(PNG_gAMA_SUPPORTED) 639 #ifdef PNG_FLOATING_POINT_SUPPORTED 640 file_gamma = (float).45455;
643 #ifdef PNG_FIXED_POINT_SUPPORTED 644 int_file_gamma = 45455L;
649 #if defined(PNG_cHRM_SUPPORTED) 650 #ifdef PNG_FIXED_POINT_SUPPORTED 651 int_white_x = 31270L;
652 int_white_y = 32900L;
655 int_green_x = 30000L;
656 int_green_y = 60000L;
661 int_white_x, int_white_y, int_red_x, int_red_y, int_green_x, int_green_y,
662 int_blue_x, int_blue_y);
664 #ifdef PNG_FLOATING_POINT_SUPPORTED 665 white_x = (float).3127;
666 white_y = (float).3290;
669 green_x = (float).30;
670 green_y = (float).60;
675 white_x, white_y, red_x, red_y, green_x, green_y, blue_x, blue_y);
682 #if defined(PNG_iCCP_SUPPORTED) 692 png_debug1(1,
"in %s storage function\n",
"iCCP");
693 if (png_ptr == NULL || info_ptr == NULL || name == NULL || profile == NULL)
698 if (new_iccp_name == NULL)
700 png_warning(png_ptr,
"Insufficient memory to process iCCP chunk.");
705 if (new_iccp_profile == NULL)
709 "Insufficient memory to process iCCP profile.");
716 info_ptr->iccp_proflen =
proflen;
717 info_ptr->iccp_name = new_iccp_name;
718 info_ptr->iccp_profile = new_iccp_profile;
721 info_ptr->iccp_compression = (
png_byte)compression_type;
722 #ifdef PNG_FREE_ME_SUPPORTED 729 #if defined(PNG_TEXT_SUPPORTED) 737 png_error(png_ptr,
"Insufficient memory to store text");
746 png_debug1(1,
"in %s storage function\n", (png_ptr->chunk_name[0] ==
'\0' ?
749 if (png_ptr == NULL || info_ptr == NULL || num_text == 0)
755 if (info_ptr->num_text + num_text > info_ptr->max_text)
757 if (info_ptr->text != NULL)
762 old_max = info_ptr->max_text;
763 info_ptr->max_text = info_ptr->num_text + num_text + 8;
764 old_text = info_ptr->text;
767 if (info_ptr->text == NULL)
778 info_ptr->max_text = num_text + 8;
779 info_ptr->num_text = 0;
782 if (info_ptr->text == NULL)
784 #ifdef PNG_FREE_ME_SUPPORTED 788 png_debug1(3,
"allocated %d entries for info_ptr->text\n",
795 png_textp textp = &(info_ptr->text[info_ptr->num_text]);
797 if (text_ptr[i].key == NULL)
802 if (text_ptr[i].compression <= 0)
808 #ifdef PNG_iTXt_SUPPORTED 811 if (text_ptr[i].lang != NULL)
815 if (text_ptr[i].lang_key != NULL)
816 lang_key_len =
png_strlen(text_ptr[i].lang_key);
827 if (text_ptr[i].text == NULL || text_ptr[i].text[0] ==
'\0')
830 #ifdef PNG_iTXt_SUPPORTED 831 if (text_ptr[i].compression > 0)
840 textp->compression = text_ptr[
i].compression;
845 (key_len + text_length + lang_len + lang_key_len + 4));
846 if (textp->key == NULL)
848 png_debug2(2,
"Allocated %lu bytes at %x in png_set_text\n",
850 (key_len + lang_len + lang_key_len + text_length + 4),
855 *(textp->key + key_len) =
'\0';
856 #ifdef PNG_iTXt_SUPPORTED 857 if (text_ptr[i].compression > 0)
859 textp->lang = textp->key + key_len + 1;
860 png_memcpy(textp->lang, text_ptr[i].lang, lang_len);
861 *(textp->lang + lang_len) =
'\0';
862 textp->lang_key = textp->lang + lang_len + 1;
863 png_memcpy(textp->lang_key, text_ptr[i].lang_key, lang_key_len);
864 *(textp->lang_key + lang_key_len) =
'\0';
865 textp->text = textp->lang_key + lang_key_len + 1;
870 #ifdef PNG_iTXt_SUPPORTED 872 textp->lang_key=NULL;
874 textp->text = textp->key + key_len + 1;
879 *(textp->text + text_length) =
'\0';
881 #ifdef PNG_iTXt_SUPPORTED 882 if (textp->compression > 0)
884 textp->text_length = 0;
885 textp->itxt_length = text_length;
890 textp->text_length = text_length;
891 #ifdef PNG_iTXt_SUPPORTED 892 textp->itxt_length = 0;
895 info_ptr->num_text++;
896 png_debug1(3,
"transferred text chunk %d\n", info_ptr->num_text);
902 #if defined(PNG_tIME_SUPPORTED) 906 png_debug1(1,
"in %s storage function\n",
"tIME");
907 if (png_ptr == NULL || info_ptr == NULL ||
908 (png_ptr->mode & PNG_WROTE_tIME))
916 #if defined(PNG_tRNS_SUPPORTED) 921 png_debug1(1,
"in %s storage function\n",
"tRNS");
922 if (png_ptr == NULL || info_ptr == NULL)
933 #ifdef PNG_FREE_ME_SUPPORTED 944 if (trans_values != NULL)
946 int sample_max = (1 << info_ptr->bit_depth);
948 (
int)trans_values->gray > sample_max) ||
950 ((
int)trans_values->red > sample_max ||
951 (
int)trans_values->green > sample_max ||
952 (
int)trans_values->blue > sample_max)))
954 "tRNS chunk has out-of-range samples for bit_depth");
955 png_memcpy(&(info_ptr->trans_values), trans_values,
965 #ifdef PNG_FREE_ME_SUPPORTED 968 png_ptr->flags |= PNG_FLAG_FREE_TRNS;
974 #if defined(PNG_sPLT_SUPPORTED) 989 if (png_ptr == NULL || info_ptr == NULL)
993 (info_ptr->splt_palettes_num + nentries) *
997 png_warning(png_ptr,
"No memory for sPLT palettes.");
1003 png_free(png_ptr, info_ptr->splt_palettes);
1004 info_ptr->splt_palettes=NULL;
1014 if (to->name == NULL)
1017 "Out of memory while processing sPLT chunk");
1023 if (to->entries == NULL)
1026 "Out of memory while processing sPLT chunk");
1033 to->nentries = from->nentries;
1034 to->depth = from->depth;
1037 info_ptr->splt_palettes = np;
1038 info_ptr->splt_palettes_num +=
nentries;
1040 #ifdef PNG_FREE_ME_SUPPORTED 1046 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) 1054 if (png_ptr == NULL || info_ptr == NULL || num_unknowns == 0)
1063 "Out of memory while processing unknown chunk.");
1069 png_free(png_ptr, info_ptr->unknown_chunks);
1070 info_ptr->unknown_chunks=NULL;
1081 to->size = from->size;
1083 to->location = (
png_byte)(png_ptr->mode & 0xff);
1085 if (from->size == 0)
1091 if (to->data == NULL)
1094 "Out of memory while processing unknown chunk.");
1098 png_memcpy(to->data, from->data, from->size);
1102 info_ptr->unknown_chunks = np;
1104 #ifdef PNG_FREE_ME_SUPPORTED 1112 if (png_ptr != NULL && info_ptr != NULL && chunk >= 0 && chunk <
1113 (
int)info_ptr->unknown_chunks_num)
1114 info_ptr->unknown_chunks[
chunk].location = (
png_byte)location;
1118 #if defined(PNG_1_0_X) || defined(PNG_1_2_X) 1119 #if defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \ 1120 defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED) 1126 png_debug(1,
"in png_permit_empty_plte, DEPRECATED.\n");
1127 if (png_ptr == NULL)
1129 png_ptr->mng_features_permitted = (
png_byte)
1136 #if defined(PNG_MNG_FEATURES_SUPPORTED) 1140 png_debug(1,
"in png_permit_mng_features\n");
1141 if (png_ptr == NULL)
1143 png_ptr->mng_features_permitted =
1145 return (
png_uint_32)png_ptr->mng_features_permitted;
1149 #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) 1155 int i, old_num_chunks;
1156 if (png_ptr == NULL)
1158 if (num_chunks == 0)
1161 png_ptr->flags |= PNG_FLAG_KEEP_UNKNOWN_CHUNKS;
1163 png_ptr->flags &= ~PNG_FLAG_KEEP_UNKNOWN_CHUNKS;
1166 png_ptr->flags |= PNG_FLAG_KEEP_UNSAFE_CHUNKS;
1168 png_ptr->flags &= ~PNG_FLAG_KEEP_UNSAFE_CHUNKS;
1171 if (chunk_list == NULL)
1173 old_num_chunks = png_ptr->num_chunk_list;
1176 (5*(num_chunks + old_num_chunks)));
1177 if (png_ptr->chunk_list != NULL)
1181 png_free(png_ptr, png_ptr->chunk_list);
1182 png_ptr->chunk_list=NULL;
1184 png_memcpy(new_list + 5*old_num_chunks, chunk_list,
1186 for (p = new_list + 5*old_num_chunks + 4, i = 0; i<
num_chunks; i++, p += 5)
1188 png_ptr->num_chunk_list = old_num_chunks +
num_chunks;
1189 png_ptr->chunk_list = new_list;
1190 #ifdef PNG_FREE_ME_SUPPORTED 1196 #if defined(PNG_READ_USER_CHUNKS_SUPPORTED) 1201 png_debug(1,
"in png_set_read_user_chunk_fn\n");
1202 if (png_ptr == NULL)
1209 #if defined(PNG_INFO_IMAGE_SUPPORTED) 1213 png_debug1(1,
"in %s storage function\n",
"rows");
1215 if (png_ptr == NULL || info_ptr == NULL)
1218 if (info_ptr->row_pointers && (info_ptr->row_pointers != row_pointers))
1226 #ifdef PNG_WRITE_SUPPORTED 1231 if (png_ptr == NULL)
1236 png_ptr->zstream.next_out = png_ptr->zbuf;
1237 png_ptr->zstream.avail_out = (
uInt)png_ptr->zbuf_size;
1244 if (png_ptr && info_ptr)
1245 info_ptr->valid &= ~mask;
1250 #ifdef PNG_ASSEMBLER_CODE_SUPPORTED 1256 if (png_ptr != NULL)
1257 png_ptr->asm_flags = 0;
1268 if (png_ptr == NULL)
1276 #ifdef PNG_SET_USER_LIMITS_SUPPORTED 1286 if (png_ptr == NULL)
return;
void PNGAPI png_set_iCCP(png_structp png_ptr, png_infop info_ptr, png_charp name, int compression_type, png_charp profile, png_uint_32 proflen)
png_infop png_charpp int png_charpp profile
png_infop png_charpp int png_charpp png_uint_32 * proflen
#define PNG_INTERLACE_LAST
#define PNG_USER_WIDTH_MAX
void PNGAPI png_set_IHDR(png_structp png_ptr, png_infop info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, int color_type, int interlace_type, int compression_type, int filter_type)
png_infop png_uint_32 * res_x
png_infop png_charp png_int_32 png_int_32 int int png_charp * units
png_unknown_chunk FAR * png_unknown_chunkp
void PNGAPI png_set_bKGD(png_structp png_ptr, png_infop info_ptr, png_color_16p background)
#define PNG_ALL_MNG_FEATURES
void PNGAPI png_free_data(png_structp png_ptr, png_infop info_ptr, png_uint_32 mask, int num)
void PNGAPI png_set_cHRM_fixed(png_structp png_ptr, png_infop info_ptr, png_fixed_point white_x, png_fixed_point white_y, png_fixed_point red_x, png_fixed_point red_y, png_fixed_point green_x, png_fixed_point green_y, png_fixed_point blue_x, png_fixed_point blue_y)
void PNGAPI png_set_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_16p hist)
png_infop png_charp png_int_32 png_int_32 int * type
void PNGAPI png_set_asm_flags(png_structp png_ptr, png_uint_32 asm_flags)
png_infop png_uint_32 png_uint_32 * res_y
png_infop double double double double double double double double * blue_y
void PNGAPI png_set_mmx_thresholds(png_structp png_ptr, png_byte mmx_bitdepth_threshold, png_uint_32 mmx_rowbytes_threshold)
png_infop png_textp * text_ptr
png_colorp int num_palette
png_infop double double double double double double double * blue_x
#define PNG_MAX_PALETTE_LENGTH
void PNGAPI png_set_rows(png_structp png_ptr, png_infop info_ptr, png_bytepp row_pointers)
png_color_16 FAR * png_color_16p
#define PNG_COLOR_TYPE_RGB
png_infop png_fixed_point png_fixed_point png_fixed_point * int_red_x
#define PNG_COLOR_TYPE_GRAY_ALPHA
void PNGAPI png_set_unknown_chunks(png_structp png_ptr, png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns)
png_infop png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point * int_blue_y
png_infop png_color_16p * background
#define PNG_COLOR_TYPE_PALETTE
void PNGAPI png_set_sRGB_gAMA_and_cHRM(png_structp png_ptr, png_infop info_ptr, int intent)
png_infop png_charp png_int_32 png_int_32 * X1
png_infop png_charpp name
void PNGAPI png_set_user_limits(png_structp png_ptr, png_uint_32 user_width_max, png_uint_32 user_height_max)
void PNGAPI png_set_tIME(png_structp png_ptr, png_infop info_ptr, png_timep mod_time)
RTC::ReturnCode_t ret(RTC::Local::ReturnCode_t r)
png_infop png_charp png_int_32 png_int_32 int int png_charp png_charpp * params
png_infop png_int_32 png_int_32 * offset_y
png_infop png_unknown_chunkp int num_unknowns
#define PNG_COLOR_TYPE_RGB_ALPHA
png_infop png_int_32 * offset_x
PNG_CONST char FAR * png_const_charp
#define PNG_USER_HEIGHT_MAX
void PNGAPI png_set_sCAL(png_structp png_ptr, png_infop info_ptr, int unit, double width, double height)
png_bytep png_bytep png_size_t length
void PNGAPI png_set_unknown_chunk_location(png_structp png_ptr, png_infop info_ptr, int chunk, int location)
png_infop double double double double * red_y
void PNGAPI png_set_gAMA(png_structp png_ptr, png_infop info_ptr, double file_gamma)
png_uint_32 PNGAPI png_permit_mng_features(png_structp png_ptr, png_uint_32 mng_features)
void PNGAPI png_set_oFFs(png_structp png_ptr, png_infop info_ptr, png_int_32 offset_x, png_int_32 offset_y, int unit_type)
png_infop png_bytep * trans
void PNGAPI png_set_sBIT(png_structp png_ptr, png_infop info_ptr, png_color_8p sig_bit)
png_infop png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point * int_green_x
void PNGAPI png_set_sPLT(png_structp png_ptr, png_infop info_ptr, png_sPLT_tp entries, int nentries)
png_infop png_charp png_int_32 * X0
png_infop png_uint_32 * width
png_infop png_bytep int png_color_16p * trans_values
png_byte FAR *FAR * png_bytepp
png_infop png_charpp int * compression_type
png_infop png_fixed_point * int_white_x
png_infop png_uint_16p * hist
png_infop png_bytepp row_pointers
#define PNG_TEXT_COMPRESSION_NONE
png_struct FAR * png_structp
#define PNG_HANDLE_CHUNK_ALWAYS
#define PNG_COLOR_MASK_COLOR
#define PNG_ITXT_COMPRESSION_NONE
void PNGAPI png_error(png_structp png_ptr, png_const_charp error_message)
png_infop png_uint_32 png_uint_32 * height
png_byte png_uint_32 mmx_rowbytes_threshold
unsigned short png_uint_16
void PNGAPI png_set_cHRM(png_structp png_ptr, png_infop info_ptr, double white_x, double white_y, double red_x, double red_y, double green_x, double green_y, double blue_x, double blue_y)
png_infop int png_uint_32 mask
void PNGAPI png_set_pCAL(png_structp png_ptr, png_infop info_ptr, png_charp purpose, png_int_32 X0, png_int_32 X1, int type, int nparams, png_charp units, png_charpp params)
png_byte mmx_bitdepth_threshold
png_infop png_bytep int * num_trans
#define PNG_COLOR_TYPE_GRAY
png_sPLT_entry FAR * png_sPLT_entryp
void PNGAPI png_warning(png_structp png_ptr, png_const_charp warning_message)
png_infop png_fixed_point * int_file_gamma
png_uint_16 FAR * png_uint_16p
void PNGAPI png_set_PLTE(png_structp png_ptr, png_infop info_ptr, png_colorp palette, int num_palette)
png_uint_32 png_uint_32 user_height_max
png_infop png_fixed_point png_fixed_point * int_white_y
#define png_debug1(l, m, p1)
png_infop int int location
png_infop png_uint_32 png_uint_32 int * bit_depth
#define PNG_HANDLE_CHUNK_IF_SAFE
png_infop png_fixed_point png_fixed_point png_fixed_point png_fixed_point * int_red_y
png_infop double * file_gamma
int png_set_text_2(png_structp png_ptr, png_infop info_ptr, png_textp text_ptr, int num_text)
#define PNG_FLAG_MNG_FILTER_64
void PNGAPI png_set_compression_buffer_size(png_structp png_ptr, png_uint_32 size)
#define PNG_FREE_ME_SUPPORTED
png_infop png_textp int * num_text
png_infop png_sPLT_tpp entries
#define PNG_FILTER_TYPE_BASE
int png_bytep int num_chunks
#define PNG_COLOR_MASK_ALPHA
png_infop png_charp * purpose
png_voidp png_user_chunk_ptr read_user_chunk_fn
#define PNG_COMPRESSION_TYPE_BASE
png_infop png_uint_32 png_uint_32 int int * color_type
png_infop double double double double double double * green_y
png_sPLT_t FAR * png_sPLT_tp
png_infop double double * white_y
png_infop png_charp png_int_32 png_int_32 int int * nparams
png_color_8 FAR * png_color_8p
png_infop png_sPLT_tp int nentries
png_uint_32 user_width_max
png_int_32 png_fixed_point
png_infop double double double * red_x
char FAR *FAR * png_charpp
png_infop png_int_32 png_int_32 int * unit_type
void PNGAPI png_set_invalid(png_structp png_ptr, png_infop info_ptr, int mask)
#define PNG_INTRAPIXEL_DIFFERENCING
#define PNG_FLAG_MNG_EMPTY_PLTE
void PNGAPI png_set_text(png_structp png_ptr, png_infop info_ptr, png_textp text_ptr, int num_text)
void PNGAPI png_set_read_user_chunk_fn(png_structp png_ptr, png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn)
void PNGAPI png_permit_empty_plte(png_structp png_ptr, int empty_plte_permitted)
void PNGAPI png_set_tRNS(png_structp png_ptr, png_infop info_ptr, png_bytep trans, int num_trans, png_color_16p trans_values)
png_infop double double double double double * green_x
void PNGAPI png_set_pHYs(png_structp png_ptr, png_infop info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type)
unsigned long png_uint_32
void PNGAPI png_free(png_structp png_ptr, png_voidp ptr)
#define png_debug2(l, m, p1, p2)
png_infop double * white_x
png_infop png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point * int_green_y
png_infop png_timep * mod_time
void PNGAPI png_set_keep_unknown_chunks(png_structp png_ptr, int keep, png_bytep chunk_list, int num_chunks)
png_infop png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point * int_blue_x
png_voidp PNGAPI png_malloc(png_structp png_ptr, png_uint_32 size)
png_voidp PNGAPI png_malloc_warn(png_structp png_ptr, png_uint_32 size)
void PNGAPI png_set_sRGB(png_structp png_ptr, png_infop info_ptr, int intent)
png_infop png_unknown_chunkp unknowns
void PNGAPI png_set_gAMA_fixed(png_structp png_ptr, png_infop info_ptr, png_fixed_point int_gamma)
png_infop png_color_8p * sig_bit
png_color FAR * png_colorp