⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pngconf.h

📁 png图像文件格式开发包
💻 H
📖 第 1 页 / 共 3 页
字号:
#ifndef PNG_NO_WRITE_sPLT#  define PNG_WRITE_sPLT_SUPPORTED#  ifndef PNG_sPLT_SUPPORTED#    define PNG_sPLT_SUPPORTED#  endif#endif#ifndef PNG_NO_WRITE_sRGB#  define PNG_WRITE_sRGB_SUPPORTED#  ifndef PNG_sRGB_SUPPORTED#    define PNG_sRGB_SUPPORTED#  endif#endif#ifndef PNG_NO_WRITE_tEXt#  define PNG_WRITE_tEXt_SUPPORTED#  ifndef PNG_tEXt_SUPPORTED#    define PNG_tEXt_SUPPORTED#  endif#endif#ifndef PNG_NO_WRITE_tIME#  define PNG_WRITE_tIME_SUPPORTED#  ifndef PNG_tIME_SUPPORTED#    define PNG_tIME_SUPPORTED#  endif#endif#ifndef PNG_NO_WRITE_tRNS#  define PNG_WRITE_tRNS_SUPPORTED#  ifndef PNG_tRNS_SUPPORTED#    define PNG_tRNS_SUPPORTED#  endif#endif#ifndef PNG_NO_WRITE_zTXt#  define PNG_WRITE_zTXt_SUPPORTED#  ifndef PNG_zTXt_SUPPORTED#    define PNG_zTXt_SUPPORTED#  endif#endif#ifndef PNG_NO_WRITE_UNKNOWN_CHUNKS#  define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED#  ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED#    define PNG_UNKNOWN_CHUNKS_SUPPORTED#  endif#  ifndef PNG_NO_HANDLE_AS_UNKNOWN#     ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED#       define PNG_HANDLE_AS_UNKNOWN_SUPPORTED#     endif#  endif#endif#if defined(PNG_WRITE_iTXt_SUPPORTED) || defined(PNG_WRITE_tEXt_SUPPORTED) || \    defined(PNG_WRITE_zTXt_SUPPORTED)#  define PNG_WRITE_TEXT_SUPPORTED#  ifndef PNG_TEXT_SUPPORTED#    define PNG_TEXT_SUPPORTED#  endif#endif#endif /* PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED *//* Turn this off to disable png_read_png() and * png_write_png() and leave the row_pointers member * out of the info structure. */#ifndef PNG_NO_INFO_IMAGE#  define PNG_INFO_IMAGE_SUPPORTED#endif/* need the time information for reading tIME chunks */#if defined(PNG_tIME_SUPPORTED)#  if !defined(_WIN32_WCE)     /* "time.h" functions are not supported on WindowsCE */#    include <time.h>#  endif#endif/* Some typedefs to get us started.  These should be safe on most of the * common platforms.  The typedefs should be at least as large as the * numbers suggest (a png_uint_32 must be at least 32 bits long), but they * don't have to be exactly that size.  Some compilers dislike passing * unsigned shorts as function parameters, so you may be better off using * unsigned int for png_uint_16.  Likewise, for 64-bit systems, you may * want to have unsigned int for png_uint_32 instead of unsigned long. */typedef unsigned long png_uint_32;typedef long png_int_32;typedef unsigned short png_uint_16;typedef short png_int_16;typedef unsigned char png_byte;/* This is usually size_t.  It is typedef'ed just in case you need it to   change (I'm not sure if you will or not, so I thought I'd be safe) */typedef size_t png_size_t;/* The following is needed for medium model support.  It cannot be in the * PNG_INTERNAL section.  Needs modification for other compilers besides * MSC.  Model independent support declares all arrays and pointers to be * large using the far keyword.  The zlib version used must also support * model independent data.  As of version zlib 1.0.4, the necessary changes * have been made in zlib.  The USE_FAR_KEYWORD define triggers other * changes that are needed. (Tim Wegner) *//* Separate compiler dependencies (problem here is that zlib.h always   defines FAR. (SJT) */#ifdef __BORLANDC__#  if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__)#    define LDATA 1#  else#    define LDATA 0#  endif   /* GRR:  why is Cygwin in here?  Cygwin is not Borland C... */#  if !defined(__WIN32__) && !defined(__FLAT__) && !defined(__CYGWIN__)#    define PNG_MAX_MALLOC_64K#    if (LDATA != 1)#      ifndef FAR#        define FAR __far#      endif#      define USE_FAR_KEYWORD#    endif   /* LDATA != 1 */     /* Possibly useful for moving data out of default segment.      * Uncomment it if you want. Could also define FARDATA as      * const if your compiler supports it. (SJT)#    define FARDATA FAR      */#  endif  /* __WIN32__, __FLAT__, __CYGWIN__ */#endif   /* __BORLANDC__ *//* Suggest testing for specific compiler first before testing for * FAR.  The Watcom compiler defines both __MEDIUM__ and M_I86MM, * making reliance oncertain keywords suspect. (SJT) *//* MSC Medium model */#if defined(FAR)#  if defined(M_I86MM)#    define USE_FAR_KEYWORD#    define FARDATA FAR#    include <dos.h>#  endif#endif/* SJT: default case */#ifndef FAR#  define FAR#endif/* At this point FAR is always defined */#ifndef FARDATA#  define FARDATA#endif/* Typedef for floating-point numbers that are converted   to fixed-point with a multiple of 100,000, e.g., int_gamma */typedef png_int_32 png_fixed_point;/* Add typedefs for pointers */typedef void            FAR * png_voidp;typedef png_byte        FAR * png_bytep;typedef png_uint_32     FAR * png_uint_32p;typedef png_int_32      FAR * png_int_32p;typedef png_uint_16     FAR * png_uint_16p;typedef png_int_16      FAR * png_int_16p;typedef PNG_CONST char  FAR * png_const_charp;typedef char            FAR * png_charp;typedef png_fixed_point FAR * png_fixed_point_p;#ifndef PNG_NO_STDIO#if defined(_WIN32_WCE)typedef HANDLE                png_FILE_p;#elsetypedef FILE                * png_FILE_p;#endif#endif#ifdef PNG_FLOATING_POINT_SUPPORTEDtypedef double          FAR * png_doublep;#endif/* Pointers to pointers; i.e. arrays */typedef png_byte        FAR * FAR * png_bytepp;typedef png_uint_32     FAR * FAR * png_uint_32pp;typedef png_int_32      FAR * FAR * png_int_32pp;typedef png_uint_16     FAR * FAR * png_uint_16pp;typedef png_int_16      FAR * FAR * png_int_16pp;typedef PNG_CONST char  FAR * FAR * png_const_charpp;typedef char            FAR * FAR * png_charpp;typedef png_fixed_point FAR * FAR * png_fixed_point_pp;#ifdef PNG_FLOATING_POINT_SUPPORTEDtypedef double          FAR * FAR * png_doublepp;#endif/* Pointers to pointers to pointers; i.e., pointer to array */typedef char            FAR * FAR * FAR * png_charppp;/* libpng typedefs for types in zlib. If zlib changes * or another compression library is used, then change these. * Eliminates need to change all the source files. */typedef charf *         png_zcharp;typedef charf * FAR *   png_zcharpp;typedef z_stream FAR *  png_zstreamp;/* * Define PNG_BUILD_DLL if the module being built is a Windows * LIBPNG DLL. * * Define PNG_USE_DLL if you want to *link* to the Windows LIBPNG DLL. * It is equivalent to Microsoft predefined macro _DLL that is * automatically defined when you compile using the share * version of the CRT (C Run-Time library) * * The cygwin mods make this behavior a little different: * Define PNG_BUILD_DLL if you are building a dll for use with cygwin * Define PNG_STATIC if you are building a static library for use with cygwin, *   -or- if you are building an application that you want to link to the *   static library. * PNG_USE_DLL is defined by default (no user action needed) unless one of *   the other flags is defined. */#if !defined(PNG_DLL) && (defined(PNG_BUILD_DLL) || defined(PNG_USE_DLL))#  define PNG_DLL#endif/* If CYGWIN, then disallow GLOBAL ARRAYS unless building a static lib. * When building a static lib, default to no GLOBAL ARRAYS, but allow * command-line override */#if defined(__CYGWIN__)#  if !defined(PNG_STATIC)#    if defined(PNG_USE_GLOBAL_ARRAYS)#      undef PNG_USE_GLOBAL_ARRAYS#    endif#    if !defined(PNG_USE_LOCAL_ARRAYS)#      define PNG_USE_LOCAL_ARRAYS#    endif#  else#    if defined(PNG_USE_LOCAL_ARRAYS) || defined(PNG_NO_GLOBAL_ARRAYS)#      if defined(PNG_USE_GLOBAL_ARRAYS)#        undef PNG_USE_GLOBAL_ARRAYS#      endif#    endif#  endif#  if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS)#    define PNG_USE_LOCAL_ARRAYS#  endif#endif/* Do not use global arrays (helps with building DLL's) * They are no longer used in libpng itself, since version 1.0.5c, * but might be required for some pre-1.0.5c applications. */#if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS)#  if defined(PNG_NO_GLOBAL_ARRAYS) || (defined(__GNUC__) && defined(PNG_DLL))#    define PNG_USE_LOCAL_ARRAYS#  else#    define PNG_USE_GLOBAL_ARRAYS#  endif#endif#if defined(__CYGWIN__)#  undef PNGAPI#  define PNGAPI __cdecl#  undef PNG_IMPEXP#  define PNG_IMPEXP#endif  /* If you define PNGAPI, e.g., with compiler option "-DPNGAPI=__stdcall", * you may get warnings regarding the linkage of png_zalloc and png_zfree. * Don't ignore those warnings; you must also reset the default calling * convention in your compiler to match your PNGAPI, and you must build * zlib and your applications the same way you build libpng. */#ifndef PNGAPI#if defined(__MINGW32__) && !defined(PNG_MODULEDEF)#  ifndef PNG_NO_MODULEDEF#    define PNG_NO_MODULEDEF#  endif#endif#if !defined(PNG_IMPEXP) && defined(PNG_BUILD_DLL) && !defined(PNG_NO_MODULEDEF)#  define PNG_IMPEXP#endif#if defined(PNG_DLL) || defined(_DLL) || defined(__DLL__ ) || \    (( defined(_Windows) || defined(_WINDOWS) || \       defined(WIN32) || defined(_WIN32) || defined(__WIN32__) ))#  if defined(__GNUC__) || (defined (_MSC_VER) && (_MSC_VER >= 800))#    define PNGAPI __cdecl#  else#    define PNGAPI _cdecl#  endif#  if !defined(PNG_IMPEXP) && (!defined(PNG_DLL) || \       0 /* WINCOMPILER_WITH_NO_SUPPORT_FOR_DECLIMPEXP */)#     define PNG_IMPEXP#  endif#  if !defined(PNG_IMPEXP)#     define PNG_EXPORT_TYPE1(type,symbol)  PNG_IMPEXP type PNGAPI symbol#     define PNG_EXPORT_TYPE2(type,symbol)  type PNG_IMPEXP PNGAPI symbol      /* Borland/Microsoft */#     if defined(_MSC_VER) || defined(__BORLANDC__)#        if (_MSC_VER >= 800) || (__BORLANDC__ >= 0x500)#           define PNG_EXPORT PNG_EXPORT_TYPE1#        else#           define PNG_EXPORT PNG_EXPORT_TYPE2#           if defined(PNG_BUILD_DLL)#              define PNG_IMPEXP __export#           else#              define PNG_IMPEXP /*__import */ /* doesn't exist AFAIK in                                                 VC++ */#           endif                             /* Exists in Borland C++ for                                                 C++ classes (== huge) */#        endif#     endif#     if !defined(PNG_IMPEXP)#        if defined(PNG_BUILD_DLL)#           define PNG_IMPEXP __declspec(dllexport)#        else#           define PNG_IMPEXP __declspec(dllimport)#        endif#     endif#  endif  /* PNG_IMPEXP */#else /* !(DLL || non-cygwin WINDOWS) */#    if (defined(__IBMC__) || defined(IBMCPP__)) && defined(__OS2__)#      define PNGAPI _System#      define PNG_IMPEXP#    else#      if 0 /* ... other platforms, with other meanings */#      else#        define PNGAPI#        define PNG_IMPEXP#      endif#    endif#endif#endif#ifndef PNGAPI#  define PNGAPI#endif#ifndef PNG_IMPEXP#  define PNG_IMPEXP#endif#ifndef PNG_EXPORT#  define PNG_EXPORT(type,symbol) PNG_IMPEXP type PNGAPI symbol#endif#ifdef PNG_USE_GLOBAL_ARRAYS#  ifndef PNG_EXPORT_VAR#    define PNG_EXPORT_VAR(type) extern PNG_IMPEXP type#  endif#endif/* User may want to use these so they are not in PNG_INTERNAL. Any library * functions that are passed far data must be model independent. */#ifndef PNG_ABORT#  define PNG_ABORT() abort()#endif#ifdef PNG_SETJMP_SUPPORTED#  define png_jmpbuf(png_ptr) ((png_ptr)->jmpbuf)#else#  define png_jmpbuf(png_ptr) \   (LIBPNG_WAS_COMPILED_WITH__PNG_SETJMP_NOT_SUPPORTED)#endif#if defined(USE_FAR_KEYWORD)  /* memory model independent fns *//* use this to make far-to-near assignments */#  define CHECK   1#  define NOCHECK 0#  define CVT_PTR(ptr) (png_far_to_near(png_ptr,ptr,CHECK))#  define CVT_PTR_NOCHECK(ptr) (png_far_to_near(png_ptr,ptr,NOCHECK))#  define png_strcpy _fstrcpy#  define png_strlen _fstrlen#  define png_memcmp _fmemcmp      /* SJT: added */#  define png_memcpy _fmemcpy#  define png_memset _fmemset#else /* use the usual functions */#  define CVT_PTR(ptr)         (ptr)#  define CVT_PTR_NOCHECK(ptr) (ptr)#  define png_strcpy strcpy#  define png_strlen strlen#  define png_memcmp memcmp     /* SJT: added */#  define png_memcpy memcpy#  define png_memset memset#endif/* End of memory model independent support *//* Just a little check that someone hasn't tried to define something * contradictory. */#if (PNG_ZBUF_SIZE > 65536) && defined(PNG_MAX_MALLOC_64K)#  undef PNG_ZBUF_SIZE#  define PNG_ZBUF_SIZE 65536#endif#ifdef PNG_READ_SUPPORTED/* Prior to libpng-1.0.9, this block was in pngasmrd.h */#if defined(PNG_INTERNAL)/* These are the default thresholds before the MMX code kicks in; if either * rowbytes or bitdepth is below the threshold, plain C code is used.  These * can be overridden at runtime via the png_set_mmx_thresholds() call in * libpng 1.2.0 and later.  The values below were chosen by Intel. */#ifndef PNG_MMX_ROWBYTES_THRESHOLD_DEFAULT#  define PNG_MMX_ROWBYTES_THRESHOLD_DEFAULT  128  /*  >=  */#endif#ifndef PNG_MMX_BITDEPTH_THRESHOLD_DEFAULT#  define PNG_MMX_BITDEPTH_THRESHOLD_DEFAULT  9    /*  >=  */   #endif/* Set this in the makefile for VC++ on Pentium, not here. *//* Platform must be Pentium.  Makefile must assemble and load pngvcrd.c . * MMX will be detected at run time and used if present. */#ifdef PNG_USE_PNGVCRD#  define PNG_HAVE_ASSEMBLER_COMBINE_ROW#  define PNG_HAVE_ASSEMBLER_READ_INTERLACE#  define PNG_HAVE_ASSEMBLER_READ_FILTER_ROW#endif/* Set this in the makefile for gcc/as on Pentium, not here. *//* Platform must be Pentium.  Makefile must assemble and load pnggccrd.c . * MMX will be detected at run time and used if present. */#ifdef PNG_USE_PNGGCCRD#  define PNG_HAVE_ASSEMBLER_COMBINE_ROW#  define PNG_HAVE_ASSEMBLER_READ_INTERLACE#  define PNG_HAVE_ASSEMBLER_READ_FILTER_ROW#endif/* - see pnggccrd.c for info about what is currently enabled */#endif /* PNG_INTERNAL */#endif /* PNG_READ_SUPPORTED */#endif /* PNGCONF_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -