X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a37e742445fab5311049c705ed7c17aeff878abd..12b5f4b4d2d8a07962da7ba3b78c8c1ec2634a67:/src/common/imagpng.cpp?ds=sidebyside diff --git a/src/common/imagpng.cpp b/src/common/imagpng.cpp index 21bcf6ee4d..2ffb924bf9 100644 --- a/src/common/imagpng.cpp +++ b/src/common/imagpng.cpp @@ -538,7 +538,7 @@ wxPNGHandler::LoadFile(wxImage *image, goto error; png_read_info( png_ptr, info_ptr ); - png_get_IHDR( png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, &interlace_type, (int*) NULL, (int*) NULL ); + png_get_IHDR( png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, &interlace_type, NULL, NULL ); if (color_type == PNG_COLOR_TYPE_PALETTE) png_set_expand( png_ptr ); @@ -710,6 +710,21 @@ bool wxPNGHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool verbos : PNG_COLOR_TYPE_GRAY; } + if (image->HasOption(wxIMAGE_OPTION_PNG_FILTER)) + png_set_filter( png_ptr, PNG_FILTER_TYPE_BASE, image->GetOptionInt(wxIMAGE_OPTION_PNG_FILTER) ); + + if (image->HasOption(wxIMAGE_OPTION_PNG_COMPRESSION_LEVEL)) + png_set_compression_level( png_ptr, image->GetOptionInt(wxIMAGE_OPTION_PNG_COMPRESSION_LEVEL) ); + + if (image->HasOption(wxIMAGE_OPTION_PNG_COMPRESSION_MEM_LEVEL)) + png_set_compression_mem_level( png_ptr, image->GetOptionInt(wxIMAGE_OPTION_PNG_COMPRESSION_MEM_LEVEL) ); + + if (image->HasOption(wxIMAGE_OPTION_PNG_COMPRESSION_STRATEGY)) + png_set_compression_strategy( png_ptr, image->GetOptionInt(wxIMAGE_OPTION_PNG_COMPRESSION_STRATEGY) ); + + if (image->HasOption(wxIMAGE_OPTION_PNG_COMPRESSION_BUFFER_SIZE)) + png_set_compression_buffer_size( png_ptr, image->GetOptionInt(wxIMAGE_OPTION_PNG_COMPRESSION_BUFFER_SIZE) ); + png_set_IHDR( png_ptr, info_ptr, image->GetWidth(), image->GetHeight(), iBitDepth, iPngColorType, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE,