COSMOS core  1.0.2 (beta)
Comprehensive Open-architecture Solution for Mission Operations Systems
pngget.c File Reference
#include "pngpriv.h"
Include dependency graph for pngget.c:

Functions

png_uint_32 png_get_valid (png_const_structrp png_ptr, png_const_inforp info_ptr, png_uint_32 flag)
 
png_size_t png_get_rowbytes (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_bytepp png_get_rows (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_uint_32 png_get_image_width (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_uint_32 png_get_image_height (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_byte png_get_bit_depth (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_byte png_get_color_type (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_byte png_get_filter_type (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_byte png_get_interlace_type (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_byte png_get_compression_type (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_uint_32 png_get_x_pixels_per_meter (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_uint_32 png_get_y_pixels_per_meter (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_uint_32 png_get_pixels_per_meter (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
float png_get_pixel_aspect_ratio (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_fixed_point png_get_pixel_aspect_ratio_fixed (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_int_32 png_get_x_offset_microns (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_int_32 png_get_y_offset_microns (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_int_32 png_get_x_offset_pixels (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_int_32 png_get_y_offset_pixels (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
static png_uint_32 ppi_from_ppm (png_uint_32 ppm)
 
png_uint_32 png_get_pixels_per_inch (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_uint_32 png_get_x_pixels_per_inch (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_uint_32 png_get_y_pixels_per_inch (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
static png_fixed_point png_fixed_inches_from_microns (png_const_structrp png_ptr, png_int_32 microns)
 
png_fixed_point png_get_x_offset_inches_fixed (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_fixed_point png_get_y_offset_inches_fixed (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
float png_get_x_offset_inches (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
float png_get_y_offset_inches (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_uint_32 png_get_pHYs_dpi (png_const_structrp png_ptr, png_const_inforp info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)
 
png_byte png_get_channels (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_const_bytep png_get_signature (png_const_structrp png_ptr, png_const_inforp info_ptr)
 
png_uint_32 png_get_bKGD (png_const_structrp png_ptr, png_inforp info_ptr, png_color_16p *background)
 
png_uint_32 png_get_cHRM (png_const_structrp png_ptr, png_const_inforp 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_uint_32 png_get_cHRM_XYZ (png_const_structrp png_ptr, png_const_inforp info_ptr, double *red_X, double *red_Y, double *red_Z, double *green_X, double *green_Y, double *green_Z, double *blue_X, double *blue_Y, double *blue_Z)
 
png_uint_32 png_get_cHRM_XYZ_fixed (png_const_structrp png_ptr, png_const_inforp info_ptr, png_fixed_point *int_red_X, png_fixed_point *int_red_Y, png_fixed_point *int_red_Z, png_fixed_point *int_green_X, png_fixed_point *int_green_Y, png_fixed_point *int_green_Z, png_fixed_point *int_blue_X, png_fixed_point *int_blue_Y, png_fixed_point *int_blue_Z)
 
png_uint_32 png_get_cHRM_fixed (png_const_structrp png_ptr, png_const_inforp 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)
 
png_uint_32 png_get_gAMA_fixed (png_const_structrp png_ptr, png_const_inforp info_ptr, png_fixed_point *file_gamma)
 
png_uint_32 png_get_gAMA (png_const_structrp png_ptr, png_const_inforp info_ptr, double *file_gamma)
 
png_uint_32 png_get_sRGB (png_const_structrp png_ptr, png_const_inforp info_ptr, int *file_srgb_intent)
 
png_uint_32 png_get_iCCP (png_const_structrp png_ptr, png_inforp info_ptr, png_charpp name, int *compression_type, png_bytepp profile, png_uint_32 *proflen)
 
int png_get_sPLT (png_const_structrp png_ptr, png_inforp info_ptr, png_sPLT_tpp spalettes)
 
png_uint_32 png_get_hIST (png_const_structrp png_ptr, png_inforp info_ptr, png_uint_16p *hist)
 
png_uint_32 png_get_IHDR (png_const_structrp png_ptr, png_const_inforp 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_uint_32 png_get_oFFs (png_const_structrp png_ptr, png_const_inforp info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, int *unit_type)
 
png_uint_32 png_get_pCAL (png_const_structrp png_ptr, png_inforp info_ptr, png_charp *purpose, png_int_32 *X0, png_int_32 *X1, int *type, int *nparams, png_charp *units, png_charpp *params)
 
png_uint_32 png_get_sCAL_fixed (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, png_fixed_point *width, png_fixed_point *height)
 
png_uint_32 png_get_sCAL (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, double *width, double *height)
 
png_uint_32 png_get_sCAL_s (png_const_structrp png_ptr, png_const_inforp info_ptr, int *unit, png_charpp width, png_charpp height)
 
png_uint_32 png_get_pHYs (png_const_structrp png_ptr, png_const_inforp info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)
 
png_uint_32 png_get_PLTE (png_const_structrp png_ptr, png_inforp info_ptr, png_colorp *palette, int *num_palette)
 
png_uint_32 png_get_sBIT (png_const_structrp png_ptr, png_inforp info_ptr, png_color_8p *sig_bit)
 
int png_get_text (png_const_structrp png_ptr, png_inforp info_ptr, png_textp *text_ptr, int *num_text)
 
png_uint_32 png_get_tIME (png_const_structrp png_ptr, png_inforp info_ptr, png_timep *mod_time)
 
png_uint_32 png_get_tRNS (png_const_structrp png_ptr, png_inforp info_ptr, png_bytep *trans_alpha, int *num_trans, png_color_16p *trans_color)
 
int png_get_unknown_chunks (png_const_structrp png_ptr, png_inforp info_ptr, png_unknown_chunkpp unknowns)
 
png_byte png_get_rgb_to_gray_status (png_const_structrp png_ptr)
 
png_voidp png_get_user_chunk_ptr (png_const_structrp png_ptr)
 
png_size_t png_get_compression_buffer_size (png_const_structrp png_ptr)
 
png_uint_32 png_get_user_width_max (png_const_structrp png_ptr)
 
png_uint_32 png_get_user_height_max (png_const_structrp png_ptr)
 
png_uint_32 png_get_chunk_cache_max (png_const_structrp png_ptr)
 
png_alloc_size_t png_get_chunk_malloc_max (png_const_structrp png_ptr)
 
png_uint_32 png_get_io_state (png_const_structrp png_ptr)
 
png_uint_32 png_get_io_chunk_type (png_const_structrp png_ptr)
 
int png_get_palette_max (png_const_structp png_ptr, png_const_infop info_ptr)
 

Function Documentation

png_uint_32 png_get_valid ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr,
png_uint_32  flag 
)
22 {
23  if (png_ptr != NULL && info_ptr != NULL)
24  return(info_ptr->valid & flag);
25 
26  return(0);
27 }
png_uint_32 valid
Definition: pnginfo.h:61
png_size_t png_get_rowbytes ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
31 {
32  if (png_ptr != NULL && info_ptr != NULL)
33  return(info_ptr->rowbytes);
34 
35  return(0);
36 }
png_size_t rowbytes
Definition: pnginfo.h:62
png_bytepp png_get_rows ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
41 {
42  if (png_ptr != NULL && info_ptr != NULL)
43  return(info_ptr->row_pointers);
44 
45  return(0);
46 }
png_uint_32 png_get_image_width ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
53 {
54  if (png_ptr != NULL && info_ptr != NULL)
55  return info_ptr->width;
56 
57  return (0);
58 }
png_uint_32 width
Definition: pnginfo.h:59
png_uint_32 png_get_image_height ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
62 {
63  if (png_ptr != NULL && info_ptr != NULL)
64  return info_ptr->height;
65 
66  return (0);
67 }
png_uint_32 height
Definition: pnginfo.h:60
png_byte png_get_bit_depth ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
71 {
72  if (png_ptr != NULL && info_ptr != NULL)
73  return info_ptr->bit_depth;
74 
75  return (0);
76 }
png_byte bit_depth
Definition: pnginfo.h:66
png_byte png_get_color_type ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
80 {
81  if (png_ptr != NULL && info_ptr != NULL)
82  return info_ptr->color_type;
83 
84  return (0);
85 }
png_byte color_type
Definition: pnginfo.h:67
png_byte png_get_filter_type ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
89 {
90  if (png_ptr != NULL && info_ptr != NULL)
91  return info_ptr->filter_type;
92 
93  return (0);
94 }
png_byte filter_type
Definition: pnginfo.h:70
png_byte png_get_interlace_type ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
98 {
99  if (png_ptr != NULL && info_ptr != NULL)
100  return info_ptr->interlace_type;
101 
102  return (0);
103 }
png_byte interlace_type
Definition: pnginfo.h:71
png_byte png_get_compression_type ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
107 {
108  if (png_ptr != NULL && info_ptr != NULL)
109  return info_ptr->compression_type;
110 
111  return (0);
112 }
png_byte compression_type
Definition: pnginfo.h:69
png_uint_32 png_get_x_pixels_per_meter ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
117 {
118 #ifdef PNG_pHYs_SUPPORTED
119  if (png_ptr != NULL && info_ptr != NULL &&
120  (info_ptr->valid & PNG_INFO_pHYs) != 0)
121  {
122  png_debug1(1, "in %s retrieval function",
123  "png_get_x_pixels_per_meter");
124 
125  if (info_ptr->phys_unit_type == PNG_RESOLUTION_METER)
126  return (info_ptr->x_pixels_per_unit);
127  }
128 #else
129  PNG_UNUSED(png_ptr)
130  PNG_UNUSED(info_ptr)
131 #endif
132 
133  return (0);
134 }
#define PNG_UNUSED(param)
Definition: pngpriv.h:367
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
#define PNG_RESOLUTION_METER
Definition: png.h:852
png_uint_32 valid
Definition: pnginfo.h:61
#define PNG_INFO_pHYs
Definition: png.h:880
png_uint_32 png_get_y_pixels_per_meter ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
139 {
140 #ifdef PNG_pHYs_SUPPORTED
141  if (png_ptr != NULL && info_ptr != NULL &&
142  (info_ptr->valid & PNG_INFO_pHYs) != 0)
143  {
144  png_debug1(1, "in %s retrieval function",
145  "png_get_y_pixels_per_meter");
146 
147  if (info_ptr->phys_unit_type == PNG_RESOLUTION_METER)
148  return (info_ptr->y_pixels_per_unit);
149  }
150 #else
151  PNG_UNUSED(png_ptr)
152  PNG_UNUSED(info_ptr)
153 #endif
154 
155  return (0);
156 }
#define PNG_UNUSED(param)
Definition: pngpriv.h:367
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
#define PNG_RESOLUTION_METER
Definition: png.h:852
png_uint_32 valid
Definition: pnginfo.h:61
#define PNG_INFO_pHYs
Definition: png.h:880
png_uint_32 png_get_pixels_per_meter ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
160 {
161 #ifdef PNG_pHYs_SUPPORTED
162  if (png_ptr != NULL && info_ptr != NULL &&
163  (info_ptr->valid & PNG_INFO_pHYs) != 0)
164  {
165  png_debug1(1, "in %s retrieval function", "png_get_pixels_per_meter");
166 
167  if (info_ptr->phys_unit_type == PNG_RESOLUTION_METER &&
168  info_ptr->x_pixels_per_unit == info_ptr->y_pixels_per_unit)
169  return (info_ptr->x_pixels_per_unit);
170  }
171 #else
172  PNG_UNUSED(png_ptr)
173  PNG_UNUSED(info_ptr)
174 #endif
175 
176  return (0);
177 }
#define PNG_UNUSED(param)
Definition: pngpriv.h:367
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
#define PNG_RESOLUTION_METER
Definition: png.h:852
png_uint_32 valid
Definition: pnginfo.h:61
#define PNG_INFO_pHYs
Definition: png.h:880
float png_get_pixel_aspect_ratio ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
183 {
184 #ifdef PNG_READ_pHYs_SUPPORTED
185  if (png_ptr != NULL && info_ptr != NULL &&
186  (info_ptr->valid & PNG_INFO_pHYs) != 0)
187  {
188  png_debug1(1, "in %s retrieval function", "png_get_aspect_ratio");
189 
190  if (info_ptr->x_pixels_per_unit != 0)
191  return ((float)((float)info_ptr->y_pixels_per_unit
192  /(float)info_ptr->x_pixels_per_unit));
193  }
194 #else
195  PNG_UNUSED(png_ptr)
196  PNG_UNUSED(info_ptr)
197 #endif
198 
199  return ((float)0.0);
200 }
#define PNG_UNUSED(param)
Definition: pngpriv.h:367
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
png_uint_32 valid
Definition: pnginfo.h:61
#define PNG_INFO_pHYs
Definition: png.h:880
png_fixed_point png_get_pixel_aspect_ratio_fixed ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
207 {
208 #ifdef PNG_READ_pHYs_SUPPORTED
209  if (png_ptr != NULL && info_ptr != NULL &&
210  (info_ptr->valid & PNG_INFO_pHYs) != 0 &&
211  info_ptr->x_pixels_per_unit > 0 && info_ptr->y_pixels_per_unit > 0 &&
212  info_ptr->x_pixels_per_unit <= PNG_UINT_31_MAX &&
213  info_ptr->y_pixels_per_unit <= PNG_UINT_31_MAX)
214  {
215  png_fixed_point res;
216 
217  png_debug1(1, "in %s retrieval function", "png_get_aspect_ratio_fixed");
218 
219  /* The following casts work because a PNG 4 byte integer only has a valid
220  * range of 0..2^31-1; otherwise the cast might overflow.
221  */
222  if (png_muldiv(&res, (png_int_32)info_ptr->y_pixels_per_unit, PNG_FP_1,
223  (png_int_32)info_ptr->x_pixels_per_unit) != 0)
224  return res;
225  }
226 #else
227  PNG_UNUSED(png_ptr)
228  PNG_UNUSED(info_ptr)
229 #endif
230 
231  return 0;
232 }
#define PNG_UNUSED(param)
Definition: pngpriv.h:367
#define PNG_UINT_31_MAX
Definition: png.h:790
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
int png_muldiv(png_fixed_point_p res, png_fixed_point a, png_int_32 times, png_int_32 divisor)
Definition: png.c:3243
#define PNG_FP_1
Definition: png.h:797
png_uint_32 valid
Definition: pnginfo.h:61
png_int_32 png_fixed_point
Definition: pngconf.h:595
#define PNG_INFO_pHYs
Definition: png.h:880
png_int_32 png_get_x_offset_microns ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
237 {
238 #ifdef PNG_oFFs_SUPPORTED
239  if (png_ptr != NULL && info_ptr != NULL &&
240  (info_ptr->valid & PNG_INFO_oFFs) != 0)
241  {
242  png_debug1(1, "in %s retrieval function", "png_get_x_offset_microns");
243 
244  if (info_ptr->offset_unit_type == PNG_OFFSET_MICROMETER)
245  return (info_ptr->x_offset);
246  }
247 #else
248  PNG_UNUSED(png_ptr)
249  PNG_UNUSED(info_ptr)
250 #endif
251 
252  return (0);
253 }
#define PNG_UNUSED(param)
Definition: pngpriv.h:367
#define PNG_INFO_oFFs
Definition: png.h:881
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
png_uint_32 valid
Definition: pnginfo.h:61
#define PNG_OFFSET_MICROMETER
Definition: png.h:834
png_int_32 png_get_y_offset_microns ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
257 {
258 #ifdef PNG_oFFs_SUPPORTED
259  if (png_ptr != NULL && info_ptr != NULL &&
260  (info_ptr->valid & PNG_INFO_oFFs) != 0)
261  {
262  png_debug1(1, "in %s retrieval function", "png_get_y_offset_microns");
263 
264  if (info_ptr->offset_unit_type == PNG_OFFSET_MICROMETER)
265  return (info_ptr->y_offset);
266  }
267 #else
268  PNG_UNUSED(png_ptr)
269  PNG_UNUSED(info_ptr)
270 #endif
271 
272  return (0);
273 }
#define PNG_UNUSED(param)
Definition: pngpriv.h:367
#define PNG_INFO_oFFs
Definition: png.h:881
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
png_uint_32 valid
Definition: pnginfo.h:61
#define PNG_OFFSET_MICROMETER
Definition: png.h:834
png_int_32 png_get_x_offset_pixels ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
277 {
278 #ifdef PNG_oFFs_SUPPORTED
279  if (png_ptr != NULL && info_ptr != NULL &&
280  (info_ptr->valid & PNG_INFO_oFFs) != 0)
281  {
282  png_debug1(1, "in %s retrieval function", "png_get_x_offset_pixels");
283 
284  if (info_ptr->offset_unit_type == PNG_OFFSET_PIXEL)
285  return (info_ptr->x_offset);
286  }
287 #else
288  PNG_UNUSED(png_ptr)
289  PNG_UNUSED(info_ptr)
290 #endif
291 
292  return (0);
293 }
#define PNG_UNUSED(param)
Definition: pngpriv.h:367
#define PNG_INFO_oFFs
Definition: png.h:881
#define PNG_OFFSET_PIXEL
Definition: png.h:833
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
png_uint_32 valid
Definition: pnginfo.h:61
png_int_32 png_get_y_offset_pixels ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
297 {
298 #ifdef PNG_oFFs_SUPPORTED
299  if (png_ptr != NULL && info_ptr != NULL &&
300  (info_ptr->valid & PNG_INFO_oFFs) != 0)
301  {
302  png_debug1(1, "in %s retrieval function", "png_get_y_offset_pixels");
303 
304  if (info_ptr->offset_unit_type == PNG_OFFSET_PIXEL)
305  return (info_ptr->y_offset);
306  }
307 #else
308  PNG_UNUSED(png_ptr)
309  PNG_UNUSED(info_ptr)
310 #endif
311 
312  return (0);
313 }
#define PNG_UNUSED(param)
Definition: pngpriv.h:367
#define PNG_INFO_oFFs
Definition: png.h:881
#define PNG_OFFSET_PIXEL
Definition: png.h:833
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
png_uint_32 valid
Definition: pnginfo.h:61
static png_uint_32 ppi_from_ppm ( png_uint_32  ppm)
static
318 {
319 #if 0
320  /* The conversion is *(2.54/100), in binary (32 digits):
321  * .00000110100000001001110101001001
322  */
323  png_uint_32 t1001, t1101;
324  ppm >>= 1; /* .1 */
325  t1001 = ppm + (ppm >> 3); /* .1001 */
326  t1101 = t1001 + (ppm >> 1); /* .1101 */
327  ppm >>= 20; /* .000000000000000000001 */
328  t1101 += t1101 >> 15; /* .1101000000000001101 */
329  t1001 >>= 11; /* .000000000001001 */
330  t1001 += t1001 >> 12; /* .000000000001001000000001001 */
331  ppm += t1001; /* .000000000001001000001001001 */
332  ppm += t1101; /* .110100000001001110101001001 */
333  return (ppm + 16) >> 5;/* .00000110100000001001110101001001 */
334 #else
335  /* The argument is a PNG unsigned integer, so it is not permitted
336  * to be bigger than 2^31.
337  */
338  png_fixed_point result;
339  if (ppm <= PNG_UINT_31_MAX && png_muldiv(&result, (png_int_32)ppm, 127,
340  5000) != 0)
341  return result;
342 
343  /* Overflow. */
344  return 0;
345 #endif
346 }
#define PNG_UINT_31_MAX
Definition: png.h:790
int png_muldiv(png_fixed_point_p res, png_fixed_point a, png_int_32 times, png_int_32 divisor)
Definition: png.c:3243
png_int_32 png_fixed_point
Definition: pngconf.h:595
png_uint_32 png_get_pixels_per_inch ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
350 {
351  return ppi_from_ppm(png_get_pixels_per_meter(png_ptr, info_ptr));
352 }
static png_uint_32 ppi_from_ppm(png_uint_32 ppm)
Definition: pngget.c:317
png_uint_32 png_get_pixels_per_meter(png_const_structrp png_ptr, png_const_inforp info_ptr)
Definition: pngget.c:159
png_uint_32 png_get_x_pixels_per_inch ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
356 {
357  return ppi_from_ppm(png_get_x_pixels_per_meter(png_ptr, info_ptr));
358 }
static png_uint_32 ppi_from_ppm(png_uint_32 ppm)
Definition: pngget.c:317
png_uint_32 png_get_x_pixels_per_meter(png_const_structrp png_ptr, png_const_inforp info_ptr)
Definition: pngget.c:115
png_uint_32 png_get_y_pixels_per_inch ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
362 {
363  return ppi_from_ppm(png_get_y_pixels_per_meter(png_ptr, info_ptr));
364 }
static png_uint_32 ppi_from_ppm(png_uint_32 ppm)
Definition: pngget.c:317
png_uint_32 png_get_y_pixels_per_meter(png_const_structrp png_ptr, png_const_inforp info_ptr)
Definition: pngget.c:137
static png_fixed_point png_fixed_inches_from_microns ( png_const_structrp  png_ptr,
png_int_32  microns 
)
static
369 {
370  /* Convert from metres * 1,000,000 to inches * 100,000, meters to
371  * inches is simply *(100/2.54), so we want *(10/2.54) == 500/127.
372  * Notice that this can overflow - a warning is output and 0 is
373  * returned.
374  */
375  return png_muldiv_warn(png_ptr, microns, 500, 127);
376 }
png_fixed_point png_muldiv_warn(png_const_structrp png_ptr, png_fixed_point a, png_int_32 times, png_int_32 divisor)
Definition: png.c:3363
png_fixed_point png_get_x_offset_inches_fixed ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
381 {
382  return png_fixed_inches_from_microns(png_ptr,
383  png_get_x_offset_microns(png_ptr, info_ptr));
384 }
png_int_32 png_get_x_offset_microns(png_const_structrp png_ptr, png_const_inforp info_ptr)
Definition: pngget.c:236
static png_fixed_point png_fixed_inches_from_microns(png_const_structrp png_ptr, png_int_32 microns)
Definition: pngget.c:368
png_fixed_point png_get_y_offset_inches_fixed ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
391 {
392  return png_fixed_inches_from_microns(png_ptr,
393  png_get_y_offset_microns(png_ptr, info_ptr));
394 }
png_int_32 png_get_y_offset_microns(png_const_structrp png_ptr, png_const_inforp info_ptr)
Definition: pngget.c:256
static png_fixed_point png_fixed_inches_from_microns(png_const_structrp png_ptr, png_int_32 microns)
Definition: pngget.c:368
float png_get_x_offset_inches ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
400 {
401  /* To avoid the overflow do the conversion directly in floating
402  * point.
403  */
404  return (float)(png_get_x_offset_microns(png_ptr, info_ptr) * .00003937);
405 }
png_int_32 png_get_x_offset_microns(png_const_structrp png_ptr, png_const_inforp info_ptr)
Definition: pngget.c:236
float png_get_y_offset_inches ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
411 {
412  /* To avoid the overflow do the conversion directly in floating
413  * point.
414  */
415  return (float)(png_get_y_offset_microns(png_ptr, info_ptr) * .00003937);
416 }
png_int_32 png_get_y_offset_microns(png_const_structrp png_ptr, png_const_inforp info_ptr)
Definition: pngget.c:256
png_uint_32 png_get_pHYs_dpi ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr,
png_uint_32 *  res_x,
png_uint_32 *  res_y,
int *  unit_type 
)
423 {
424  png_uint_32 retval = 0;
425 
426  if (png_ptr != NULL && info_ptr != NULL &&
427  (info_ptr->valid & PNG_INFO_pHYs) != 0)
428  {
429  png_debug1(1, "in %s retrieval function", "pHYs");
430 
431  if (res_x != NULL)
432  {
433  *res_x = info_ptr->x_pixels_per_unit;
434  retval |= PNG_INFO_pHYs;
435  }
436 
437  if (res_y != NULL)
438  {
439  *res_y = info_ptr->y_pixels_per_unit;
440  retval |= PNG_INFO_pHYs;
441  }
442 
443  if (unit_type != NULL)
444  {
445  *unit_type = (int)info_ptr->phys_unit_type;
446  retval |= PNG_INFO_pHYs;
447 
448  if (*unit_type == 1)
449  {
450  if (res_x != NULL) *res_x = (png_uint_32)(*res_x * .0254 + .50);
451  if (res_y != NULL) *res_y = (png_uint_32)(*res_y * .0254 + .50);
452  }
453  }
454  }
455 
456  return (retval);
457 }
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
png_uint_32 valid
Definition: pnginfo.h:61
#define PNG_INFO_pHYs
Definition: png.h:880
png_byte png_get_channels ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
468 {
469  if (png_ptr != NULL && info_ptr != NULL)
470  return(info_ptr->channels);
471 
472  return (0);
473 }
png_byte channels
Definition: pnginfo.h:76
png_const_bytep png_get_signature ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr 
)
478 {
479  if (png_ptr != NULL && info_ptr != NULL)
480  return(info_ptr->signature);
481 
482  return (NULL);
483 }
png_uint_32 png_get_bKGD ( png_const_structrp  png_ptr,
png_inforp  info_ptr,
png_color_16p background 
)
490 {
491  if (png_ptr != NULL && info_ptr != NULL &&
492  (info_ptr->valid & PNG_INFO_bKGD) != 0 &&
493  background != NULL)
494  {
495  png_debug1(1, "in %s retrieval function", "bKGD");
496 
497  *background = &(info_ptr->background);
498  return (PNG_INFO_bKGD);
499  }
500 
501  return (0);
502 }
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
png_uint_32 valid
Definition: pnginfo.h:61
#define PNG_INFO_bKGD
Definition: png.h:878
png_uint_32 png_get_cHRM ( png_const_structrp  png_ptr,
png_const_inforp  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 
)
515 {
516  /* Quiet API change: this code used to only return the end points if a cHRM
517  * chunk was present, but the end points can also come from iCCP or sRGB
518  * chunks, so in 1.6.0 the png_get_ APIs return the end points regardless and
519  * the png_set_ APIs merely check that set end points are mutually
520  * consistent.
521  */
522  if (png_ptr != NULL && info_ptr != NULL &&
523  (info_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_ENDPOINTS) != 0)
524  {
525  png_debug1(1, "in %s retrieval function", "cHRM");
526 
527  if (white_x != NULL)
528  *white_x = png_float(png_ptr,
529  info_ptr->colorspace.end_points_xy.whitex, "cHRM white X");
530  if (white_y != NULL)
531  *white_y = png_float(png_ptr,
532  info_ptr->colorspace.end_points_xy.whitey, "cHRM white Y");
533  if (red_x != NULL)
534  *red_x = png_float(png_ptr, info_ptr->colorspace.end_points_xy.redx,
535  "cHRM red X");
536  if (red_y != NULL)
537  *red_y = png_float(png_ptr, info_ptr->colorspace.end_points_xy.redy,
538  "cHRM red Y");
539  if (green_x != NULL)
540  *green_x = png_float(png_ptr,
541  info_ptr->colorspace.end_points_xy.greenx, "cHRM green X");
542  if (green_y != NULL)
543  *green_y = png_float(png_ptr,
544  info_ptr->colorspace.end_points_xy.greeny, "cHRM green Y");
545  if (blue_x != NULL)
546  *blue_x = png_float(png_ptr, info_ptr->colorspace.end_points_xy.bluex,
547  "cHRM blue X");
548  if (blue_y != NULL)
549  *blue_y = png_float(png_ptr, info_ptr->colorspace.end_points_xy.bluey,
550  "cHRM blue Y");
551  return (PNG_INFO_cHRM);
552  }
553 
554  return (0);
555 }
#define png_float(png_ptr, fixed, s)
Definition: pngpriv.h:685
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
#define PNG_INFO_cHRM
Definition: png.h:875
png_uint_32 png_get_cHRM_XYZ ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr,
double *  red_X,
double *  red_Y,
double *  red_Z,
double *  green_X,
double *  green_Y,
double *  green_Z,
double *  blue_X,
double *  blue_Y,
double *  blue_Z 
)
562 {
563  if (png_ptr != NULL && info_ptr != NULL &&
564  (info_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_ENDPOINTS) != 0)
565  {
566  png_debug1(1, "in %s retrieval function", "cHRM_XYZ(float)");
567 
568  if (red_X != NULL)
569  *red_X = png_float(png_ptr, info_ptr->colorspace.end_points_XYZ.red_X,
570  "cHRM red X");
571  if (red_Y != NULL)
572  *red_Y = png_float(png_ptr, info_ptr->colorspace.end_points_XYZ.red_Y,
573  "cHRM red Y");
574  if (red_Z != NULL)
575  *red_Z = png_float(png_ptr, info_ptr->colorspace.end_points_XYZ.red_Z,
576  "cHRM red Z");
577  if (green_X != NULL)
578  *green_X = png_float(png_ptr,
579  info_ptr->colorspace.end_points_XYZ.green_X, "cHRM green X");
580  if (green_Y != NULL)
581  *green_Y = png_float(png_ptr,
582  info_ptr->colorspace.end_points_XYZ.green_Y, "cHRM green Y");
583  if (green_Z != NULL)
584  *green_Z = png_float(png_ptr,
585  info_ptr->colorspace.end_points_XYZ.green_Z, "cHRM green Z");
586  if (blue_X != NULL)
587  *blue_X = png_float(png_ptr,
588  info_ptr->colorspace.end_points_XYZ.blue_X, "cHRM blue X");
589  if (blue_Y != NULL)
590  *blue_Y = png_float(png_ptr,
591  info_ptr->colorspace.end_points_XYZ.blue_Y, "cHRM blue Y");
592  if (blue_Z != NULL)
593  *blue_Z = png_float(png_ptr,
594  info_ptr->colorspace.end_points_XYZ.blue_Z, "cHRM blue Z");
595  return (PNG_INFO_cHRM);
596  }
597 
598  return (0);
599 }
#define png_float(png_ptr, fixed, s)
Definition: pngpriv.h:685
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
#define PNG_INFO_cHRM
Definition: png.h:875
png_uint_32 png_get_cHRM_XYZ_fixed ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr,
png_fixed_point int_red_X,
png_fixed_point int_red_Y,
png_fixed_point int_red_Z,
png_fixed_point int_green_X,
png_fixed_point int_green_Y,
png_fixed_point int_green_Z,
png_fixed_point int_blue_X,
png_fixed_point int_blue_Y,
png_fixed_point int_blue_Z 
)
610 {
611  if (png_ptr != NULL && info_ptr != NULL &&
612  (info_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_ENDPOINTS) != 0)
613  {
614  png_debug1(1, "in %s retrieval function", "cHRM_XYZ");
615 
616  if (int_red_X != NULL)
617  *int_red_X = info_ptr->colorspace.end_points_XYZ.red_X;
618  if (int_red_Y != NULL)
619  *int_red_Y = info_ptr->colorspace.end_points_XYZ.red_Y;
620  if (int_red_Z != NULL)
621  *int_red_Z = info_ptr->colorspace.end_points_XYZ.red_Z;
622  if (int_green_X != NULL)
623  *int_green_X = info_ptr->colorspace.end_points_XYZ.green_X;
624  if (int_green_Y != NULL)
625  *int_green_Y = info_ptr->colorspace.end_points_XYZ.green_Y;
626  if (int_green_Z != NULL)
627  *int_green_Z = info_ptr->colorspace.end_points_XYZ.green_Z;
628  if (int_blue_X != NULL)
629  *int_blue_X = info_ptr->colorspace.end_points_XYZ.blue_X;
630  if (int_blue_Y != NULL)
631  *int_blue_Y = info_ptr->colorspace.end_points_XYZ.blue_Y;
632  if (int_blue_Z != NULL)
633  *int_blue_Z = info_ptr->colorspace.end_points_XYZ.blue_Z;
634  return (PNG_INFO_cHRM);
635  }
636 
637  return (0);
638 }
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
#define PNG_INFO_cHRM
Definition: png.h:875
png_uint_32 png_get_cHRM_fixed ( png_const_structrp  png_ptr,
png_const_inforp  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 
)
645 {
646  png_debug1(1, "in %s retrieval function", "cHRM");
647 
648  if (png_ptr != NULL && info_ptr != NULL &&
649  (info_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_ENDPOINTS) != 0)
650  {
651  if (white_x != NULL)
652  *white_x = info_ptr->colorspace.end_points_xy.whitex;
653  if (white_y != NULL)
654  *white_y = info_ptr->colorspace.end_points_xy.whitey;
655  if (red_x != NULL)
656  *red_x = info_ptr->colorspace.end_points_xy.redx;
657  if (red_y != NULL)
658  *red_y = info_ptr->colorspace.end_points_xy.redy;
659  if (green_x != NULL)
660  *green_x = info_ptr->colorspace.end_points_xy.greenx;
661  if (green_y != NULL)
662  *green_y = info_ptr->colorspace.end_points_xy.greeny;
663  if (blue_x != NULL)
664  *blue_x = info_ptr->colorspace.end_points_xy.bluex;
665  if (blue_y != NULL)
666  *blue_y = info_ptr->colorspace.end_points_xy.bluey;
667  return (PNG_INFO_cHRM);
668  }
669 
670  return (0);
671 }
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
#define PNG_INFO_cHRM
Definition: png.h:875
png_uint_32 png_get_gAMA_fixed ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr,
png_fixed_point file_gamma 
)
680 {
681  png_debug1(1, "in %s retrieval function", "gAMA");
682 
683  if (png_ptr != NULL && info_ptr != NULL &&
684  (info_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_GAMMA) != 0 &&
685  file_gamma != NULL)
686  {
687  *file_gamma = info_ptr->colorspace.gamma;
688  return (PNG_INFO_gAMA);
689  }
690 
691  return (0);
692 }
#define PNG_INFO_gAMA
Definition: png.h:873
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
png_uint_32 png_get_gAMA ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr,
double *  file_gamma 
)
699 {
700  png_debug1(1, "in %s retrieval function", "gAMA(float)");
701 
702  if (png_ptr != NULL && info_ptr != NULL &&
703  (info_ptr->colorspace.flags & PNG_COLORSPACE_HAVE_GAMMA) != 0 &&
704  file_gamma != NULL)
705  {
706  *file_gamma = png_float(png_ptr, info_ptr->colorspace.gamma,
707  "png_get_gAMA");
708  return (PNG_INFO_gAMA);
709  }
710 
711  return (0);
712 }
#define PNG_INFO_gAMA
Definition: png.h:873
#define png_float(png_ptr, fixed, s)
Definition: pngpriv.h:685
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
png_uint_32 png_get_sRGB ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr,
int *  file_srgb_intent 
)
720 {
721  png_debug1(1, "in %s retrieval function", "sRGB");
722 
723  if (png_ptr != NULL && info_ptr != NULL &&
724  (info_ptr->valid & PNG_INFO_sRGB) != 0 && file_srgb_intent != NULL)
725  {
726  *file_srgb_intent = info_ptr->colorspace.rendering_intent;
727  return (PNG_INFO_sRGB);
728  }
729 
730  return (0);
731 }
#define PNG_INFO_sRGB
Definition: png.h:884
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
png_uint_32 valid
Definition: pnginfo.h:61
png_uint_32 png_get_iCCP ( png_const_structrp  png_ptr,
png_inforp  info_ptr,
png_charpp  name,
int *  compression_type,
png_bytepp  profile,
png_uint_32 *  proflen 
)
739 {
740  png_debug1(1, "in %s retrieval function", "iCCP");
741 
742  if (png_ptr != NULL && info_ptr != NULL &&
743  (info_ptr->valid & PNG_INFO_iCCP) != 0 &&
744  name != NULL && compression_type != NULL && profile != NULL &&
745  proflen != NULL)
746  {
747  *name = info_ptr->iccp_name;
748  *profile = info_ptr->iccp_profile;
749  *proflen = png_get_uint_32(info_ptr->iccp_profile);
750  /* This is somewhat irrelevant since the profile data returned has
751  * actually been uncompressed.
752  */
753  *compression_type = PNG_COMPRESSION_TYPE_BASE;
754  return (PNG_INFO_iCCP);
755  }
756 
757  return (0);
758 }
#define png_get_uint_32(buf)
Definition: png.h:2744
string name
Definition: cubesat2obj.cpp:6
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
#define PNG_COMPRESSION_TYPE_BASE
Definition: png.h:819
png_uint_32 valid
Definition: pnginfo.h:61
#define PNG_INFO_iCCP
Definition: png.h:885
int png_get_sPLT ( png_const_structrp  png_ptr,
png_inforp  info_ptr,
png_sPLT_tpp  spalettes 
)
765 {
766  if (png_ptr != NULL && info_ptr != NULL && spalettes != NULL)
767  {
768  *spalettes = info_ptr->splt_palettes;
769  return info_ptr->splt_palettes_num;
770  }
771 
772  return (0);
773 }
png_uint_32 png_get_hIST ( png_const_structrp  png_ptr,
png_inforp  info_ptr,
png_uint_16p hist 
)
780 {
781  png_debug1(1, "in %s retrieval function", "hIST");
782 
783  if (png_ptr != NULL && info_ptr != NULL &&
784  (info_ptr->valid & PNG_INFO_hIST) != 0 && hist != NULL)
785  {
786  *hist = info_ptr->hist;
787  return (PNG_INFO_hIST);
788  }
789 
790  return (0);
791 }
#define PNG_INFO_hIST
Definition: png.h:879
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
png_uint_32 valid
Definition: pnginfo.h:61
png_uint_32 png_get_IHDR ( png_const_structrp  png_ptr,
png_const_inforp  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 
)
799 {
800  png_debug1(1, "in %s retrieval function", "IHDR");
801 
802  if (png_ptr == NULL || info_ptr == NULL || width == NULL ||
803  height == NULL || bit_depth == NULL || color_type == NULL)
804  return (0);
805 
806  *width = info_ptr->width;
807  *height = info_ptr->height;
808  *bit_depth = info_ptr->bit_depth;
809  *color_type = info_ptr->color_type;
810 
811  if (compression_type != NULL)
812  *compression_type = info_ptr->compression_type;
813 
814  if (filter_type != NULL)
815  *filter_type = info_ptr->filter_type;
816 
817  if (interlace_type != NULL)
818  *interlace_type = info_ptr->interlace_type;
819 
820  /* This is redundant if we can be sure that the info_ptr values were all
821  * assigned in png_set_IHDR(). We do the check anyhow in case an
822  * application has ignored our advice not to mess with the members
823  * of info_ptr directly.
824  */
825  png_check_IHDR(png_ptr, info_ptr->width, info_ptr->height,
826  info_ptr->bit_depth, info_ptr->color_type, info_ptr->interlace_type,
827  info_ptr->compression_type, info_ptr->filter_type);
828 
829  return (1);
830 }
png_byte filter_type
Definition: pnginfo.h:70
png_byte interlace_type
Definition: pnginfo.h:71
png_byte compression_type
Definition: pnginfo.h:69
png_byte color_type
Definition: pnginfo.h:67
png_uint_32 height
Definition: pnginfo.h:60
void png_check_IHDR(png_const_structrp png_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, int color_type, int interlace_type, int compression_type, int filter_type)
Definition: png.c:2476
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
png_byte bit_depth
Definition: pnginfo.h:66
png_uint_32 width
Definition: pnginfo.h:59
png_uint_32 png_get_oFFs ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr,
png_int_32 *  offset_x,
png_int_32 *  offset_y,
int *  unit_type 
)
836 {
837  png_debug1(1, "in %s retrieval function", "oFFs");
838 
839  if (png_ptr != NULL && info_ptr != NULL &&
840  (info_ptr->valid & PNG_INFO_oFFs) != 0 &&
841  offset_x != NULL && offset_y != NULL && unit_type != NULL)
842  {
843  *offset_x = info_ptr->x_offset;
844  *offset_y = info_ptr->y_offset;
845  *unit_type = (int)info_ptr->offset_unit_type;
846  return (PNG_INFO_oFFs);
847  }
848 
849  return (0);
850 }
#define PNG_INFO_oFFs
Definition: png.h:881
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
png_uint_32 valid
Definition: pnginfo.h:61
png_uint_32 png_get_pCAL ( png_const_structrp  png_ptr,
png_inforp  info_ptr,
png_charp purpose,
png_int_32 *  X0,
png_int_32 *  X1,
int *  type,
int *  nparams,
png_charp units,
png_charpp params 
)
858 {
859  png_debug1(1, "in %s retrieval function", "pCAL");
860 
861  if (png_ptr != NULL && info_ptr != NULL &&
862  (info_ptr->valid & PNG_INFO_pCAL) != 0 &&
863  purpose != NULL && X0 != NULL && X1 != NULL && type != NULL &&
864  nparams != NULL && units != NULL && params != NULL)
865  {
866  *purpose = info_ptr->pcal_purpose;
867  *X0 = info_ptr->pcal_X0;
868  *X1 = info_ptr->pcal_X1;
869  *type = (int)info_ptr->pcal_type;
870  *nparams = (int)info_ptr->pcal_nparams;
871  *units = info_ptr->pcal_units;
872  *params = info_ptr->pcal_params;
873  return (PNG_INFO_pCAL);
874  }
875 
876  return (0);
877 }
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
png_uint_32 valid
Definition: pnginfo.h:61
#define PNG_INFO_pCAL
Definition: png.h:883
png_uint_32 png_get_sCAL_fixed ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr,
int *  unit,
png_fixed_point width,
png_fixed_point height 
)
887 {
888  if (png_ptr != NULL && info_ptr != NULL &&
889  (info_ptr->valid & PNG_INFO_sCAL) != 0)
890  {
891  *unit = info_ptr->scal_unit;
892  /*TODO: make this work without FP support; the API is currently eliminated
893  * if neither floating point APIs nor internal floating point arithmetic
894  * are enabled.
895  */
896  *width = png_fixed(png_ptr, atof(info_ptr->scal_s_width), "sCAL width");
897  *height = png_fixed(png_ptr, atof(info_ptr->scal_s_height),
898  "sCAL height");
899  return (PNG_INFO_sCAL);
900  }
901 
902  return(0);
903 }
png_fixed_point png_fixed(png_const_structrp png_ptr, double fp, png_const_charp text)
Definition: png.c:3219
png_uint_32 valid
Definition: pnginfo.h:61
#define PNG_INFO_sCAL
Definition: png.h:887
png_uint_32 png_get_sCAL ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr,
int *  unit,
double *  width,
double *  height 
)
910 {
911  if (png_ptr != NULL && info_ptr != NULL &&
912  (info_ptr->valid & PNG_INFO_sCAL) != 0)
913  {
914  *unit = info_ptr->scal_unit;
915  *width = atof(info_ptr->scal_s_width);
916  *height = atof(info_ptr->scal_s_height);
917  return (PNG_INFO_sCAL);
918  }
919 
920  return(0);
921 }
png_uint_32 valid
Definition: pnginfo.h:61
#define PNG_INFO_sCAL
Definition: png.h:887
png_uint_32 png_get_sCAL_s ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr,
int *  unit,
png_charpp  width,
png_charpp  height 
)
926 {
927  if (png_ptr != NULL && info_ptr != NULL &&
928  (info_ptr->valid & PNG_INFO_sCAL) != 0)
929  {
930  *unit = info_ptr->scal_unit;
931  *width = info_ptr->scal_s_width;
932  *height = info_ptr->scal_s_height;
933  return (PNG_INFO_sCAL);
934  }
935 
936  return(0);
937 }
png_uint_32 valid
Definition: pnginfo.h:61
#define PNG_INFO_sCAL
Definition: png.h:887
png_uint_32 png_get_pHYs ( png_const_structrp  png_ptr,
png_const_inforp  info_ptr,
png_uint_32 *  res_x,
png_uint_32 *  res_y,
int *  unit_type 
)
944 {
945  png_uint_32 retval = 0;
946 
947  png_debug1(1, "in %s retrieval function", "pHYs");
948 
949  if (png_ptr != NULL && info_ptr != NULL &&
950  (info_ptr->valid & PNG_INFO_pHYs) != 0)
951  {
952  if (res_x != NULL)
953  {
954  *res_x = info_ptr->x_pixels_per_unit;
955  retval |= PNG_INFO_pHYs;
956  }
957 
958  if (res_y != NULL)
959  {
960  *res_y = info_ptr->y_pixels_per_unit;
961  retval |= PNG_INFO_pHYs;
962  }
963 
964  if (unit_type != NULL)
965  {
966  *unit_type = (int)info_ptr->phys_unit_type;
967  retval |= PNG_INFO_pHYs;
968  }
969  }
970 
971  return (retval);
972 }
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
png_uint_32 valid
Definition: pnginfo.h:61
#define PNG_INFO_pHYs
Definition: png.h:880
png_uint_32 png_get_PLTE ( png_const_structrp  png_ptr,
png_inforp  info_ptr,
png_colorp palette,
int *  num_palette 
)
978 {
979  png_debug1(1, "in %s retrieval function", "PLTE");
980 
981  if (png_ptr != NULL && info_ptr != NULL &&
982  (info_ptr->valid & PNG_INFO_PLTE) != 0 && palette != NULL)
983  {
984  *palette = info_ptr->palette;
985  *num_palette = info_ptr->num_palette;
986  png_debug1(3, "num_palette = %d", *num_palette);
987  return (PNG_INFO_PLTE);
988  }
989 
990  return (0);
991 }
png_colorp palette
Definition: pnginfo.h:63
png_uint_16 num_palette
Definition: pnginfo.h:64
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
#define PNG_INFO_PLTE
Definition: png.h:876
png_uint_32 valid
Definition: pnginfo.h:61
png_uint_32 png_get_sBIT ( png_const_structrp  png_ptr,
png_inforp  info_ptr,
png_color_8p sig_bit 
)
997 {
998  png_debug1(1, "in %s retrieval function", "sBIT");
999 
1000  if (png_ptr != NULL && info_ptr != NULL &&
1001  (info_ptr->valid & PNG_INFO_sBIT) != 0 && sig_bit != NULL)
1002  {
1003  *sig_bit = &(info_ptr->sig_bit);
1004  return (PNG_INFO_sBIT);
1005  }
1006 
1007  return (0);
1008 }
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
#define PNG_INFO_sBIT
Definition: png.h:874
png_uint_32 valid
Definition: pnginfo.h:61
int png_get_text ( png_const_structrp  png_ptr,
png_inforp  info_ptr,
png_textp text_ptr,
int *  num_text 
)
1015 {
1016  if (png_ptr != NULL && info_ptr != NULL && info_ptr->num_text > 0)
1017  {
1018  png_debug1(1, "in 0x%lx retrieval function",
1019  (unsigned long)png_ptr->chunk_name);
1020 
1021  if (text_ptr != NULL)
1022  *text_ptr = info_ptr->text;
1023 
1024  if (num_text != NULL)
1025  *num_text = info_ptr->num_text;
1026 
1027  return info_ptr->num_text;
1028  }
1029 
1030  if (num_text != NULL)
1031  *num_text = 0;
1032 
1033  return(0);
1034 }
png_uint_32 chunk_name
Definition: pngstruct.h:221
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
png_uint_32 png_get_tIME ( png_const_structrp  png_ptr,
png_inforp  info_ptr,
png_timep mod_time 
)
1041 {
1042  png_debug1(1, "in %s retrieval function", "tIME");
1043 
1044  if (png_ptr != NULL && info_ptr != NULL &&
1045  (info_ptr->valid & PNG_INFO_tIME) != 0 && mod_time != NULL)
1046  {
1047  *mod_time = &(info_ptr->mod_time);
1048  return (PNG_INFO_tIME);
1049  }
1050 
1051  return (0);
1052 }
#define PNG_INFO_tIME
Definition: png.h:882
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
png_uint_32 valid
Definition: pnginfo.h:61
png_uint_32 png_get_tRNS ( png_const_structrp  png_ptr,
png_inforp  info_ptr,
png_bytep trans_alpha,
int *  num_trans,
png_color_16p trans_color 
)
1059 {
1060  png_uint_32 retval = 0;
1061  if (png_ptr != NULL && info_ptr != NULL &&
1062  (info_ptr->valid & PNG_INFO_tRNS) != 0)
1063  {
1064  png_debug1(1, "in %s retrieval function", "tRNS");
1065 
1066  if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
1067  {
1068  if (trans_alpha != NULL)
1069  {
1070  *trans_alpha = info_ptr->trans_alpha;
1071  retval |= PNG_INFO_tRNS;
1072  }
1073 
1074  if (trans_color != NULL)
1075  *trans_color = &(info_ptr->trans_color);
1076  }
1077 
1078  else /* if (info_ptr->color_type != PNG_COLOR_TYPE_PALETTE) */
1079  {
1080  if (trans_color != NULL)
1081  {
1082  *trans_color = &(info_ptr->trans_color);
1083  retval |= PNG_INFO_tRNS;
1084  }
1085 
1086  if (trans_alpha != NULL)
1087  *trans_alpha = NULL;
1088  }
1089 
1090  if (num_trans != NULL)
1091  {
1092  *num_trans = info_ptr->num_trans;
1093  retval |= PNG_INFO_tRNS;
1094  }
1095  }
1096 
1097  return (retval);
1098 }
#define PNG_COLOR_TYPE_PALETTE
Definition: png.h:810
png_byte color_type
Definition: pnginfo.h:67
#define png_debug1(l, m, p1)
Definition: pngdebug.h:149
#define PNG_INFO_tRNS
Definition: png.h:877
png_uint_32 valid
Definition: pnginfo.h:61
png_uint_16 num_trans
Definition: pnginfo.h:65
int png_get_unknown_chunks ( png_const_structrp  png_ptr,
png_inforp  info_ptr,
png_unknown_chunkpp  unknowns 
)
1105 {
1106  if (png_ptr != NULL && info_ptr != NULL && unknowns != NULL)
1107  {
1108  *unknowns = info_ptr->unknown_chunks;
1109  return info_ptr->unknown_chunks_num;
1110  }
1111 
1112  return (0);
1113 }
png_byte png_get_rgb_to_gray_status ( png_const_structrp  png_ptr)
1119 {
1120  return (png_byte)(png_ptr ? png_ptr->rgb_to_gray_status : 0);
1121 }
png_voidp png_get_user_chunk_ptr ( png_const_structrp  png_ptr)
1127 {
1128  return (png_ptr ? png_ptr->user_chunk_ptr : NULL);
1129 }
png_size_t png_get_compression_buffer_size ( png_const_structrp  png_ptr)
1134 {
1135  if (png_ptr == NULL)
1136  return 0;
1137 
1138 # ifdef PNG_WRITE_SUPPORTED
1139  if ((png_ptr->mode & PNG_IS_READ_STRUCT) != 0)
1140 # endif
1141  {
1142 # ifdef PNG_SEQUENTIAL_READ_SUPPORTED
1143  return png_ptr->IDAT_read_size;
1144 # else
1145  return PNG_IDAT_READ_SIZE;
1146 # endif
1147  }
1148 
1149 # ifdef PNG_WRITE_SUPPORTED
1150  else
1151  return png_ptr->zbuffer_size;
1152 # endif
1153 }
#define PNG_IDAT_READ_SIZE
Definition: pnglibconf.h:193
#define PNG_IS_READ_STRUCT
Definition: pngpriv.h:557
png_uint_32 mode
Definition: pngstruct.h:179
png_uint_32 png_get_user_width_max ( png_const_structrp  png_ptr)
1160 {
1161  return (png_ptr ? png_ptr->user_width_max : 0);
1162 }
png_uint_32 png_get_user_height_max ( png_const_structrp  png_ptr)
1166 {
1167  return (png_ptr ? png_ptr->user_height_max : 0);
1168 }
png_uint_32 png_get_chunk_cache_max ( png_const_structrp  png_ptr)
1173 {
1174  return (png_ptr ? png_ptr->user_chunk_cache_max : 0);
1175 }
png_alloc_size_t png_get_chunk_malloc_max ( png_const_structrp  png_ptr)
1180 {
1181  return (png_ptr ? png_ptr->user_chunk_malloc_max : 0);
1182 }
png_uint_32 png_get_io_state ( png_const_structrp  png_ptr)
1189 {
1190  return png_ptr->io_state;
1191 }
png_uint_32 png_get_io_chunk_type ( png_const_structrp  png_ptr)
1195 {
1196  return png_ptr->chunk_name;
1197 }
png_uint_32 chunk_name
Definition: pngstruct.h:221
int png_get_palette_max ( png_const_structp  png_ptr,
png_const_infop  info_ptr 
)
1204 {
1205  if (png_ptr != NULL && info_ptr != NULL)
1206  return png_ptr->num_palette_max;
1207 
1208  return (-1);
1209 }