18#if defined(PNG_SIMPLIFIED_READ_SUPPORTED) && defined(PNG_STDIO_SUPPORTED)
22#ifdef PNG_READ_SUPPORTED
29#ifndef PNG_USER_MEM_SUPPORTED
33 return png_create_read_struct_2(user_png_ver, error_ptr, error_fn,
42 png_error_ptr error_fn, png_error_ptr warn_fn,
png_voidp mem_ptr,
43 png_malloc_ptr malloc_fn, png_free_ptr free_fn),
PNG_ALLOCATED)
46 error_fn, warn_fn, mem_ptr, malloc_fn, free_fn);
56# ifdef PNG_SEQUENTIAL_READ_SUPPORTED
60# ifdef PNG_BENIGN_READ_ERRORS_SUPPORTED
82#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
94#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
144#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
168#ifdef PNG_READ_bKGD_SUPPORTED
173#ifdef PNG_READ_cHRM_SUPPORTED
178#ifdef PNG_READ_eXIf_SUPPORTED
183#ifdef PNG_READ_gAMA_SUPPORTED
188#ifdef PNG_READ_hIST_SUPPORTED
193#ifdef PNG_READ_oFFs_SUPPORTED
198#ifdef PNG_READ_pCAL_SUPPORTED
203#ifdef PNG_READ_sCAL_SUPPORTED
208#ifdef PNG_READ_pHYs_SUPPORTED
213#ifdef PNG_READ_sBIT_SUPPORTED
218#ifdef PNG_READ_sRGB_SUPPORTED
223#ifdef PNG_READ_iCCP_SUPPORTED
228#ifdef PNG_READ_sPLT_SUPPORTED
233#ifdef PNG_READ_tEXt_SUPPORTED
238#ifdef PNG_READ_tIME_SUPPORTED
243#ifdef PNG_READ_tRNS_SUPPORTED
248#ifdef PNG_READ_zTXt_SUPPORTED
253#ifdef PNG_READ_iTXt_SUPPORTED
277# ifdef PNG_READ_TRANSFORMS_SUPPORTED
287 "png_read_update_info/png_start_read_image: duplicate call");
291#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
310 "png_start_read_image/png_read_update_info: duplicate call");
315#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
316#ifdef PNG_MNG_FEATURES_SUPPORTED
323 png_debug(1,
"in png_do_read_intrapixel");
345 for (
i = 0, rp = row;
i < row_width;
i++, rp += bytes_per_pixel)
347 *(rp) = (png_byte)((256 + *rp + *(rp + 1)) & 0xff);
348 *(rp+2) = (png_byte)((256 + *(rp + 2) + *(rp + 1)) & 0xff);
365 for (
i = 0, rp = row;
i < row_width;
i++, rp += bytes_per_pixel)
372 *(rp ) = (png_byte)((
red >> 8) & 0xff);
373 *(rp + 1) = (png_byte)(
red & 0xff);
374 *(rp + 4) = (png_byte)((
blue >> 8) & 0xff);
375 *(rp + 5) = (png_byte)(
blue & 0xff);
390 png_debug2(1,
"in png_read_row (row %lu, pass %d)",
407#ifdef PNG_WARNINGS_SUPPORTED
411#if defined(PNG_WRITE_INVERT_SUPPORTED) && !defined(PNG_READ_INVERT_SUPPORTED)
416#if defined(PNG_WRITE_FILLER_SUPPORTED) && !defined(PNG_READ_FILLER_SUPPORTED)
421#if defined(PNG_WRITE_PACKSWAP_SUPPORTED) && \
422 !defined(PNG_READ_PACKSWAP_SUPPORTED)
427#if defined(PNG_WRITE_PACK_SUPPORTED) && !defined(PNG_READ_PACK_SUPPORTED)
432#if defined(PNG_WRITE_SHIFT_SUPPORTED) && !defined(PNG_READ_SHIFT_SUPPORTED)
437#if defined(PNG_WRITE_BGR_SUPPORTED) && !defined(PNG_READ_BGR_SUPPORTED)
442#if defined(PNG_WRITE_SWAP_SUPPORTED) && !defined(PNG_READ_SWAP_SUPPORTED)
449#ifdef PNG_READ_INTERLACING_SUPPORTED
456 if (
png_ptr->interlaced != 0 &&
462 if (
png_ptr->row_number & 0x07)
483 if ((
png_ptr->row_number & 0x07) != 4)
505 if ((
png_ptr->row_number & 3) != 2)
528 if ((
png_ptr->row_number & 1) == 0)
561#ifdef PNG_MNG_FEATURES_SUPPORTED
566 png_do_read_intrapixel(&row_info,
png_ptr->row_buf + 1);
570#ifdef PNG_READ_TRANSFORMS_SUPPORTED
576 if (
png_ptr->transformed_pixel_depth == 0)
586#ifdef PNG_READ_INTERLACING_SUPPORTED
588 if (
png_ptr->interlaced != 0 &&
619#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
686#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
711#ifdef PNG_READ_INTERLACING_SUPPORTED
720 if (
png_ptr->interlaced != 0 &&
728 "using png_read_image");
741 "Cannot read interlaced image -- interlace handler disabled");
748 for (
j = 0;
j < pass;
j++)
751 for (
i = 0;
i < image_height;
i++)
760#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
768#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
780#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
785#ifdef PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED
809#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
841#ifdef PNG_READ_bKGD_SUPPORTED
846#ifdef PNG_READ_cHRM_SUPPORTED
851#ifdef PNG_READ_eXIf_SUPPORTED
856#ifdef PNG_READ_gAMA_SUPPORTED
861#ifdef PNG_READ_hIST_SUPPORTED
866#ifdef PNG_READ_oFFs_SUPPORTED
871#ifdef PNG_READ_pCAL_SUPPORTED
876#ifdef PNG_READ_sCAL_SUPPORTED
881#ifdef PNG_READ_pHYs_SUPPORTED
886#ifdef PNG_READ_sBIT_SUPPORTED
891#ifdef PNG_READ_sRGB_SUPPORTED
896#ifdef PNG_READ_iCCP_SUPPORTED
901#ifdef PNG_READ_sPLT_SUPPORTED
906#ifdef PNG_READ_tEXt_SUPPORTED
911#ifdef PNG_READ_tIME_SUPPORTED
916#ifdef PNG_READ_tRNS_SUPPORTED
921#ifdef PNG_READ_zTXt_SUPPORTED
926#ifdef PNG_READ_iTXt_SUPPORTED
944#ifdef PNG_READ_GAMMA_SUPPORTED
955#ifdef PNG_READ_QUANTIZE_SUPPORTED
969#if defined(PNG_tRNS_SUPPORTED) || \
970 defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
981#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
986#if defined(PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED) && \
987 defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED)
992#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED
997#if defined(PNG_READ_EXPAND_SUPPORTED) && \
998 defined(PNG_ARM_NEON_IMPLEMENTATION)
1016 png_debug(1,
"in png_destroy_read_struct");
1018 if (png_ptr_ptr !=
NULL)
1031 *png_ptr_ptr =
NULL;
1042 png_ptr->read_row_fn = read_row_fn;
1046#ifdef PNG_SEQUENTIAL_READ_SUPPORTED
1047#ifdef PNG_INFO_IMAGE_SUPPORTED
1050 int transforms,
voidp params)
1071 if ((transforms & PNG_TRANSFORM_SCALE_16) != 0)
1075#ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED
1086#ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED
1096#ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
1106#ifdef PNG_READ_PACK_SUPPORTED
1116#ifdef PNG_READ_PACKSWAP_SUPPORTED
1128#ifdef PNG_READ_EXPAND_SUPPORTED
1140#ifdef PNG_READ_INVERT_SUPPORTED
1151#ifdef PNG_READ_SHIFT_SUPPORTED
1160#ifdef PNG_READ_BGR_SUPPORTED
1168#ifdef PNG_READ_SWAP_ALPHA_SUPPORTED
1176#ifdef PNG_READ_SWAP_SUPPORTED
1185#ifdef PNG_READ_INVERT_ALPHA_SUPPORTED
1194#ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
1202#ifdef PNG_READ_EXPAND_16_SUPPORTED
1231 for (iptr=0; iptr<
info_ptr->height; iptr++)
1236 for (iptr = 0; iptr <
info_ptr->height; iptr++)
1252#ifdef PNG_SIMPLIFIED_READ_SUPPORTED
1270#define PNG_CMAP_NONE 0
1271#define PNG_CMAP_GA 1
1272#define PNG_CMAP_TRANS 2
1273#define PNG_CMAP_RGB 3
1274#define PNG_CMAP_RGB_ALPHA 4
1277#define PNG_CMAP_NONE_BACKGROUND 256
1278#define PNG_CMAP_GA_BACKGROUND 231
1279#define PNG_CMAP_TRANS_BACKGROUND 254
1280#define PNG_CMAP_RGB_BACKGROUND 256
1281#define PNG_CMAP_RGB_ALPHA_BACKGROUND 216
1294 ptrdiff_t row_bytes;
1297 int colormap_processing;
1298} png_image_read_control;
1306png_image_read_init(png_imagep image)
1311 png_safe_error, png_safe_warning);
1316 memset(image, 0, (
sizeof *image));
1317 image->version = PNG_IMAGE_VERSION;
1347 return png_image_error(image,
"png_image_read: out of memory");
1350 return png_image_error(image,
"png_image_read: opaque pointer not NULL");
1360 format |= PNG_FORMAT_FLAG_COLOR;
1363 format |= PNG_FORMAT_FLAG_ALPHA;
1370 else if (
png_ptr->num_trans > 0)
1371 format |= PNG_FORMAT_FLAG_ALPHA;
1374 format |= PNG_FORMAT_FLAG_LINEAR;
1377 format |= PNG_FORMAT_FLAG_COLORMAP;
1407png_image_read_header(
png_voidp argument)
1413#ifdef PNG_BENIGN_ERRORS_SUPPORTED
1427#ifdef PNG_COLORSPACE_SUPPORTED
1433 if ((
format & PNG_FORMAT_FLAG_COLOR) != 0 && ((
png_ptr->colorspace.flags
1436 image->flags |= PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB;
1449 cmap_entries = 1U <<
png_ptr->bit_depth;
1461 if (cmap_entries > 256)
1464 image->colormap_entries = cmap_entries;
1470#ifdef PNG_STDIO_SUPPORTED
1472png_image_begin_read_from_stdio(png_imagep image, FILE*
file)
1474 if (image !=
NULL &&
image->version == PNG_IMAGE_VERSION)
1478 if (png_image_read_init(image) != 0)
1485 return png_safe_execute(image, png_image_read_header, image);
1490 return png_image_error(image,
1491 "png_image_begin_read_from_stdio: invalid argument");
1494 else if (image !=
NULL)
1495 return png_image_error(image,
1496 "png_image_begin_read_from_stdio: incorrect PNG_IMAGE_VERSION");
1502png_image_begin_read_from_file(png_imagep image,
const char *file_name)
1504 if (image !=
NULL &&
image->version == PNG_IMAGE_VERSION)
1506 if (file_name !=
NULL)
1508 FILE *fp = fopen(file_name,
"rb");
1512 if (png_image_read_init(image) != 0)
1514 image->opaque->png_ptr->io_ptr = fp;
1515 image->opaque->owned_file = 1;
1516 return png_safe_execute(image, png_image_read_header, image);
1524 return png_image_error(image, strerror(errno));
1528 return png_image_error(image,
1529 "png_image_begin_read_from_file: invalid argument");
1532 else if (image !=
NULL)
1533 return png_image_error(image,
1534 "png_image_begin_read_from_file: incorrect PNG_IMAGE_VERSION");
1548 png_controlp
cp =
image->opaque;
1554 if (memory !=
NULL &&
size >= need)
1557 cp->memory = memory + need;
1570int PNGAPI png_image_begin_read_from_memory(png_imagep image,
1573 if (image !=
NULL &&
image->version == PNG_IMAGE_VERSION)
1577 if (png_image_read_init(image) != 0)
1586 image->opaque->png_ptr->read_data_fn = png_image_memory_read;
1588 return png_safe_execute(image, png_image_read_header, image);
1593 return png_image_error(image,
1594 "png_image_begin_read_from_memory: invalid argument");
1597 else if (image !=
NULL)
1598 return png_image_error(image,
1599 "png_image_begin_read_from_memory: incorrect PNG_IMAGE_VERSION");
1607#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
1630 static const png_byte chunks_to_process[] = {
1631 98, 75, 71, 68,
'\0',
1632 99, 72, 82, 77,
'\0',
1633 103, 65, 77, 65,
'\0',
1634# ifdef PNG_READ_iCCP_SUPPORTED
1635 105, 67, 67, 80,
'\0',
1637 115, 66, 73, 84,
'\0',
1638 115, 82, 71, 66,
'\0',
1649 chunks_to_process, (
int)(
sizeof chunks_to_process)/5);
1653# define PNG_SKIP_CHUNKS(p) png_image_skip_unused_chunks(p)
1655# define PNG_SKIP_CHUNKS(p) ((void)0)
1662#define PNG_DIV51(v8) (((v8) * 5 + 130) >> 8)
1666set_file_encoding(png_image_read_control *display)
1671 if (png_gamma_not_sRGB(
g) != 0)
1673 display->file_encoding = P_FILE;
1678 display->file_encoding = P_sRGB;
1682 display->file_encoding = P_LINEAR8;
1686decode_gamma(png_image_read_control *display,
png_uint_32 value,
int encoding)
1688 if (encoding == P_FILE)
1689 encoding = display->file_encoding;
1691 if (encoding == P_NOTSET)
1693 set_file_encoding(display);
1694 encoding = display->file_encoding;
1716 png_error(display->image->opaque->png_ptr,
1717 "unexpected encoding (internal error)");
1725png_colormap_compose(png_image_read_control *display,
1734 png_uint_32 f = decode_gamma(display, foreground, foreground_encoding);
1735 png_uint_32 b = decode_gamma(display, background, encoding);
1740 f =
f * alpha +
b * (255-alpha);
1742 if (encoding == P_LINEAR)
1749 f = (
f+32768) >> 16;
1753 f = PNG_sRGB_FROM_LINEAR(
f);
1762png_create_colormap_entry(png_image_read_control *display,
1766 png_imagep
image = display->image;
1767 int output_encoding = (
image->format & PNG_FORMAT_FLAG_LINEAR) != 0 ?
1769 int convert_to_Y = (
image->format & PNG_FORMAT_FLAG_COLOR) == 0 &&
1770 (
red != green || green != blue);
1773 png_error(
image->opaque->png_ptr,
"color-map index out of range");
1778 if (encoding == P_FILE)
1780 if (display->file_encoding == P_NOTSET)
1781 set_file_encoding(display);
1786 encoding = display->file_encoding;
1789 if (encoding == P_FILE)
1797 if (convert_to_Y != 0 || output_encoding == P_LINEAR)
1800 encoding = P_LINEAR;
1805 red = PNG_sRGB_FROM_LINEAR(
red * 255);
1806 green = PNG_sRGB_FROM_LINEAR(green * 255);
1807 blue = PNG_sRGB_FROM_LINEAR(blue * 255);
1812 else if (encoding == P_LINEAR8)
1821 encoding = P_LINEAR;
1824 else if (encoding == P_sRGB &&
1825 (convert_to_Y != 0 || output_encoding == P_LINEAR))
1830 red = png_sRGB_table[
red];
1834 encoding = P_LINEAR;
1838 if (encoding == P_LINEAR)
1840 if (convert_to_Y != 0)
1846 if (output_encoding == P_LINEAR)
1847 y = (
y + 16384) >> 15;
1854 y = PNG_sRGB_FROM_LINEAR((
y + 64) >> 7);
1862 else if (output_encoding == P_sRGB)
1864 red = PNG_sRGB_FROM_LINEAR(
red * 255);
1865 green = PNG_sRGB_FROM_LINEAR(green * 255);
1866 blue = PNG_sRGB_FROM_LINEAR(blue * 255);
1872 if (encoding != output_encoding)
1873 png_error(
image->opaque->png_ptr,
"bad encoding (internal error)");
1877# ifdef PNG_FORMAT_AFIRST_SUPPORTED
1878 int afirst = (
image->format & PNG_FORMAT_FLAG_AFIRST) != 0 &&
1879 (
image->format & PNG_FORMAT_FLAG_ALPHA) != 0;
1883# ifdef PNG_FORMAT_BGR_SUPPORTED
1884 int bgr = (
image->format & PNG_FORMAT_FLAG_BGR) != 0 ? 2 : 0;
1889 if (output_encoding == P_LINEAR)
1893 entry += ip * PNG_IMAGE_SAMPLE_CHANNELS(
image->format);
1899 switch (PNG_IMAGE_SAMPLE_CHANNELS(
image->format))
1910 blue = (
blue * alpha + 32767U)/65535U;
1912 red = (
red * alpha + 32767U)/65535U;
1948 entry += ip * PNG_IMAGE_SAMPLE_CHANNELS(
image->format);
1950 switch (PNG_IMAGE_SAMPLE_CHANNELS(
image->format))
1953 entry[afirst ? 0 : 3] = (png_byte)alpha;
1956 entry[afirst + (2 ^ bgr)] = (png_byte)
blue;
1957 entry[afirst + 1] = (png_byte)green;
1958 entry[afirst + bgr] = (png_byte)
red;
1962 entry[1 ^ afirst] = (png_byte)alpha;
1965 entry[afirst] = (png_byte)green;
1983make_gray_file_colormap(png_image_read_control *display)
1987 for (
i=0;
i<256; ++
i)
1988 png_create_colormap_entry(display,
i,
i,
i,
i, 255, P_FILE);
1994make_gray_colormap(png_image_read_control *display)
1998 for (
i=0;
i<256; ++
i)
1999 png_create_colormap_entry(display,
i,
i,
i,
i, 255, P_sRGB);
2003#define PNG_GRAY_COLORMAP_ENTRIES 256
2006make_ga_colormap(png_image_read_control *display)
2037 unsigned int gray = (
i * 256 + 115) / 231;
2038 png_create_colormap_entry(display,
i++, gray, gray, gray, 255, P_sRGB);
2044 png_create_colormap_entry(display,
i++, 255, 255, 255, 0, P_sRGB);
2051 png_create_colormap_entry(display,
i++,
g*51,
g*51,
g*51,
a*51,
2058#define PNG_GA_COLORMAP_ENTRIES 256
2061make_rgb_colormap(png_image_read_control *display)
2066 for (
i=
r=0;
r<6; ++
r)
2075 png_create_colormap_entry(display,
i++,
r*51,
g*51,
b*51, 255,
2083#define PNG_RGB_COLORMAP_ENTRIES 216
2086#define PNG_RGB_INDEX(r,g,b) \
2087 ((png_byte)(6 * (6 * PNG_DIV51(r) + PNG_DIV51(g)) + PNG_DIV51(b)))
2090png_image_read_colormap(
png_voidp argument)
2092 png_image_read_control *display =
2094 png_imagep
image = display->image;
2098 int output_encoding = (output_format & PNG_FORMAT_FLAG_LINEAR) != 0 ?
2101 unsigned int cmap_entries;
2102 unsigned int output_processing;
2103 unsigned int data_encoding = P_NOTSET;
2108 unsigned int background_index = 256;
2112 int expand_tRNS = 0;
2121 ((output_format & PNG_FORMAT_FLAG_ALPHA) == 0) )
2123 if (output_encoding == P_LINEAR)
2124 back_b = back_g = back_r = 0;
2126 else if (display->background ==
NULL )
2128 "background color must be supplied to remove alpha/transparency");
2136 back_g = display->background->green;
2137 if ((output_format & PNG_FORMAT_FLAG_COLOR) != 0)
2139 back_r = display->background->red;
2140 back_b = display->background->blue;
2143 back_b = back_r = back_g;
2147 else if (output_encoding == P_LINEAR)
2148 back_b = back_r = back_g = 65535;
2151 back_b = back_r = back_g = 255;
2165 if (
png_ptr->bit_depth == 16 &&
2166 (
image->flags & PNG_IMAGE_FLAG_16BIT_sRGB) == 0)
2188 unsigned int step,
i,
val, trans = 256, back_alpha = 0;
2190 cmap_entries = 1U <<
png_ptr->bit_depth;
2191 if (cmap_entries >
image->colormap_entries)
2194 step = 255 / (cmap_entries - 1);
2195 output_processing = PNG_CMAP_NONE;
2202 trans =
png_ptr->trans_color.gray;
2204 if ((output_format & PNG_FORMAT_FLAG_ALPHA) == 0)
2205 back_alpha = output_encoding == P_LINEAR ? 65535 : 255;
2215 for (
i=
val=0;
i<cmap_entries; ++
i,
val += step)
2222 png_create_colormap_entry(display,
i,
val,
val,
val, 255,
2234 png_create_colormap_entry(display,
i, back_r, back_g, back_b,
2235 back_alpha, output_encoding);
2239 data_encoding = P_FILE;
2268 data_encoding = P_sRGB;
2270 if (PNG_GRAY_COLORMAP_ENTRIES >
image->colormap_entries)
2273 cmap_entries = (
unsigned int)make_gray_colormap(display);
2277 unsigned int back_alpha;
2279 if ((output_format & PNG_FORMAT_FLAG_ALPHA) != 0)
2284 if (back_r == back_g && back_g == back_b)
2292 if (output_encoding == P_LINEAR)
2294 gray = PNG_sRGB_FROM_LINEAR(gray * 255);
2299 png_create_colormap_entry(display, gray, back_g, back_g,
2300 back_g, 65535, P_LINEAR);
2317 output_processing = PNG_CMAP_NONE;
2326 back_alpha = output_encoding == P_LINEAR ? 65535 : 255;
2338 output_processing = PNG_CMAP_TRANS;
2339 background_index = 254;
2344 png_create_colormap_entry(display, 254, back_r, back_g, back_b,
2345 back_alpha, output_encoding);
2349 output_processing = PNG_CMAP_NONE;
2364 data_encoding = P_sRGB;
2366 if ((output_format & PNG_FORMAT_FLAG_ALPHA) != 0)
2368 if (PNG_GA_COLORMAP_ENTRIES >
image->colormap_entries)
2371 cmap_entries = (
unsigned int)make_ga_colormap(display);
2373 background_index = PNG_CMAP_GA_BACKGROUND;
2374 output_processing = PNG_CMAP_GA;
2395 if ((output_format & PNG_FORMAT_FLAG_COLOR) == 0 ||
2396 (back_r == back_g && back_g == back_b))
2402 if (PNG_GRAY_COLORMAP_ENTRIES >
image->colormap_entries)
2405 cmap_entries = (
unsigned int)make_gray_colormap(display);
2407 if (output_encoding == P_LINEAR)
2409 gray = PNG_sRGB_FROM_LINEAR(gray * 255);
2412 png_create_colormap_entry(display, gray, back_g, back_g,
2413 back_g, 65535, P_LINEAR);
2426 output_processing = PNG_CMAP_NONE;
2436 if (PNG_GA_COLORMAP_ENTRIES >
image->colormap_entries)
2443 png_create_colormap_entry(display,
i++, gray, gray, gray,
2450 background_index =
i;
2451 png_create_colormap_entry(display,
i++, back_r, back_g, back_b,
2457 output_encoding == P_LINEAR ? 65535U : 255U,
2469 if (output_encoding == P_sRGB)
2475 back_r = png_sRGB_table[back_r];
2476 back_g = png_sRGB_table[back_g];
2477 back_b = png_sRGB_table[back_b];
2496 png_create_colormap_entry(display,
i++,
2497 PNG_sRGB_FROM_LINEAR(gray + back_rx),
2498 PNG_sRGB_FROM_LINEAR(gray + back_gx),
2499 PNG_sRGB_FROM_LINEAR(gray + back_bx), 255, P_sRGB);
2504 output_processing = PNG_CMAP_GA;
2514 if ((output_format & PNG_FORMAT_FLAG_COLOR) == 0)
2526 data_encoding = P_sRGB;
2533 (output_format & PNG_FORMAT_FLAG_ALPHA) != 0)
2541 if (PNG_GA_COLORMAP_ENTRIES >
image->colormap_entries)
2544 cmap_entries = (
unsigned int)make_ga_colormap(display);
2545 background_index = PNG_CMAP_GA_BACKGROUND;
2546 output_processing = PNG_CMAP_GA;
2555 if (PNG_GRAY_COLORMAP_ENTRIES >
image->colormap_entries)
2568 png_gamma_not_sRGB(
png_ptr->colorspace.gamma) != 0)
2570 cmap_entries = (
unsigned int)make_gray_file_colormap(display);
2571 data_encoding = P_FILE;
2575 cmap_entries = (
unsigned int)make_gray_colormap(display);
2590 if (data_encoding == P_FILE)
2597 if (output_encoding == P_sRGB)
2598 gray = png_sRGB_table[gray];
2606 png_create_colormap_entry(display, gray, back_g, back_g,
2607 back_g, 0, output_encoding);
2610 else if (output_encoding == P_LINEAR)
2612 gray = PNG_sRGB_FROM_LINEAR(gray * 255);
2616 png_create_colormap_entry(display, gray, back_g, back_g,
2617 back_g, 0, P_LINEAR);
2636 output_processing = PNG_CMAP_NONE;
2647 data_encoding = P_sRGB;
2656 if ((output_format & PNG_FORMAT_FLAG_ALPHA) != 0)
2660 if (PNG_RGB_COLORMAP_ENTRIES+1+27 >
image->colormap_entries)
2663 cmap_entries = (
unsigned int)make_rgb_colormap(display);
2666 png_create_colormap_entry(display, cmap_entries, 255, 255,
2672 background_index = cmap_entries++;
2675 for (
r=0;
r<256;
r = (
r << 1) | 0x7f)
2679 for (
g=0;
g<256;
g = (
g << 1) | 0x7f)
2686 for (
b=0;
b<256;
b = (
b << 1) | 0x7f)
2687 png_create_colormap_entry(display, cmap_entries++,
2688 r,
g,
b, 128, P_sRGB);
2693 output_processing = PNG_CMAP_RGB_ALPHA;
2705 unsigned int sample_size =
2706 PNG_IMAGE_SAMPLE_SIZE(output_format);
2709 if (PNG_RGB_COLORMAP_ENTRIES+1+27 >
image->colormap_entries)
2712 cmap_entries = (
unsigned int)make_rgb_colormap(display);
2714 png_create_colormap_entry(display, cmap_entries, back_r,
2715 back_g, back_b, 0, output_encoding);
2717 if (output_encoding == P_LINEAR)
2719 r = PNG_sRGB_FROM_LINEAR(back_r * 255);
2720 g = PNG_sRGB_FROM_LINEAR(back_g * 255);
2721 b = PNG_sRGB_FROM_LINEAR(back_b * 255);
2737 sample_size * cmap_entries,
2739 sample_size * PNG_RGB_INDEX(
r,
g,
b),
2743 background_index = cmap_entries++;
2748 for (
r=0;
r<256;
r = (
r << 1) | 0x7f)
2750 for (
g=0;
g<256;
g = (
g << 1) | 0x7f)
2755 for (
b=0;
b<256;
b = (
b << 1) | 0x7f)
2756 png_create_colormap_entry(display, cmap_entries++,
2757 png_colormap_compose(display,
r, P_sRGB, 128,
2758 back_r, output_encoding),
2759 png_colormap_compose(display,
g, P_sRGB, 128,
2760 back_g, output_encoding),
2761 png_colormap_compose(display,
b, P_sRGB, 128,
2762 back_b, output_encoding),
2763 0, output_encoding);
2768 output_processing = PNG_CMAP_RGB_ALPHA;
2784 output_processing = PNG_CMAP_RGB;
2794 if (PNG_RGB_COLORMAP_ENTRIES >
image->colormap_entries)
2797 cmap_entries = (
unsigned int)make_rgb_colormap(display);
2798 output_processing = PNG_CMAP_RGB;
2808 unsigned int num_trans =
png_ptr->num_trans;
2811 int do_background = trans !=
NULL &&
2812 (output_format & PNG_FORMAT_FLAG_ALPHA) == 0;
2819 output_processing = PNG_CMAP_NONE;
2820 data_encoding = P_FILE;
2821 cmap_entries = (
unsigned int)
png_ptr->num_palette;
2822 if (cmap_entries > 256)
2825 if (cmap_entries > (
unsigned int)
image->colormap_entries)
2828 for (
i=0;
i < cmap_entries; ++
i)
2830 if (do_background != 0 &&
i < num_trans && trans[
i] < 255)
2833 png_create_colormap_entry(display,
i, back_r, back_g,
2834 back_b, 0, output_encoding);
2841 png_create_colormap_entry(display,
i,
2842 png_colormap_compose(display, colormap[
i].
red,
2843 P_FILE, trans[
i], back_r, output_encoding),
2844 png_colormap_compose(display, colormap[
i].green,
2845 P_FILE, trans[
i], back_g, output_encoding),
2846 png_colormap_compose(display, colormap[
i].blue,
2847 P_FILE, trans[
i], back_b, output_encoding),
2848 output_encoding == P_LINEAR ? trans[
i] * 257U :
2855 png_create_colormap_entry(display,
i, colormap[
i].
red,
2856 colormap[
i].green, colormap[
i].blue,
2857 i < num_trans ? trans[
i] : 255U, P_FILE);
2874 if (expand_tRNS != 0 &&
png_ptr->num_trans > 0 &&
2878 switch (data_encoding)
2896 if (cmap_entries > 256 || cmap_entries >
image->colormap_entries)
2899 image->colormap_entries = cmap_entries;
2902 switch (output_processing)
2905 if (background_index != PNG_CMAP_NONE_BACKGROUND)
2906 goto bad_background;
2910 if (background_index != PNG_CMAP_GA_BACKGROUND)
2911 goto bad_background;
2914 case PNG_CMAP_TRANS:
2915 if (background_index >= cmap_entries ||
2916 background_index != PNG_CMAP_TRANS_BACKGROUND)
2917 goto bad_background;
2921 if (background_index != PNG_CMAP_RGB_BACKGROUND)
2922 goto bad_background;
2925 case PNG_CMAP_RGB_ALPHA:
2926 if (background_index != PNG_CMAP_RGB_ALPHA_BACKGROUND)
2927 goto bad_background;
2937 display->colormap_processing = (
int)output_processing;
2944png_image_read_and_map(
png_voidp argument)
2946 png_image_read_control *display =
png_voidcast(png_image_read_control*,
2948 png_imagep
image = display->image;
2973 int proc = display->colormap_processing;
2975 ptrdiff_t step_row = display->row_bytes;
2978 for (pass = 0; pass < passes; ++pass)
2980 unsigned int startx, stepx, stepy;
3019 for (; outrow < end_row; outrow += stepx)
3022 unsigned int gray = *inrow++;
3023 unsigned int alpha = *inrow++;
3032 entry = (231 * gray + 128) >> 8;
3034 else if (alpha < 26)
3040 entry = 226 + 6 * PNG_DIV51(alpha) + PNG_DIV51(gray);
3043 *outrow = (png_byte)entry;
3047 case PNG_CMAP_TRANS:
3048 for (; outrow < end_row; outrow += stepx)
3050 png_byte gray = *inrow++;
3051 png_byte alpha = *inrow++;
3054 *outrow = PNG_CMAP_TRANS_BACKGROUND;
3056 else if (gray != PNG_CMAP_TRANS_BACKGROUND)
3060 *outrow = (png_byte)(PNG_CMAP_TRANS_BACKGROUND+1);
3065 for (; outrow < end_row; outrow += stepx)
3067 *outrow = PNG_RGB_INDEX(inrow[0], inrow[1], inrow[2]);
3072 case PNG_CMAP_RGB_ALPHA:
3073 for (; outrow < end_row; outrow += stepx)
3075 unsigned int alpha = inrow[3];
3083 *outrow = PNG_RGB_INDEX(inrow[0], inrow[1],
3086 else if (alpha < 64)
3087 *outrow = PNG_CMAP_RGB_ALPHA_BACKGROUND;
3097 unsigned int back_i = PNG_CMAP_RGB_ALPHA_BACKGROUND+1;
3108 if (inrow[0] & 0x80) back_i += 9;
3109 if (inrow[0] & 0x40) back_i += 9;
3110 if (inrow[0] & 0x80) back_i += 3;
3111 if (inrow[0] & 0x40) back_i += 3;
3112 if (inrow[0] & 0x80) back_i += 1;
3113 if (inrow[0] & 0x40) back_i += 1;
3115 *outrow = (png_byte)back_i;
3133png_image_read_colormapped(
png_voidp argument)
3135 png_image_read_control *display =
png_voidcast(png_image_read_control*,
3137 png_imagep
image = display->image;
3150 if (display->colormap_processing == PNG_CMAP_NONE)
3156 switch (display->colormap_processing)
3169 case PNG_CMAP_TRANS:
3178 image->colormap_entries == 256)
3188 image->colormap_entries == 216)
3193 case PNG_CMAP_RGB_ALPHA:
3198 image->colormap_entries == 244 )
3214 ptrdiff_t row_bytes = display->row_stride;
3222 ptr += (
image->height-1) * (-row_bytes);
3226 display->first_row = first_row;
3227 display->row_bytes = row_bytes;
3235 display->local_row =
row;
3236 result = png_safe_execute(image, png_image_read_and_map, display);
3237 display->local_row =
NULL;
3247 while (--passes >= 0)
3265png_image_read_composite(
png_voidp argument)
3267 png_image_read_control *display =
png_voidcast(png_image_read_control*,
3269 png_imagep
image = display->image;
3290 ptrdiff_t step_row = display->row_bytes;
3291 unsigned int channels =
3292 (
image->format & PNG_FORMAT_FLAG_COLOR) != 0 ? 3 : 1;
3295 for (pass = 0; pass < passes; ++pass)
3297 unsigned int startx, stepx, stepy;
3330 outrow +=
y * step_row;
3331 end_row = outrow +
width * channels;
3335 for (; outrow < end_row; outrow += stepx)
3337 png_byte alpha = inrow[channels];
3343 for (
c=0;
c<channels; ++
c)
3355 component *= 257*255;
3356 component += (255-alpha)*png_sRGB_table[outrow[
c]];
3362 component = PNG_sRGB_FROM_LINEAR(component);
3365 outrow[
c] = (png_byte)component;
3369 inrow += channels+1;
3392png_image_read_background(
png_voidp argument)
3394 png_image_read_control *display =
png_voidcast(png_image_read_control*,
3396 png_imagep
image = display->image;
3418 if ((
image->format & PNG_FORMAT_FLAG_LINEAR) == 0 &&
3419 (
image->format & PNG_FORMAT_FLAG_ALPHA) != 0)
3451 ptrdiff_t step_row = display->row_bytes;
3453 for (pass = 0; pass < passes; ++pass)
3456 unsigned int startx, stepx, stepy;
3478 if (display->background ==
NULL)
3483 display->local_row);
3492 for (; outrow < end_row; outrow += stepx)
3494 png_byte alpha = inrow[1];
3506 component = png_sRGB_table[component] * alpha;
3507 component += png_sRGB_table[outrow[0]] *
3509 component = PNG_sRGB_FROM_LINEAR(component);
3512 outrow[0] = (png_byte)component;
3522 png_byte background8 = display->background->green;
3523 png_uint_16 background = png_sRGB_table[background8];
3528 display->local_row);
3537 for (; outrow < end_row; outrow += stepx)
3539 png_byte alpha = inrow[1];
3547 component = png_sRGB_table[component] * alpha;
3548 component += background * (255-alpha);
3549 component = PNG_sRGB_FROM_LINEAR(component);
3552 outrow[0] = (png_byte)component;
3556 outrow[0] = background8;
3561 row += display->row_bytes;
3575 display->first_row);
3579 ptrdiff_t step_row = display->row_bytes / 2;
3580 unsigned int preserve_alpha = (
image->format &
3581 PNG_FORMAT_FLAG_ALPHA) != 0;
3582 unsigned int outchannels = 1U+preserve_alpha;
3585# ifdef PNG_SIMPLIFIED_READ_AFIRST_SUPPORTED
3586 if (preserve_alpha != 0 &&
3587 (
image->format & PNG_FORMAT_FLAG_AFIRST) != 0)
3591 for (pass = 0; pass < passes; ++pass)
3593 unsigned int startx, stepx, stepy;
3614 stepx = outchannels;
3626 display->local_row),
NULL);
3632 for (; outrow < end_row; outrow += stepx)
3651 if (preserve_alpha != 0)
3652 outrow[1 ^ swap_alpha] = alpha;
3672png_image_read_direct(
png_voidp argument)
3674 png_image_read_control *display =
png_voidcast(png_image_read_control*,
3676 png_imagep
image = display->image;
3682 int do_local_compose = 0;
3683 int do_local_background = 0;
3695 ~PNG_FORMAT_FLAG_COLORMAP ;
3701 if ((change & PNG_FORMAT_FLAG_COLOR) != 0)
3704 if ((
format & PNG_FORMAT_FLAG_COLOR) != 0)
3722 if ((base_format & PNG_FORMAT_FLAG_ALPHA) != 0)
3723 do_local_background = 1;
3729 change &= ~PNG_FORMAT_FLAG_COLOR;
3737 if ((base_format & PNG_FORMAT_FLAG_LINEAR) != 0 &&
3738 (
image->flags & PNG_IMAGE_FLAG_16BIT_sRGB) == 0)
3754 if ((base_format & PNG_FORMAT_FLAG_ALPHA) != 0)
3769 if ((change & PNG_FORMAT_FLAG_ASSOCIATED_ALPHA) != 0)
3772 change &= ~PNG_FORMAT_FLAG_ASSOCIATED_ALPHA;
3781 if (do_local_background != 0)
3792 do_local_background = 0;
3796 do_local_background = 2;
3804 if ((change & PNG_FORMAT_FLAG_LINEAR) != 0)
3812 change &= ~PNG_FORMAT_FLAG_LINEAR;
3816 if ((change & PNG_FORMAT_FLAG_ALPHA) != 0)
3822 if ((base_format & PNG_FORMAT_FLAG_ALPHA) != 0)
3829 if (do_local_background != 0)
3830 do_local_background = 2;
3833 else if (linear != 0)
3837 else if (display->background !=
NULL)
3842 c.red = display->background->red;
3843 c.green = display->background->green;
3844 c.blue = display->background->blue;
3845 c.gray = display->background->green;
3860 do_local_compose = 1;
3886#ifdef PNG_FORMAT_AFIRST_SUPPORTED
3887 if ((
format & PNG_FORMAT_FLAG_AFIRST) != 0)
3890 change &= ~PNG_FORMAT_FLAG_AFIRST;
3901 change &= ~PNG_FORMAT_FLAG_ALPHA;
3910# ifdef PNG_FORMAT_BGR_SUPPORTED
3911 if ((change & PNG_FORMAT_FLAG_BGR) != 0)
3916 if ((
format & PNG_FORMAT_FLAG_COLOR) != 0)
3920 format &= ~PNG_FORMAT_FLAG_BGR;
3922 change &= ~PNG_FORMAT_FLAG_BGR;
3926# ifdef PNG_FORMAT_AFIRST_SUPPORTED
3927 if ((change & PNG_FORMAT_FLAG_AFIRST) != 0)
3934 if ((
format & PNG_FORMAT_FLAG_ALPHA) != 0)
3939 if (do_local_background != 2)
3944 format &= ~PNG_FORMAT_FLAG_AFIRST;
3946 change &= ~PNG_FORMAT_FLAG_AFIRST;
3974 if (do_local_compose == 0 && do_local_background != 2)
3983 info_format |= PNG_FORMAT_FLAG_COLOR;
3988 if (do_local_compose == 0)
3991 if (do_local_background != 2 ||
3992 (
format & PNG_FORMAT_FLAG_ALPHA) != 0)
3993 info_format |= PNG_FORMAT_FLAG_ALPHA;
3997 else if (do_local_compose != 0)
4000 if ((
format & PNG_FORMAT_FLAG_ASSOCIATED_ALPHA) != 0) {
4001 info_format |= PNG_FORMAT_FLAG_ASSOCIATED_ALPHA;
4005 info_format |= PNG_FORMAT_FLAG_LINEAR;
4007#ifdef PNG_FORMAT_BGR_SUPPORTED
4009 info_format |= PNG_FORMAT_FLAG_BGR;
4012#ifdef PNG_FORMAT_AFIRST_SUPPORTED
4013 if (do_local_background == 2)
4015 if ((
format & PNG_FORMAT_FLAG_AFIRST) != 0)
4016 info_format |= PNG_FORMAT_FLAG_AFIRST;
4023 if (do_local_background == 2)
4026 info_format |= PNG_FORMAT_FLAG_AFIRST;
4031 if (info_format !=
format)
4042 ptrdiff_t row_bytes = display->row_stride;
4053 ptr += (
image->height-1) * (-row_bytes);
4057 display->first_row = first_row;
4058 display->row_bytes = row_bytes;
4061 if (do_local_compose != 0)
4066 display->local_row =
row;
4067 result = png_safe_execute(image, png_image_read_composite, display);
4068 display->local_row =
NULL;
4074 else if (do_local_background == 2)
4079 display->local_row =
row;
4080 result = png_safe_execute(image, png_image_read_background, display);
4081 display->local_row =
NULL;
4091 while (--passes >= 0)
4109 void *buffer,
png_int_32 row_stride,
void *colormap)
4111 if (image !=
NULL &&
image->version == PNG_IMAGE_VERSION)
4117 unsigned int channels = PNG_IMAGE_PIXEL_CHANNELS(
image->format);
4125 if (
image->width <= 0x7fffffffU/channels)
4130 if (row_stride == 0)
4161 if (
image->height <=
4162 0xffffffffU/PNG_IMAGE_PIXEL_COMPONENT_SIZE(
image->format)/
check)
4164 if ((
image->format & PNG_FORMAT_FLAG_COLORMAP) == 0 ||
4165 (
image->colormap_entries > 0 && colormap !=
NULL))
4168 png_image_read_control display;
4170 memset(&display, 0, (
sizeof display));
4171 display.image =
image;
4173 display.row_stride = row_stride;
4174 display.colormap = colormap;
4175 display.background = background;
4176 display.local_row =
NULL;
4181 if ((
image->format & PNG_FORMAT_FLAG_COLORMAP) != 0)
4183 png_safe_execute(image,
4184 png_image_read_colormap, &display) &&
4185 png_safe_execute(image,
4186 png_image_read_colormapped, &display);
4190 png_safe_execute(image,
4191 png_image_read_direct, &display);
4193 png_image_free(image);
4198 return png_image_error(image,
4199 "png_image_finish_read[color-map]: no color-map");
4203 return png_image_error(image,
4204 "png_image_finish_read: image too large");
4208 return png_image_error(image,
4209 "png_image_finish_read: invalid argument");
4213 return png_image_error(image,
4214 "png_image_finish_read: row_stride too large");
4217 else if (image !=
NULL)
4218 return png_image_error(image,
4219 "png_image_finish_read: damaged PNG_IMAGE_VERSION");
uint8_t a
Definition Spc_Cpu.h:141
int dp
Definition Spc_Cpu.h:149
static float * rptr[9]
Definition adlibemu.c:107
#define check(expr)
Definition blargg_source.h:32
register unsigned j
Definition inflate.c:1576
int y
Definition inflate.c:1588
int g
Definition inflate.c:1573
register unsigned i
Definition inflate.c:1575
unsigned f
Definition inflate.c:1572
static PuglViewHint int value
Definition pugl.h:1708
static int int height
Definition pugl.h:1594
static int width
Definition pugl.h:1593
int JSAMPARRAY int int num_rows
Definition jpegint.h:375
int val
Definition jpeglib.h:956
#define PNG_FUNCTION(type, name, args, attributes)
#define PNG_TRANSFORM_SWAP_ENDIAN
#define PNG_TRANSFORM_EXPAND_16
#define PNG_UNUSED(param)
#define PNG_IDAT_READ_SIZE
Definition juce_PNGLoader.cpp:248
#define PNG_TRANSFORM_GRAY_TO_RGB
#define png_error(s1, s2)
#define PNG_ROWBYTES(pixel_bits, width)
#define PNG_COLORSPACE_HAVE_GAMMA
Definition juce_PNGLoader.cpp:133
#define PNG_TRANSFORM_INVERT_ALPHA
#define PNG_INTRAPIXEL_DIFFERENCING
#define PNG_TRANSFORM_EXPAND
#define PNG_FILLER_BEFORE
#define PNG_TRANSFORM_PACKING
#define PNG_INTERLACE_ADAM7_PASSES
#define PNG_COLOR_TYPE_RGB
#define PNG_COLORSPACE_INVALID
Definition juce_PNGLoader.cpp:141
#define PNG_TRANSFORM_SWAP_ALPHA
#define PNG_TRANSFORM_STRIP_ALPHA
#define PNG_ERROR_ACTION_NONE
#define PNG_FLAG_BENIGN_ERRORS_WARN
#define PNG_COLORSPACE_HAVE_ENDPOINTS
Definition juce_PNGLoader.cpp:134
#define PNG_TRANSFORM_INVERT_MONO
#define png_debug2(a, b, c, d)
Definition juce_PNGLoader.cpp:279
#define PNG_COLOR_TYPE_RGB_ALPHA
#define PNG_FLAG_MNG_FILTER_64
#define PNG_COLOR_TYPE_GRAY_ALPHA
#define PNG_TRANSFORM_PACKSWAP
#define PNG_PASS_START_COL(pass)
#define png_debug(a, b)
Definition juce_PNGLoader.cpp:277
#define PNG_HAVE_CHUNK_AFTER_IDAT
#define PNG_FLAG_APP_WARNINGS_WARN
#define PNG_COLOR_MASK_COLOR
#define PNG_RGB_TO_GRAY_DEFAULT
#define PNG_COLOR_MASK_PALETTE
#define PNG_PASS_START_ROW(pass)
#define PNG_IS_READ_STRUCT
#define PNG_FILTER_VALUE_LAST
#define PNG_TRANSFORM_BGR
#define PNG_FLAG_ZSTREAM_ENDED
#define PNG_FLAG_FILLER_AFTER
#define PNG_GAMMA_sRGB_INVERSE
#define PNG_HANDLE_CHUNK_NEVER
#define PNG_FLAG_ROW_INIT
#define PNG_COLOR_MASK_ALPHA
#define PNG_PASS_COLS(width, pass)
#define PNG_INTERLACE_ADAM7
#define PNG_ALPHA_OPTIMIZED
#define PNG_ALPHA_STANDARD
#define PNG_COLOR_TYPE_GRAY
#define png_voidcast(type, value)
#define PNG_COLOR_TYPE_PALETTE
#define PNG_LIBPNG_VER_STRING
#define PNG_COLORSPACE_ENDPOINTS_MATCH_sRGB
Definition juce_PNGLoader.cpp:139
#define PNG_FILTER_VALUE_NONE
#define PNG_INTERLACE_NONE
#define PNG_PASS_COL_OFFSET(pass)
#define PNG_PASS_ROW_OFFSET(pass)
#define PNG_TRANSFORM_STRIP_16
#define PNG_BACKGROUND_GAMMA_SCREEN
#define png_chunk_error(s1, s2)
#define PNG_HANDLE_CHUNK_AS_DEFAULT
#define PNG_TRANSFORM_SHIFT
float control
Definition lilv_test.c:1462
float out
Definition lilv_test.c:1461
const Colour green
Definition juce_Colours.h:94
const Colour blue
Definition juce_Colours.h:52
@ linear
Definition juce_DryWetMixer.h:33
JOCTET * buffer
Definition juce_JPEGLoader.cpp:302
size_t png_alloc_size_t
Definition juce_PNGLoader.cpp:558
jack_client_t client jack_client_t client jack_client_t client jack_client_t JackInfoShutdownCallback void arg jack_client_t jack_port_t port void func jack_client_t const char const char unsigned long flags const jack_port_t port jack_client_t jack_port_id_t port_id const jack_port_t const char port_name const jack_port_t port void * ptr
Definition juce_linux_JackAudio.cpp:79
@ image
Definition juce_AccessibilityRole.h:42
@ row
Definition juce_AccessibilityRole.h:53
void png_destroy_gamma_table(png_structrp png_ptr)
Definition png.c:4136
png_uint_32 length
Definition png.c:2247
int png_muldiv(png_fixed_point_p res, png_fixed_point a, png_int_32 times, png_int_32 divisor)
Definition png.c:3349
int png_chunk_unknown_handling(png_const_structrp png_ptr, png_uint_32 chunk_name)
Definition png.c:961
void png_zfree(voidpf png_ptr, voidpf ptr)
Definition png.c:118
int png_gamma_significant(png_fixed_point gamma_val)
Definition png.c:3509
png_uint_16 png_gamma_16bit_correct(unsigned int value, png_fixed_point gamma_val)
Definition png.c:3912
void PNGAPI png_destroy_info_struct(png_const_structrp png_ptr, png_infopp info_ptr_ptr)
Definition png.c:386
png_fixed_point png_reciprocal(png_fixed_point a)
Definition png.c:3488
void PNGAPI png_free_data(png_const_structrp png_ptr, png_inforp info_ptr, png_uint_32 mask, int num)
Definition png.c:471
png_struct * png_structp
Definition png.h:440
png_set_rgb_to_gray_fixed
Definition png.h:1082
struct png_row_info_struct png_row_info
png_fixed_point
Definition png.h:1902
png_info ** png_infopp
Definition png.h:455
png_set_alpha_mode_fixed
Definition png.h:1138
png_structrp png_ptr
Definition png.h:1082
png_structrp int mode
Definition png.h:1139
png_row_info * png_row_infop
Definition png.h:763
png_structrp int png_fixed_point red
Definition png.h:1083
png_set_background_fixed
Definition png.h:1301
png_struct ** png_structpp
Definition png.h:441
png_info * png_infop
Definition png.h:453
png_info *PNG_RESTRICT png_inforp
Definition png.h:470
png_uint_32
Definition png.h:1938
struct png_color_16_struct png_color_16
const png_color * png_const_colorp
Definition png.h:484
png_struct *PNG_RESTRICT png_structrp
Definition png.h:468
png_const_structrp png_const_inforp info_ptr
Definition png.h:1939
const png_byte * png_const_bytep
Definition pngconf.h:580
const png_uint_16 * png_const_uint_16p
Definition pngconf.h:586
png_byte * png_bytep
Definition pngconf.h:579
png_byte ** png_bytepp
Definition pngconf.h:606
png_uint_16 * png_uint_16p
Definition pngconf.h:585
void * png_voidp
Definition pngconf.h:577
const void * png_const_voidp
Definition pngconf.h:578
const char * png_const_charp
Definition pngconf.h:590
void PNGAPI png_benign_error(png_const_structrp png_ptr, png_const_charp error_message)
Definition pngerror.c:362
void PNGAPI png_chunk_benign_error(png_const_structrp png_ptr, png_const_charp error_message)
Definition pngerror.c:514
void PNGAPI png_warning(png_const_structrp png_ptr, png_const_charp warning_message)
Definition pngerror.c:216
void png_app_error(png_const_structrp png_ptr, png_const_charp error_message)
Definition pngerror.c:405
size_t PNGAPI png_get_rowbytes(png_const_structrp png_ptr, png_const_inforp info_ptr)
Definition pngget.c:30
png_byte PNGAPI png_get_channels(png_const_structrp png_ptr, png_const_inforp info_ptr)
Definition pngget.c:467
void PNGAPI png_free(png_const_structrp png_ptr, png_voidp ptr)
Definition pngmem.c:232
void png_destroy_png_struct(png_structrp png_ptr)
Definition pngmem.c:25
void PNGAPI png_start_read_image(png_structrp png_ptr)
Definition pngread.c:298
void PNGAPI png_read_row(png_structrp png_ptr, png_bytep row, png_bytep dsp_row)
Definition pngread.c:383
static void png_read_destroy(png_structrp png_ptr)
Definition pngread.c:940
void PNGAPI png_read_info(png_structrp png_ptr, png_inforp info_ptr)
Definition pngread.c:92
void PNGAPI png_read_png(png_structrp png_ptr, png_inforp info_ptr, int transforms, voidp params)
Definition pngread.c:1049
void PNGAPI png_read_rows(png_structrp png_ptr, png_bytepp row, png_bytepp display_row, png_uint_32 num_rows)
Definition pngread.c:645
void PNGAPI png_set_read_status_fn(png_structrp png_ptr, png_read_status_ptr read_row_fn)
Definition pngread.c:1037
void PNGAPI png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)
Definition pngread.c:1011
void PNGAPI png_read_image(png_structrp png_ptr, png_bytepp image)
Definition pngread.c:700
void PNGAPI png_read_update_info(png_structrp png_ptr, png_inforp info_ptr)
Definition pngread.c:267
void PNGAPI png_read_end(png_structrp png_ptr, png_inforp info_ptr)
Definition pngread.c:766
void PNGAPI png_set_read_fn(png_structrp png_ptr, png_voidp io_ptr, png_rw_ptr read_data_fn)
Definition pngrio.c:87
void PNGAPI png_set_gray_to_rgb(png_structrp png_ptr)
Definition pngrtran.c:935
void PNGAPI png_set_strip_16(png_structrp png_ptr)
Definition pngrtran.c:184
void PNGAPI png_set_strip_alpha(png_structrp png_ptr)
Definition pngrtran.c:197
void PNGAPI png_set_expand(png_structrp png_ptr)
Definition pngrtran.c:852
void PNGAPI png_set_scale_16(png_structrp png_ptr)
Definition pngrtran.c:170
void png_read_transform_info(png_structrp png_ptr, png_inforp info_ptr)
Definition pngrtran.c:1916
void PNGAPI png_set_expand_16(png_structrp png_ptr)
Definition pngrtran.c:922
void PNGAPI png_set_tRNS_to_alpha(png_structrp png_ptr)
Definition pngrtran.c:906
void png_do_read_transformations(png_structrp png_ptr, png_row_infop row_info)
Definition pngrtran.c:2120
void png_handle_bKGD(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:1921
void png_handle_IHDR(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:839
void png_handle_iCCP(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:1362
void png_read_finish_IDAT(png_structrp png_ptr)
Definition pngrutil.c:4278
png_int_32(PNGAPI png_get_int_32)(png_const_bytep buf)
Definition pngrutil.c:84
void png_handle_sCAL(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:2376
void png_handle_gAMA(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:1120
void png_handle_sPLT(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:1640
void png_handle_unknown(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length, int keep)
Definition pngrutil.c:2922
void png_handle_sRGB(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:1312
void png_handle_pHYs(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:2154
void png_handle_tEXt(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:2515
void png_handle_tIME(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:2469
void png_handle_cHRM(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:1240
void png_handle_IEND(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:1100
void png_handle_zTXt(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:2596
void png_handle_iTXt(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:2713
void png_handle_pCAL(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:2247
int png_crc_finish(png_structrp png_ptr, png_uint_32 skip)
Definition pngrutil.c:211
png_uint_16(PNGAPI png_get_uint_16)(png_const_bytep buf)
Definition pngrutil.c:102
void png_handle_oFFs(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:2200
void png_read_finish_row(png_structrp png_ptr)
Definition pngrutil.c:4326
void png_handle_tRNS(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:1817
void png_read_sig(png_structrp png_ptr, png_inforp info_ptr)
Definition pngrutil.c:121
png_uint_32 png_read_chunk_header(png_structrp png_ptr)
Definition pngrutil.c:156
void png_handle_PLTE(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:913
void png_read_start_row(png_structrp png_ptr)
Definition pngrutil.c:4391
void png_handle_hIST(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:2102
void png_read_IDAT_data(png_structrp png_ptr, png_bytep output, png_alloc_size_t avail_out)
Definition pngrutil.c:4149
void png_handle_sBIT(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
Definition pngrutil.c:1158
void png_read_filter_row(png_structrp pp, png_row_infop row_info, png_bytep row, png_const_bytep prev_row, int filter)
Definition pngrutil.c:4131
void png_combine_row(png_const_structrp png_ptr, png_bytep dp, int display)
Definition pngrutil.c:3200
void png_do_read_interlace(png_row_infop row_info, png_bytep row, int pass, png_uint_32 transformations)
Definition pngrutil.c:3684
void PNGAPI png_set_benign_errors(png_structrp png_ptr, int allowed)
Definition pngset.c:1671
void PNGAPI png_set_keep_unknown_chunks(png_structrp png_ptr, int keep, png_const_bytep chunk_list, int num_chunks_in)
Definition pngset.c:1372
void PNGAPI png_set_bgr(png_structrp png_ptr)
Definition pngtrans.c:21
void PNGAPI png_set_add_alpha(png_structrp png_ptr, png_uint_32 filler, int filler_loc)
Definition pngtrans.c:205
void PNGAPI png_set_swap(png_structrp png_ptr)
Definition pngtrans.c:35
void PNGAPI png_set_packswap(png_structrp png_ptr)
Definition pngtrans.c:70
void PNGAPI png_set_invert_mono(png_structrp png_ptr)
Definition pngtrans.c:250
void PNGAPI png_set_packing(png_structrp png_ptr)
Definition pngtrans.c:50
void PNGAPI png_set_shift(png_structrp png_ptr, png_const_color_8p true_bits)
Definition pngtrans.c:84
void PNGAPI png_set_invert_alpha(png_structrp png_ptr)
Definition pngtrans.c:237
int PNGAPI png_set_interlace_handling(png_structrp png_ptr)
Definition pngtrans.c:99
void PNGAPI png_set_swap_alpha(png_structrp png_ptr)
Definition pngtrans.c:223
png_uint_32 width
Definition png.h:755
png_byte color_type
Definition png.h:757
png_byte bit_depth
Definition png.h:758
png_byte pixel_depth
Definition png.h:760
png_byte channels
Definition png.h:759
size_t rowbytes
Definition png.h:756
return c
Definition crypt.c:175
memcpy(hh, h, RAND_HEAD_LEN)
int r
Definition crypt.c:458
int result
Definition process.c:1455
char * cp
Definition unix.c:513
typedef int(UZ_EXP MsgFn)()
#define void
Definition unzip.h:396
struct zdirent * file
Definition win32.c:1500
_WDL_CSTRING_PREFIX void INT_PTR const char * format
Definition wdlcstring.h:263
#define inflateEnd
Definition zconf.h:30
#define voidp
Definition zconf.h:72