23 #ifdef PNG_INFO_IMAGE_SUPPORTED
29 int PNGAPI opng_validate_image(png_structp png_ptr, png_infop info_ptr);
34 #ifndef OPNG_NO_IMAGE_REDUCTIONS
35 #define OPNG_IMAGE_REDUCTIONS_SUPPORTED
38 #ifdef OPNG_IMAGE_REDUCTIONS_SUPPORTED
40 #ifndef PNG_INFO_IMAGE_SUPPORTED
41 #error OPNG_IMAGE_REDUCTIONS_SUPPORTED requires PNG_INFO_IMAGE_SUPPORTED
44 #ifndef PNG_tRNS_SUPPORTED
45 #error OPNG_IMAGE_REDUCTIONS_SUPPORTED requires proper transparency support
54 png_uint_32 reductions);
59 #define OPNG_REDUCE_NONE 0x0000
60 #define OPNG_REDUCE_16_TO_8 0x0001
61 #define OPNG_REDUCE_8_TO_4_2_1 0x0002
62 #define OPNG_REDUCE_RGB_TO_GRAY 0x0004
63 #define OPNG_REDUCE_STRIP_ALPHA 0x0008
64 #define OPNG_REDUCE_RGB_TO_PALETTE 0x0010
65 #define OPNG_REDUCE_PALETTE_TO_RGB 0x0020
66 #define OPNG_REDUCE_GRAY_TO_PALETTE 0x0040
67 #define OPNG_REDUCE_PALETTE_TO_GRAY 0x0080
68 #define OPNG_REDUCE_PALETTE_SLOW 0x0100
70 #define OPNG_REDUCE_PALETTE_FAST 0x0200
72 #define OPNG_REDUCE_ANCILLARY 0x1000
74 #define OPNG_REDUCE_BIT_DEPTH \
75 (OPNG_REDUCE_16_TO_8 | OPNG_REDUCE_8_TO_4_2_1)
77 #define OPNG_REDUCE_COLOR_TYPE \
78 (OPNG_REDUCE_RGB_TO_GRAY | OPNG_REDUCE_STRIP_ALPHA | \
79 OPNG_REDUCE_RGB_TO_PALETTE | OPNG_REDUCE_PALETTE_TO_RGB | \
80 OPNG_REDUCE_GRAY_TO_PALETTE | OPNG_REDUCE_PALETTE_TO_GRAY)
82 #define OPNG_REDUCE_PALETTE \
83 (OPNG_REDUCE_PALETTE_SLOW | OPNG_REDUCE_PALETTE_FAST)
85 #define OPNG_REDUCE_ALL \
86 (OPNG_REDUCE_BIT_DEPTH | OPNG_REDUCE_COLOR_TYPE | \
87 OPNG_REDUCE_PALETTE | OPNG_REDUCE_ANCILLARY)