Lines Matching full:png_ptr
24 write_unknown_chunks(png_structrp png_ptr, png_const_inforp info_ptr,
42 int keep = png_handle_as_unknown(png_ptr, up->name);
60 png_ptr->unknown_default == PNG_HANDLE_CHUNK_ALWAYS)))
65 png_warning(png_ptr, "Writing zero-length unknown chunk");
67 png_write_chunk(png_ptr, up->name, up->data, up->size);
84 png_write_info_before_PLTE(png_structrp png_ptr, png_const_inforp info_ptr)
88 if (png_ptr == NULL || info_ptr == NULL)
91 if ((png_ptr->mode & PNG_WROTE_INFO_BEFORE_PLTE) == 0)
94 png_write_sig(png_ptr);
97 if ((png_ptr->mode & PNG_HAVE_PNG_SIGNATURE) != 0 && \
98 png_ptr->mng_features_permitted != 0)
100 png_warning(png_ptr,
102 png_ptr->mng_features_permitted = 0;
107 png_write_IHDR(png_ptr, info_ptr->width, info_ptr->height,
136 png_write_gAMA_fixed(png_ptr, info_ptr->colorspace.gamma);
150 png_app_warning(png_ptr,
154 png_write_iCCP(png_ptr, info_ptr->iccp_name,
165 png_write_sRGB(png_ptr, info_ptr->colorspace.rendering_intent);
171 png_write_sBIT(png_ptr, &(info_ptr->sig_bit), info_ptr->color_type);
179 png_write_cHRM_fixed(png_ptr, &info_ptr->colorspace.end_points_xy);
184 write_unknown_chunks(png_ptr, info_ptr, PNG_HAVE_IHDR);
187 png_ptr->mode |= PNG_WROTE_INFO_BEFORE_PLTE;
192 png_write_info(png_structrp png_ptr, png_const_inforp info_ptr)
200 if (png_ptr == NULL || info_ptr == NULL)
203 png_write_info_before_PLTE(png_ptr, info_ptr);
206 png_write_PLTE(png_ptr, info_ptr->palette,
210 png_error(png_ptr, "Valid palette required for paletted images");
217 if ((png_ptr->transformations & PNG_INVERT_ALPHA) != 0 &&
231 png_write_tRNS(png_ptr, info_ptr->trans_alpha, &(info_ptr->trans_color),
237 png_write_bKGD(png_ptr, &(info_ptr->background), info_ptr->color_type);
242 png_write_eXIf(png_ptr, info_ptr->exif, info_ptr->num_exif);
247 png_write_hIST(png_ptr, info_ptr->hist, info_ptr->num_palette);
252 png_write_oFFs(png_ptr, info_ptr->x_offset, info_ptr->y_offset,
258 png_write_pCAL(png_ptr, info_ptr->pcal_purpose, info_ptr->pcal_X0,
265 png_write_sCAL_s(png_ptr, (int)info_ptr->scal_unit,
271 png_write_pHYs(png_ptr, info_ptr->x_pixels_per_unit,
278 png_write_tIME(png_ptr, &(info_ptr->mod_time));
279 png_ptr->mode |= PNG_WROTE_tIME;
286 png_write_sPLT(png_ptr, info_ptr->splt_palettes + i);
300 png_write_iTXt(png_ptr,
312 png_warning(png_ptr, "Unable to write international text");
321 png_write_zTXt(png_ptr, info_ptr->text[i].key,
326 png_warning(png_ptr, "Unable to write compressed text");
334 png_write_tEXt(png_ptr, info_ptr->text[i].key,
341 png_warning(png_ptr, "Unable to write uncompressed text");
348 write_unknown_chunks(png_ptr, info_ptr, PNG_HAVE_PLTE);
358 png_write_end(png_structrp png_ptr, png_inforp info_ptr)
362 if (png_ptr == NULL)
365 if ((png_ptr->mode & PNG_HAVE_IDAT) == 0)
366 png_error(png_ptr, "No IDATs written into file");
369 if (png_ptr->num_palette_max > png_ptr->num_palette)
370 png_benign_error(png_ptr, "Wrote palette index exceeding num_palette");
382 (png_ptr->mode & PNG_WROTE_tIME) == 0)
383 png_write_tIME(png_ptr, &(info_ptr->mod_time));
397 png_write_iTXt(png_ptr,
409 png_warning(png_ptr, "Unable to write international text");
417 png_write_zTXt(png_ptr, info_ptr->text[i].key,
422 png_warning(png_ptr, "Unable to write compressed text");
430 png_write_tEXt(png_ptr, info_ptr->text[i].key,
435 png_warning(png_ptr, "Unable to write uncompressed text");
443 png_write_eXIf(png_ptr, info_ptr->exif, info_ptr->num_exif);
447 write_unknown_chunks(png_ptr, info_ptr, PNG_AFTER_IDAT);
451 png_ptr->mode |= PNG_AFTER_IDAT;
454 png_write_IEND(png_ptr);
458 * do not set png_ptr->output_flush_fn to crash. If your application
465 png_flush(png_ptr);
496 /* Initialize png_ptr structure, and allocate any memory needed */
502 png_structrp png_ptr = png_create_png_struct(user_png_ver, error_ptr,
509 /* Alternate initialize png_ptr structure, and allocate any memory needed */
515 png_structrp png_ptr = png_create_png_struct(user_png_ver, error_ptr,
518 if (png_ptr != NULL)
523 png_ptr->zbuffer_size = PNG_ZBUF_SIZE;
529 png_ptr->zlib_strategy = PNG_Z_DEFAULT_STRATEGY;
530 png_ptr->zlib_level = PNG_Z_DEFAULT_COMPRESSION;
531 png_ptr->zlib_mem_level = 8;
532 png_ptr->zlib_window_bits = 15;
533 png_ptr->zlib_method = 8;
536 png_ptr->zlib_text_strategy = PNG_TEXT_Z_DEFAULT_STRATEGY;
537 png_ptr->zlib_text_level = PNG_TEXT_Z_DEFAULT_COMPRESSION;
538 png_ptr->zlib_text_mem_level = 8;
539 png_ptr->zlib_text_window_bits = 15;
540 png_ptr->zlib_text_method = 8;
552 png_ptr->flags |= PNG_FLAG_BENIGN_ERRORS_WARN;
559 png_ptr->flags |= PNG_FLAG_APP_WARNINGS_WARN;
566 png_set_write_fn(png_ptr, NULL, NULL, NULL);
569 return png_ptr;
579 png_write_rows(png_structrp png_ptr, png_bytepp row,
587 if (png_ptr == NULL)
593 png_write_row(png_ptr, *rp);
601 png_write_image(png_structrp png_ptr, png_bytepp image)
607 if (png_ptr == NULL)
616 num_pass = png_set_interlace_handling(png_ptr);
624 for (i = 0, rp = image; i < png_ptr->height; i++, rp++)
626 png_write_row(png_ptr, *rp);
698 png_write_row(png_structrp png_ptr, png_const_bytep row)
703 if (png_ptr == NULL)
707 png_ptr->row_number, png_ptr->pass);
710 if (png_ptr->row_number == 0 && png_ptr->pass == 0)
713 if ((png_ptr->mode & PNG_WROTE_INFO_BEFORE_PLTE) == 0)
714 png_error(png_ptr,
719 if ((png_ptr->transformations & PNG_INVERT_MONO) != 0)
720 png_warning(png_ptr, "PNG_WRITE_INVERT_SUPPORTED is not defined");
724 if ((png_ptr->transformations & PNG_FILLER) != 0)
725 png_warning(png_ptr, "PNG_WRITE_FILLER_SUPPORTED is not defined");
729 if ((png_ptr->transformations & PNG_PACKSWAP) != 0)
730 png_warning(png_ptr,
735 if ((png_ptr->transformations & PNG_PACK) != 0)
736 png_warning(png_ptr, "PNG_WRITE_PACK_SUPPORTED is not defined");
740 if ((png_ptr->transformations & PNG_SHIFT) != 0)
741 png_warning(png_ptr, "PNG_WRITE_SHIFT_SUPPORTED is not defined");
745 if ((png_ptr->transformations & PNG_BGR) != 0)
746 png_warning(png_ptr, "PNG_WRITE_BGR_SUPPORTED is not defined");
750 if ((png_ptr->transformations & PNG_SWAP_BYTES) != 0)
751 png_warning(png_ptr, "PNG_WRITE_SWAP_SUPPORTED is not defined");
754 png_write_start_row(png_ptr);
759 if (png_ptr->interlaced != 0 &&
760 (png_ptr->transformations & PNG_INTERLACE) != 0)
762 switch (png_ptr->pass)
765 if ((png_ptr->row_number & 0x07) != 0)
767 png_write_finish_row(png_ptr);
773 if ((png_ptr->row_number & 0x07) != 0 || png_ptr->width < 5)
775 png_write_finish_row(png_ptr);
781 if ((png_ptr->row_number & 0x07) != 4)
783 png_write_finish_row(png_ptr);
789 if ((png_ptr->row_number & 0x03) != 0 || png_ptr->width < 3)
791 png_write_finish_row(png_ptr);
797 if ((png_ptr->row_number & 0x03) != 2)
799 png_write_finish_row(png_ptr);
805 if ((png_ptr->row_number & 0x01) != 0 || png_ptr->width < 2)
807 png_write_finish_row(png_ptr);
813 if ((png_ptr->row_number & 0x01) == 0)
815 png_write_finish_row(png_ptr);
827 row_info.color_type = png_ptr->color_type;
828 row_info.width = png_ptr->usr_width;
829 row_info.channels = png_ptr->usr_channels;
830 row_info.bit_depth = png_ptr->usr_bit_depth;
842 memcpy(png_ptr->row_buf + 1, row, row_info.rowbytes);
846 if (png_ptr->interlaced && png_ptr->pass < 6 &&
847 (png_ptr->transformations & PNG_INTERLACE) != 0)
849 png_do_write_interlace(&row_info, png_ptr->row_buf + 1, png_ptr->pass);
853 png_write_finish_row(png_ptr);
861 if (png_ptr->transformations != 0)
862 png_do_write_transformations(png_ptr, &row_info);
868 if (row_info.pixel_depth != png_ptr->pixel_depth ||
869 row_info.pixel_depth != png_ptr->transformed_pixel_depth)
870 png_error(png_ptr, "internal write transform logic error");
882 if ((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) != 0 &&
883 (png_ptr->filter_type == PNG_INTRAPIXEL_DIFFERENCING))
886 png_do_write_intrapixel(&row_info, png_ptr->row_buf + 1);
894 png_ptr->num_palette_max >= 0)
895 png_do_check_palette_indexes(png_ptr, &row_info);
899 png_write_find_filter(png_ptr, &row_info);
901 if (png_ptr->write_row_fn != NULL)
902 (*(png_ptr->write_row_fn))(png_ptr, png_ptr->row_number, png_ptr->pass);
908 png_set_flush(png_structrp png_ptr, int nrows)
912 if (png_ptr == NULL)
915 png_ptr->flush_dist = (nrows < 0 ? 0 : (png_uint_32)nrows);
920 png_write_flush(png_structrp png_ptr)
924 if (png_ptr == NULL)
928 if (png_ptr->row_number >= png_ptr->num_rows)
931 png_compress_IDAT(png_ptr, NULL, 0, Z_SYNC_FLUSH);
932 png_ptr->flush_rows = 0;
933 png_flush(png_ptr);
937 /* Free any memory used in png_ptr struct without freeing the struct itself. */
939 png_write_destroy(png_structrp png_ptr)
944 if ((png_ptr->flags & PNG_FLAG_ZSTREAM_INITIALIZED) != 0)
945 deflateEnd(&png_ptr->zstream);
948 png_free_buffer_list(png_ptr, &png_ptr->zbuffer_list);
949 png_free(png_ptr, png_ptr->row_buf);
950 png_ptr->row_buf = NULL;
952 png_free(png_ptr, png_ptr->prev_row);
953 png_free(png_ptr, png_ptr->try_row);
954 png_free(png_ptr, png_ptr->tst_row);
955 png_ptr->prev_row = NULL;
956 png_ptr->try_row = NULL;
957 png_ptr->tst_row = NULL;
961 png_free(png_ptr, png_ptr->chunk_list);
962 png_ptr->chunk_list = NULL;
976 * has no png_ptr.)
985 png_structrp png_ptr = *png_ptr_ptr;
987 if (png_ptr != NULL) /* added in libpng 1.6.0 */
989 png_destroy_info_struct(png_ptr, info_ptr_ptr);
992 png_write_destroy(png_ptr);
993 png_destroy_png_struct(png_ptr);
1000 png_set_filter(png_structrp png_ptr, int method, int filters)
1004 if (png_ptr == NULL)
1008 if ((png_ptr->mng_features_permitted & PNG_FLAG_MNG_FILTER_64) != 0 &&
1020 case 7: png_app_error(png_ptr, "Unknown row filter for method 0");
1024 png_ptr->do_filter = PNG_FILTER_NONE; break;
1028 png_ptr->do_filter = PNG_FILTER_SUB; break;
1031 png_ptr->do_filter = PNG_FILTER_UP; break;
1034 png_ptr->do_filter = PNG_FILTER_AVG; break;
1037 png_ptr->do_filter = PNG_FILTER_PAETH; break;
1040 png_ptr->do_filter = (png_byte)filters; break;
1043 png_app_error(png_ptr, "Unknown row filter for method 0");
1061 if (png_ptr->row_buf != NULL)
1070 if (png_ptr->height == 1)
1073 if (png_ptr->width == 1)
1077 && png_ptr->prev_row == NULL)
1082 png_app_warning(png_ptr,
1104 buf_size = PNG_ROWBYTES(png_ptr->usr_channels * png_ptr->usr_bit_depth,
1105 png_ptr->width) + 1;
1107 if (png_ptr->try_row == NULL)
1108 png_ptr->try_row = png_voidcast(png_bytep,
1109 png_malloc(png_ptr, buf_size));
1113 if (png_ptr->tst_row == NULL)
1114 png_ptr->tst_row = png_voidcast(png_bytep,
1115 png_malloc(png_ptr, buf_size));
1118 png_ptr->do_filter = (png_byte)filters;
1122 png_error(png_ptr, "Unknown custom filter method");
1129 png_set_filter_heuristics(png_structrp png_ptr, int heuristic_method,
1133 PNG_UNUSED(png_ptr)
1143 png_set_filter_heuristics_fixed(png_structrp png_ptr, int heuristic_method,
1147 PNG_UNUSED(png_ptr)
1158 png_set_compression_level(png_structrp png_ptr, int level)
1162 if (png_ptr == NULL)
1165 png_ptr->zlib_level = level;
1169 png_set_compression_mem_level(png_structrp png_ptr, int mem_level)
1173 if (png_ptr == NULL)
1176 png_ptr->zlib_mem_level = mem_level;
1180 png_set_compression_strategy(png_structrp png_ptr, int strategy)
1184 if (png_ptr == NULL)
1189 png_ptr->flags |= PNG_FLAG_ZLIB_CUSTOM_STRATEGY;
1190 png_ptr->zlib_strategy = strategy;
1197 png_set_compression_window_bits(png_structrp png_ptr, int window_bits)
1199 if (png_ptr == NULL)
1210 png_warning(png_ptr, "Only compression windows <= 32k supported by PNG");
1216 png_warning(png_ptr, "Only compression windows >= 256 supported by PNG");
1220 png_ptr->zlib_window_bits = window_bits;
1224 png_set_compression_method(png_structrp png_ptr, int method)
1228 if (png_ptr == NULL)
1235 png_warning(png_ptr, "Only compression method 8 is supported by PNG");
1237 png_ptr->zlib_method = method;
1244 png_set_text_compression_level(png_structrp png_ptr, int level)
1248 if (png_ptr == NULL)
1251 png_ptr->zlib_text_level = level;
1255 png_set_text_compression_mem_level(png_structrp png_ptr, int mem_level)
1259 if (png_ptr == NULL)
1262 png_ptr->zlib_text_mem_level = mem_level;
1266 png_set_text_compression_strategy(png_structrp png_ptr, int strategy)
1270 if (png_ptr == NULL)
1273 png_ptr->zlib_text_strategy = strategy;
1280 png_set_text_compression_window_bits(png_structrp png_ptr, int window_bits)
1282 if (png_ptr == NULL)
1287 png_warning(png_ptr, "Only compression windows <= 32k supported by PNG");
1293 png_warning(png_ptr, "Only compression windows >= 256 supported by PNG");
1297 png_ptr->zlib_text_window_bits = window_bits;
1301 png_set_text_compression_method(png_structrp png_ptr, int method)
1305 if (png_ptr == NULL)
1309 png_warning(png_ptr, "Only compression method 8 is supported by PNG");
1311 png_ptr->zlib_text_method = method;
1317 png_set_write_status_fn(png_structrp png_ptr, png_write_status_ptr write_row_fn)
1319 if (png_ptr == NULL)
1322 png_ptr->write_row_fn = write_row_fn;
1327 png_set_write_user_transform_fn(png_structrp png_ptr, png_user_transform_ptr
1332 if (png_ptr == NULL)
1335 png_ptr->transformations |= PNG_USER_TRANSFORM;
1336 png_ptr->write_user_transform_fn = write_user_transform_fn;
1343 png_write_png(png_structrp png_ptr, png_inforp info_ptr,
1346 if (png_ptr == NULL || info_ptr == NULL)
1351 png_app_error(png_ptr, "no rows for png_write_image to write");
1356 png_write_info(png_ptr, info_ptr);
1363 png_set_invert_mono(png_ptr);
1365 png_app_error(png_ptr, "PNG_TRANSFORM_INVERT_MONO not supported");
1374 png_set_shift(png_ptr, &info_ptr->sig_bit);
1376 png_app_error(png_ptr, "PNG_TRANSFORM_SHIFT not supported");
1382 png_set_packing(png_ptr);
1384 png_app_error(png_ptr, "PNG_TRANSFORM_PACKING not supported");
1390 png_set_swap_alpha(png_ptr);
1392 png_app_error(png_ptr, "PNG_TRANSFORM_SWAP_ALPHA not supported");
1406 png_app_error(png_ptr,
1410 png_set_filler(png_ptr, 0, PNG_FILLER_AFTER);
1414 png_set_filler(png_ptr, 0, PNG_FILLER_BEFORE);
1416 png_app_error(png_ptr, "PNG_TRANSFORM_STRIP_FILLER not supported");
1423 png_set_bgr(png_ptr);
1425 png_app_error(png_ptr, "PNG_TRANSFORM_BGR not supported");
1431 png_set_swap(png_ptr);
1433 png_app_error(png_ptr, "PNG_TRANSFORM_SWAP_ENDIAN not supported");
1439 png_set_packswap(png_ptr);
1441 png_app_error(png_ptr, "PNG_TRANSFORM_PACKSWAP not supported");
1447 png_set_invert_alpha(png_ptr);
1449 png_app_error(png_ptr, "PNG_TRANSFORM_INVERT_ALPHA not supported");
1455 png_write_image(png_ptr, info_ptr->row_pointers);
1458 png_write_end(png_ptr, info_ptr);
1470 png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, image,
1473 if (png_ptr != NULL)
1475 png_infop info_ptr = png_create_info_struct(png_ptr);
1480 png_malloc_warn(png_ptr, (sizeof *control)));
1486 control->png_ptr = png_ptr;
1495 png_destroy_info_struct(png_ptr, &info_ptr);
1498 png_destroy_write_struct(&png_ptr, NULL);
1523 /* Write png_uint_16 input to a 16-bit PNG; the png_ptr has already been set to
1533 png_structrp png_ptr = image->opaque->png_ptr;
1561 png_error(png_ptr, "png_write_image: internal call error");
1624 png_write_row(png_ptr, png_voidcast(png_const_bytep, display->local_row));
1692 png_structrp png_ptr = image->opaque->png_ptr;
1749 png_write_row(png_ptr, png_voidcast(png_const_bytep,
1775 png_write_row(png_ptr, output_row);
1919 png_set_PLTE(image->opaque->png_ptr, image->opaque->info_ptr, palette,
1923 png_set_tRNS(image->opaque->png_ptr, image->opaque->info_ptr, tRNS,
1935 png_structrp png_ptr = image->opaque->png_ptr;
1947 png_set_benign_errors(png_ptr, 0/*error*/);
1977 png_error(image->opaque->png_ptr, "memory image too large");
1981 png_error(image->opaque->png_ptr, "supplied row stride too small");
1985 png_error(image->opaque->png_ptr, "image row stride too large");
1995 png_set_IHDR(png_ptr, info_ptr, image->width, image->height,
2004 png_error(image->opaque->png_ptr,
2009 png_set_IHDR(png_ptr, info_ptr, image->width, image->height,
2024 png_set_gAMA_fixed(png_ptr, info_ptr, PNG_GAMMA_LINEAR);
2027 png_set_cHRM_fixed(png_ptr, info_ptr,
2037 png_set_sRGB(png_ptr, info_ptr, PNG_sRGB_INTENT_PERCEPTUAL);
2043 png_set_gAMA_fixed(png_ptr, info_ptr, PNG_GAMMA_sRGB_INVERSE);
2046 png_write_info(png_ptr, info_ptr);
2058 png_set_swap(png_ptr);
2065 png_set_bgr(png_ptr);
2074 png_set_swap_alpha(png_ptr);
2083 png_set_packing(png_ptr);
2088 png_error(png_ptr, "png_write_image: unsupported transformation");
2107 png_set_filter(png_ptr, PNG_FILTER_TYPE_BASE, PNG_NO_FILTERS);
2114 png_set_compression_level(png_ptr, 3);
2125 png_bytep row = png_voidcast(png_bytep, png_malloc(png_ptr,
2126 png_get_rowbytes(png_ptr, info_ptr)));
2136 png_free(png_ptr, row);
2154 png_write_row(png_ptr, row);
2159 png_write_end(png_ptr, info_ptr);
2165 image_memory_write)(png_structp png_ptr, png_bytep/*const*/ data,
2169 png_ptr->io_ptr/*backdoor: png_get_io_ptr(png_ptr)*/);
2187 png_error(png_ptr, "png_image_write_to_memory: PNG too big");
2191 image_memory_flush)(png_structp png_ptr)
2193 PNG_UNUSED(png_ptr)
2206 png_set_write_fn(display->image->opaque->png_ptr, display/*io_ptr*/,
2297 image->opaque->png_ptr->io_ptr = file;