18b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 28b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* pngget.c - retrieval of values from info struct 38b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * 4c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * Last changed in libpng 1.2.43 [February 25, 2010] 5c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * Copyright (c) 1998-2010 Glenn Randers-Pehrson 68b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) 78b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) 8c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 9c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * This code is released under the libpng license. 10c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * For conditions of distribution and use, see the disclaimer 11c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * and license in png.h 12c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * 138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PNG_INTERNAL 16c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#define PNG_NO_PEDANTIC_WARNINGS 178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "png.h" 188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) 198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_valid(png_structp png_ptr, png_infop info_ptr, png_uint_32 flag) 228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return(info_ptr->valid & flag); 25c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project else 278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return(0); 288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_rowbytes(png_structp png_ptr, png_infop info_ptr) 328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return(info_ptr->rowbytes); 35c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project else 378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return(0); 388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 40c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_INFO_IMAGE_SUPPORTED 418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_bytepp PNGAPI 428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_rows(png_structp png_ptr, png_infop info_ptr) 438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return(info_ptr->row_pointers); 46c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project else 488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return(0); 498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_EASY_ACCESS_SUPPORTED 53c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* Easy access to info, added in libpng-0.99 */ 548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_image_width(png_structp png_ptr, png_infop info_ptr) 568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return info_ptr->width; 59c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_image_height(png_structp png_ptr, png_infop info_ptr) 658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return info_ptr->height; 68c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_byte PNGAPI 738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_bit_depth(png_structp png_ptr, png_infop info_ptr) 748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return info_ptr->bit_depth; 77c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_byte PNGAPI 828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_color_type(png_structp png_ptr, png_infop info_ptr) 838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return info_ptr->color_type; 86c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_byte PNGAPI 918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_filter_type(png_structp png_ptr, png_infop info_ptr) 928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return info_ptr->filter_type; 95c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_byte PNGAPI 1008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_interlace_type(png_structp png_ptr, png_infop info_ptr) 1018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 1028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 1038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return info_ptr->interlace_type; 104c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 1058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 1068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 1078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_byte PNGAPI 1098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_compression_type(png_structp png_ptr, png_infop info_ptr) 1108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 1118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 1128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return info_ptr->compression_type; 113c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 1148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 1158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 1168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 1188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_x_pixels_per_meter(png_structp png_ptr, png_infop info_ptr) 1198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 1208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 121c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_pHYs_SUPPORTED 1228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (info_ptr->valid & PNG_INFO_pHYs) 1238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 124c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "png_get_x_pixels_per_meter"); 125c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 126c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner if (info_ptr->phys_unit_type != PNG_RESOLUTION_METER) 1278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 128c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 129c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner else 130c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner return (info_ptr->x_pixels_per_unit); 1318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 1328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 1338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 1348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 1368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 1378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 1398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_y_pixels_per_meter(png_structp png_ptr, png_infop info_ptr) 1408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 1418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 142c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_pHYs_SUPPORTED 1438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (info_ptr->valid & PNG_INFO_pHYs) 1448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 145c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "png_get_y_pixels_per_meter"); 146c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 147c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner if (info_ptr->phys_unit_type != PNG_RESOLUTION_METER) 1488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 149c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 150c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner else 151c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner return (info_ptr->y_pixels_per_unit); 1528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 1538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 1548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 1558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 1578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 1588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 1608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_pixels_per_meter(png_structp png_ptr, png_infop info_ptr) 1618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 1628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 163c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_pHYs_SUPPORTED 1648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (info_ptr->valid & PNG_INFO_pHYs) 1658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 166c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "png_get_pixels_per_meter"); 167c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 168c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner if (info_ptr->phys_unit_type != PNG_RESOLUTION_METER || 1698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project info_ptr->x_pixels_per_unit != info_ptr->y_pixels_per_unit) 1708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 171c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 172c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner else 173c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner return (info_ptr->x_pixels_per_unit); 1748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 1758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 1768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 1778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 1788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 1798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 1808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 1828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectfloat PNGAPI 1838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_pixel_aspect_ratio(png_structp png_ptr, png_infop info_ptr) 1848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 1858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 186c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_pHYs_SUPPORTED 187c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 1888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (info_ptr->valid & PNG_INFO_pHYs) 1898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 190c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "png_get_aspect_ratio"); 191c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 1928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (info_ptr->x_pixels_per_unit == 0) 1938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ((float)0.0); 194c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 1958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project else 1968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ((float)((float)info_ptr->y_pixels_per_unit 1978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /(float)info_ptr->x_pixels_per_unit)); 1988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 1998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 200c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner return (0.0); 2018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 2028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ((float)0.0); 2038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 2048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 2058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_int_32 PNGAPI 2078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_x_offset_microns(png_structp png_ptr, png_infop info_ptr) 2088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 2098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 210c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_oFFs_SUPPORTED 211c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 2128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (info_ptr->valid & PNG_INFO_oFFs) 2138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 214c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "png_get_x_offset_microns"); 215c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 216c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner if (info_ptr->offset_unit_type != PNG_OFFSET_MICROMETER) 2178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 218c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 219c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner else 220c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner return (info_ptr->x_offset); 2218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 2228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 223c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner return (0); 2248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 2258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 2268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 2278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_int_32 PNGAPI 2298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_y_offset_microns(png_structp png_ptr, png_infop info_ptr) 2308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 2318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 232c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 233c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_oFFs_SUPPORTED 2348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (info_ptr->valid & PNG_INFO_oFFs) 2358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 236c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "png_get_y_offset_microns"); 237c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 238c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner if (info_ptr->offset_unit_type != PNG_OFFSET_MICROMETER) 2398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 240c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 241c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner else 242c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner return (info_ptr->y_offset); 2438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 2448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 2458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 2468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 2478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 2488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 2498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_int_32 PNGAPI 2518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_x_offset_pixels(png_structp png_ptr, png_infop info_ptr) 2528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 2538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 254c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 255c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_oFFs_SUPPORTED 2568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (info_ptr->valid & PNG_INFO_oFFs) 2578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 258c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "png_get_x_offset_microns"); 259c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 260c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner if (info_ptr->offset_unit_type != PNG_OFFSET_PIXEL) 2618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 262c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 263c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner else 264c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner return (info_ptr->x_offset); 2658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 2668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 2678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 2688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 2698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 2708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 2718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_int_32 PNGAPI 2738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_y_offset_pixels(png_structp png_ptr, png_infop info_ptr) 2748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 2758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 276c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 277c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_oFFs_SUPPORTED 2788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (info_ptr->valid & PNG_INFO_oFFs) 2798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 280c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "png_get_y_offset_microns"); 281c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 282c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner if (info_ptr->offset_unit_type != PNG_OFFSET_PIXEL) 2838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 284c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 285c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner else 286c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner return (info_ptr->y_offset); 2878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 2888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 2898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 2908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 2918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 2928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 2938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#if defined(PNG_INCH_CONVERSIONS) && defined(PNG_FLOATING_POINT_SUPPORTED) 2958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 2968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_pixels_per_inch(png_structp png_ptr, png_infop info_ptr) 2978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 2988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ((png_uint_32)((float)png_get_pixels_per_meter(png_ptr, info_ptr) 2998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *.0254 +.5)); 3008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 3018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 3038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_x_pixels_per_inch(png_structp png_ptr, png_infop info_ptr) 3048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 3058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ((png_uint_32)((float)png_get_x_pixels_per_meter(png_ptr, info_ptr) 3068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *.0254 +.5)); 3078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 3088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 3108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_y_pixels_per_inch(png_structp png_ptr, png_infop info_ptr) 3118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 3128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ((png_uint_32)((float)png_get_y_pixels_per_meter(png_ptr, info_ptr) 3138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *.0254 +.5)); 3148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 3158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectfloat PNGAPI 3178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_x_offset_inches(png_structp png_ptr, png_infop info_ptr) 3188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 3198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ((float)png_get_x_offset_microns(png_ptr, info_ptr) 3208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *.00003937); 3218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 3228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectfloat PNGAPI 3248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_y_offset_inches(png_structp png_ptr, png_infop info_ptr) 3258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 3268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ((float)png_get_y_offset_microns(png_ptr, info_ptr) 3278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *.00003937); 3288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 3298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 330c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_pHYs_SUPPORTED 3318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 3328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_pHYs_dpi(png_structp png_ptr, png_infop info_ptr, 3338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type) 3348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 3358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_32 retval = 0; 3368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_pHYs)) 3388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 339c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "pHYs"); 340c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 3418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (res_x != NULL) 3428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 3438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *res_x = info_ptr->x_pixels_per_unit; 3448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project retval |= PNG_INFO_pHYs; 3458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 3468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (res_y != NULL) 3478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 3488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *res_y = info_ptr->y_pixels_per_unit; 3498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project retval |= PNG_INFO_pHYs; 3508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 3518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (unit_type != NULL) 3528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 3538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *unit_type = (int)info_ptr->phys_unit_type; 3548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project retval |= PNG_INFO_pHYs; 355c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner if (*unit_type == 1) 3568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 3578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (res_x != NULL) *res_x = (png_uint_32)(*res_x * .0254 + .50); 3588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (res_y != NULL) *res_y = (png_uint_32)(*res_y * .0254 + .50); 3598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 3608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 3618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 3628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (retval); 3638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 3648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_pHYs_SUPPORTED */ 3658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_INCH_CONVERSIONS && PNG_FLOATING_POINT_SUPPORTED */ 3668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* png_get_channels really belongs in here, too, but it's been around longer */ 3688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_EASY_ACCESS_SUPPORTED */ 3708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_byte PNGAPI 3728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_channels(png_structp png_ptr, png_infop info_ptr) 3738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 3748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 3758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return(info_ptr->channels); 3768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project else 3778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 3788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 3798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_bytep PNGAPI 3818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_signature(png_structp png_ptr, png_infop info_ptr) 3828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 3838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL) 3848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return(info_ptr->signature); 3858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project else 3868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (NULL); 3878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 3888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 389c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_bKGD_SUPPORTED 3908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 3918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_bKGD(png_structp png_ptr, png_infop info_ptr, 3928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_color_16p *background) 3938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 3948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_bKGD) 3958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project && background != NULL) 3968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 397c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "bKGD"); 398c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 3998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *background = &(info_ptr->background); 4008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (PNG_INFO_bKGD); 4018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 4028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 4038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 4048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 4058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 406c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_cHRM_SUPPORTED 4078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 4088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 4098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_cHRM(png_structp png_ptr, png_infop info_ptr, 4108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project double *white_x, double *white_y, double *red_x, double *red_y, 4118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project double *green_x, double *green_y, double *blue_x, double *blue_y) 4128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 4138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_cHRM)) 4148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 415c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "cHRM"); 416c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 4178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (white_x != NULL) 4188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *white_x = (double)info_ptr->x_white; 4198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (white_y != NULL) 4208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *white_y = (double)info_ptr->y_white; 4218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (red_x != NULL) 4228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *red_x = (double)info_ptr->x_red; 4238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (red_y != NULL) 4248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *red_y = (double)info_ptr->y_red; 4258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (green_x != NULL) 4268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *green_x = (double)info_ptr->x_green; 4278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (green_y != NULL) 4288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *green_y = (double)info_ptr->y_green; 4298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (blue_x != NULL) 4308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *blue_x = (double)info_ptr->x_blue; 4318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (blue_y != NULL) 4328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *blue_y = (double)info_ptr->y_blue; 4338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (PNG_INFO_cHRM); 4348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 4358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 4368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 4378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 4388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FIXED_POINT_SUPPORTED 4398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 4408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_cHRM_fixed(png_structp png_ptr, png_infop info_ptr, 4418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_fixed_point *white_x, png_fixed_point *white_y, png_fixed_point *red_x, 4428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_fixed_point *red_y, png_fixed_point *green_x, png_fixed_point *green_y, 4438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_fixed_point *blue_x, png_fixed_point *blue_y) 4448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 445c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "cHRM"); 446c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 4478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_cHRM)) 4488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 4498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (white_x != NULL) 4508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *white_x = info_ptr->int_x_white; 4518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (white_y != NULL) 4528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *white_y = info_ptr->int_y_white; 4538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (red_x != NULL) 4548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *red_x = info_ptr->int_x_red; 4558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (red_y != NULL) 4568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *red_y = info_ptr->int_y_red; 4578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (green_x != NULL) 4588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *green_x = info_ptr->int_x_green; 4598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (green_y != NULL) 4608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *green_y = info_ptr->int_y_green; 4618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (blue_x != NULL) 4628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *blue_x = info_ptr->int_x_blue; 4638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (blue_y != NULL) 4648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *blue_y = info_ptr->int_y_blue; 4658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (PNG_INFO_cHRM); 4668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 4678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 4688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 4698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 4708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 4718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 472c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_gAMA_SUPPORTED 4738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 4748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 4758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_gAMA(png_structp png_ptr, png_infop info_ptr, double *file_gamma) 4768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 477c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "gAMA"); 478c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 4798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_gAMA) 4808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project && file_gamma != NULL) 4818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 4828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *file_gamma = (double)info_ptr->gamma; 4838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (PNG_INFO_gAMA); 4848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 4858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 4868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 4878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 4888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FIXED_POINT_SUPPORTED 4898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 4908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_gAMA_fixed(png_structp png_ptr, png_infop info_ptr, 4918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_fixed_point *int_file_gamma) 4928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 493c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "gAMA"); 494c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 4958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_gAMA) 4968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project && int_file_gamma != NULL) 4978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 4988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *int_file_gamma = info_ptr->int_gamma; 4998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (PNG_INFO_gAMA); 5008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 5018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 5028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 5038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 5048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 5058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 506c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_sRGB_SUPPORTED 5078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 5088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_sRGB(png_structp png_ptr, png_infop info_ptr, int *file_srgb_intent) 5098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 510c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "sRGB"); 511c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 5128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_sRGB) 5138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project && file_srgb_intent != NULL) 5148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 5158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *file_srgb_intent = (int)info_ptr->srgb_intent; 5168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (PNG_INFO_sRGB); 5178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 5188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 5198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 5208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 5218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 522c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_iCCP_SUPPORTED 5238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 5248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_iCCP(png_structp png_ptr, png_infop info_ptr, 5258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_charpp name, int *compression_type, 5268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_charpp profile, png_uint_32 *proflen) 5278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 528c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "iCCP"); 529c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 5308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_iCCP) 5318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project && name != NULL && profile != NULL && proflen != NULL) 5328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 5338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *name = info_ptr->iccp_name; 5348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *profile = info_ptr->iccp_profile; 535c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner /* Compression_type is a dummy so the API won't have to change 536c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * if we introduce multiple compression types later. 537c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner */ 5388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *proflen = (int)info_ptr->iccp_proflen; 5398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *compression_type = (int)info_ptr->iccp_compression; 5408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (PNG_INFO_iCCP); 5418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 5428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 5438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 5448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 5458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 546c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_sPLT_SUPPORTED 5478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 5488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_sPLT(png_structp png_ptr, png_infop info_ptr, 5498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_sPLT_tpp spalettes) 5508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 5518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && spalettes != NULL) 5528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 5538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *spalettes = info_ptr->splt_palettes; 5548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ((png_uint_32)info_ptr->splt_palettes_num); 5558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 5568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 5578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 5588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 5598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 560c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_hIST_SUPPORTED 5618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 5628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_16p *hist) 5638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 564c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "hIST"); 565c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 5668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_hIST) 5678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project && hist != NULL) 5688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 5698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *hist = info_ptr->hist; 5708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (PNG_INFO_hIST); 5718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 5728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 5738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 5748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 5758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 5778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_IHDR(png_structp png_ptr, png_infop info_ptr, 5788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_32 *width, png_uint_32 *height, int *bit_depth, 5798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int *color_type, int *interlace_type, int *compression_type, 5808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int *filter_type) 5818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 583c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "IHDR"); 584c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 585c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner if (png_ptr == NULL || info_ptr == NULL || width == NULL || 586c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner height == NULL || bit_depth == NULL || color_type == NULL) 587c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner return (0); 588c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 589c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner *width = info_ptr->width; 590c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner *height = info_ptr->height; 591c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner *bit_depth = info_ptr->bit_depth; 592c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner *color_type = info_ptr->color_type; 593c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 594c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner if (compression_type != NULL) 595c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner *compression_type = info_ptr->compression_type; 596c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 597c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner if (filter_type != NULL) 598c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner *filter_type = info_ptr->filter_type; 599c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 600c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner if (interlace_type != NULL) 601c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner *interlace_type = info_ptr->interlace_type; 602c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 603c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner /* This is redundant if we can be sure that the info_ptr values were all 604c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * assigned in png_set_IHDR(). We do the check anyhow in case an 605c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * application has ignored our advice not to mess with the members 606c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner * of info_ptr directly. 607c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner */ 608c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_check_IHDR (png_ptr, info_ptr->width, info_ptr->height, 609c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner info_ptr->bit_depth, info_ptr->color_type, info_ptr->interlace_type, 610c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner info_ptr->compression_type, info_ptr->filter_type); 611c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 612c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner return (1); 6138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 6148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 615c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_oFFs_SUPPORTED 6168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 6178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_oFFs(png_structp png_ptr, png_infop info_ptr, 6188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_int_32 *offset_x, png_int_32 *offset_y, int *unit_type) 6198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 620c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "oFFs"); 621c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 6228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_oFFs) 6238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project && offset_x != NULL && offset_y != NULL && unit_type != NULL) 6248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 6258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *offset_x = info_ptr->x_offset; 6268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *offset_y = info_ptr->y_offset; 6278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *unit_type = (int)info_ptr->offset_unit_type; 6288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (PNG_INFO_oFFs); 6298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 6308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 6318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 6328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 6338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 634c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_pCAL_SUPPORTED 6358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 6368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_pCAL(png_structp png_ptr, png_infop info_ptr, 6378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_charp *purpose, png_int_32 *X0, png_int_32 *X1, int *type, int *nparams, 6388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_charp *units, png_charpp *params) 6398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 640c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "pCAL"); 641c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 6428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_pCAL) 643c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner && purpose != NULL && X0 != NULL && X1 != NULL && type != NULL && 644c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner nparams != NULL && units != NULL && params != NULL) 6458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 6468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *purpose = info_ptr->pcal_purpose; 6478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *X0 = info_ptr->pcal_X0; 6488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *X1 = info_ptr->pcal_X1; 6498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *type = (int)info_ptr->pcal_type; 6508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *nparams = (int)info_ptr->pcal_nparams; 6518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *units = info_ptr->pcal_units; 6528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *params = info_ptr->pcal_params; 6538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (PNG_INFO_pCAL); 6548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 6558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 6568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 6578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 6588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 659c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_sCAL_SUPPORTED 6608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FLOATING_POINT_SUPPORTED 6618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 6628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_sCAL(png_structp png_ptr, png_infop info_ptr, 6638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int *unit, double *width, double *height) 6648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 6658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && 666c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner (info_ptr->valid & PNG_INFO_sCAL)) 6678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 6688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *unit = info_ptr->scal_unit; 6698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *width = info_ptr->scal_pixel_width; 6708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *height = info_ptr->scal_pixel_height; 6718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (PNG_INFO_sCAL); 6728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 6738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return(0); 6748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 6758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#else 6768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_FIXED_POINT_SUPPORTED 6778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 6788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_sCAL_s(png_structp png_ptr, png_infop info_ptr, 6798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int *unit, png_charpp width, png_charpp height) 6808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 6818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && 682c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner (info_ptr->valid & PNG_INFO_sCAL)) 6838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 6848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *unit = info_ptr->scal_unit; 6858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *width = info_ptr->scal_s_width; 6868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *height = info_ptr->scal_s_height; 6878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (PNG_INFO_sCAL); 6888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 6898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return(0); 6908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 6918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 6928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 6938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 6948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 695c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_pHYs_SUPPORTED 6968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 6978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_pHYs(png_structp png_ptr, png_infop info_ptr, 6988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type) 6998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 7008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_32 retval = 0; 7018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 702c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "pHYs"); 703c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 7048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && 7058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (info_ptr->valid & PNG_INFO_pHYs)) 7068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 7078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (res_x != NULL) 7088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 7098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *res_x = info_ptr->x_pixels_per_unit; 7108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project retval |= PNG_INFO_pHYs; 7118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 712c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 7138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (res_y != NULL) 7148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 7158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *res_y = info_ptr->y_pixels_per_unit; 7168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project retval |= PNG_INFO_pHYs; 7178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 718c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 7198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (unit_type != NULL) 7208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 7218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *unit_type = (int)info_ptr->phys_unit_type; 7228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project retval |= PNG_INFO_pHYs; 7238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 7248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 7258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (retval); 7268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 7278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 7288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 7298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 7308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_PLTE(png_structp png_ptr, png_infop info_ptr, png_colorp *palette, 7318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int *num_palette) 7328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 733c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "PLTE"); 734c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 7358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_PLTE) 7368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project && palette != NULL) 7378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 7388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *palette = info_ptr->palette; 7398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *num_palette = info_ptr->num_palette; 740c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(3, "num_palette = %d", *num_palette); 7418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (PNG_INFO_PLTE); 7428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 7438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 7448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 7458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 746c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_sBIT_SUPPORTED 7478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 7488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_sBIT(png_structp png_ptr, png_infop info_ptr, png_color_8p *sig_bit) 7498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 750c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "sBIT"); 751c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 7528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_sBIT) 7538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project && sig_bit != NULL) 7548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 7558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *sig_bit = &(info_ptr->sig_bit); 7568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (PNG_INFO_sBIT); 7578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 7588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 7598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 7608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 7618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 762c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_TEXT_SUPPORTED 7638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 7648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_text(png_structp png_ptr, png_infop info_ptr, png_textp *text_ptr, 7658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int *num_text) 7668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 7678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && info_ptr->num_text > 0) 7688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 769c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", 7708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (png_ptr->chunk_name[0] == '\0' ? "text" 7718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project : (png_const_charp)png_ptr->chunk_name)); 772c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 7738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (text_ptr != NULL) 7748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *text_ptr = info_ptr->text; 775c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 7768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (num_text != NULL) 7778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *num_text = info_ptr->num_text; 778c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 7798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ((png_uint_32)info_ptr->num_text); 7808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 7818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (num_text != NULL) 7828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *num_text = 0; 7838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return(0); 7848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 7858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 7868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 787c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_tIME_SUPPORTED 7888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 7898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_tIME(png_structp png_ptr, png_infop info_ptr, png_timep *mod_time) 7908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 791c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "tIME"); 792c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 7938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_tIME) 7948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project && mod_time != NULL) 7958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 7968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *mod_time = &(info_ptr->mod_time); 7978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (PNG_INFO_tIME); 7988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 7998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 8008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 8018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 8028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 803c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_tRNS_SUPPORTED 8048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 8058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_tRNS(png_structp png_ptr, png_infop info_ptr, 8068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_bytep *trans, int *num_trans, png_color_16p *trans_values) 8078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 8088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_uint_32 retval = 0; 8098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_tRNS)) 8108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 811c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner png_debug1(1, "in %s retrieval function", "tRNS"); 812c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 8138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) 8148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 8158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (trans != NULL) 8168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 8178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *trans = info_ptr->trans; 8188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project retval |= PNG_INFO_tRNS; 8198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 820c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 8218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (trans_values != NULL) 8228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *trans_values = &(info_ptr->trans_values); 8238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 8248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project else /* if (info_ptr->color_type != PNG_COLOR_TYPE_PALETTE) */ 8258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 8268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (trans_values != NULL) 8278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 8288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *trans_values = &(info_ptr->trans_values); 8298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project retval |= PNG_INFO_tRNS; 8308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 831c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner 832c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner if (trans != NULL) 8338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *trans = NULL; 8348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 835c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner if (num_trans != NULL) 8368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 8378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *num_trans = info_ptr->num_trans; 8388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project retval |= PNG_INFO_tRNS; 8398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 8408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 8418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (retval); 8428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 8438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 8448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 845c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED 8468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 8478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_unknown_chunks(png_structp png_ptr, png_infop info_ptr, 8488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project png_unknown_chunkpp unknowns) 8498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 8508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (png_ptr != NULL && info_ptr != NULL && unknowns != NULL) 8518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 8528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *unknowns = info_ptr->unknown_chunks; 8538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ((png_uint_32)info_ptr->unknown_chunks_num); 8548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 8558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (0); 8568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 8578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 8588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 859c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED 8608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_byte PNGAPI 8618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_rgb_to_gray_status (png_structp png_ptr) 8628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 8638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (png_byte)(png_ptr? png_ptr->rgb_to_gray_status : 0); 8648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 8658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 8668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 867c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner#ifdef PNG_USER_CHUNKS_SUPPORTED 8688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_voidp PNGAPI 8698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_user_chunk_ptr(png_structp png_ptr) 8708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 8718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (png_ptr? png_ptr->user_chunk_ptr : NULL); 8728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 8738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif 8748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 8758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 8768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_compression_buffer_size(png_structp png_ptr) 8778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 8788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (png_uint_32)(png_ptr? png_ptr->zbuf_size : 0L); 8798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 8808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 8818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_ASSEMBLER_CODE_SUPPORTED 8828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifndef PNG_1_0_X 883c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* This function was added to libpng 1.2.0 and should exist by default */ 8848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 8858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_asm_flags (png_structp png_ptr) 8868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 887c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner /* Obsolete, to be removed from libpng-1.4.0 */ 8888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (png_ptr? 0L: 0L); 8898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 8908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 891c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* This function was added to libpng 1.2.0 and should exist by default */ 8928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 8938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_asm_flagmask (int flag_select) 8948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 895c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner /* Obsolete, to be removed from libpng-1.4.0 */ 896c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner flag_select=flag_select; 897c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner return 0L; 8988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 8998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 9008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* GRR: could add this: && defined(PNG_MMX_CODE_SUPPORTED) */ 901c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* This function was added to libpng 1.2.0 */ 9028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 9038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_mmx_flagmask (int flag_select, int *compilerID) 9048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 905c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner /* Obsolete, to be removed from libpng-1.4.0 */ 906c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner flag_select=flag_select; 907c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner *compilerID = -1; /* unknown (i.e., no asm/MMX code compiled) */ 908c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner return 0L; 9098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 9108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 911c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* This function was added to libpng 1.2.0 */ 9128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_byte PNGAPI 9138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_mmx_bitdepth_threshold (png_structp png_ptr) 9148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 915c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner /* Obsolete, to be removed from libpng-1.4.0 */ 9168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (png_ptr? 0: 0); 9178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 9188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 919c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* This function was added to libpng 1.2.0 */ 9208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 9218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_mmx_rowbytes_threshold (png_structp png_ptr) 9228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 923c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner /* Obsolete, to be removed from libpng-1.4.0 */ 9248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (png_ptr? 0L: 0L); 9258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 9268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* ?PNG_1_0_X */ 9278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* ?PNG_ASSEMBLER_CODE_SUPPORTED */ 9288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 9298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#ifdef PNG_SET_USER_LIMITS_SUPPORTED 930c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner/* These functions were added to libpng 1.2.6 but not enabled 931c7702eb5df5f3e72ceedfcd5fb60b94c0a945934David 'Digit' Turner* by default. They will be enabled in libpng-1.4.0 */ 9328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 9338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_user_width_max (png_structp png_ptr) 9348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 9358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (png_ptr? png_ptr->user_width_max : 0); 9368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 9378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_uint_32 PNGAPI 9388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectpng_get_user_height_max (png_structp png_ptr) 9398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 9408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return (png_ptr? png_ptr->user_height_max : 0); 9418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 9428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* ?PNG_SET_USER_LIMITS_SUPPORTED */ 9438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 9448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#endif /* PNG_READ_SUPPORTED || PNG_WRITE_SUPPORTED */ 945