diff --git a/Source/FreeImage/PluginPNG.cpp b/Source/FreeImage/PluginPNG.cpp index 08e5f01..a79b16d 100644 --- a/Source/FreeImage/PluginPNG.cpp +++ b/Source/FreeImage/PluginPNG.cpp @@ -37,6 +37,7 @@ // ---------------------------------------------------------- +#include <zlib.h> #include <png.h> // ---------------------------------------------------------- @@ -101,10 +102,7 @@ ReadMetadata(png_structp png_ptr, png_infop info_ptr, FIBITMAP *dib) { tag = FreeImage_CreateTag(); if(!tag) return FALSE; - DWORD tag_length = text_ptr[i].text_length; -#ifdef PNG_iTXt_SUPPORTED - tag_length = MAX(tag_length, text_ptr[i].itxt_length); -#endif + DWORD tag_length = (DWORD) MAX(text_ptr[i].text_length, text_ptr[i].itxt_length); FreeImage_SetTagLength(tag, tag_length); FreeImage_SetTagCount(tag, tag_length); @@ -568,7 +566,7 @@ Load(FreeImageIO *io, fi_handle handle, int page, int flags, void *data) { if (png_get_valid(png_ptr, info_ptr, PNG_INFO_iCCP)) { png_charp profile_name = NULL; - png_charp profile_data = NULL; + png_bytep profile_data = NULL; png_uint_32 profile_length = 0; int compression_type; @@ -840,7 +838,7 @@ Save(FreeImageIO *io, FIBITMAP *dib, fi_handle handle, int page, int flags, void FIICCPROFILE *iccProfile = FreeImage_GetICCProfile(dib); if (iccProfile->size && iccProfile->data) { - png_set_iCCP(png_ptr, info_ptr, "Embedded Profile", 0, (png_charp)iccProfile->data, iccProfile->size); + png_set_iCCP(png_ptr, info_ptr, "Embedded Profile", 0, (png_const_bytep)iccProfile->data, iccProfile->size); } // write metadata