vcl/source/filter/graphicfilter.cxx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-)
New commits: commit 68c8b98dfb9f3463bdc8f1233fd578e236e4d570 Author: Tor Lillqvist <[email protected]> AuthorDate: Wed Feb 27 14:28:55 2019 +0200 Commit: Tor Lillqvist <[email protected]> CommitDate: Thu Feb 28 08:59:45 2019 +0100 tdf#122537: Use "best speed" instead of default compression level on iOS Speed is more important than size in the use case where this showed up in a profile of the iOS app (inserting an image). This change causes zlib's deflate_fast() being used instead of its deflate_slow(). For a specific image I tested with the former takes 1.5 s, the latter 3.4 s. This is just one aspect of the slowness of image insertio. The resizing operations mentioned in the bug report is not yet investigated. Change-Id: Icf023522b965cb0265000c821a478610d098cd0a Reviewed-on: https://gerrit.libreoffice.org/68434 Reviewed-by: Tomaž Vajngerl <[email protected]> Reviewed-by: Tor Lillqvist <[email protected]> Tested-by: Tor Lillqvist <[email protected]> diff --git a/vcl/source/filter/graphicfilter.cxx b/vcl/source/filter/graphicfilter.cxx index b30b8afbe130..e7f86486d792 100644 --- a/vcl/source/filter/graphicfilter.cxx +++ b/vcl/source/filter/graphicfilter.cxx @@ -2269,6 +2269,7 @@ IMPL_LINK( GraphicFilter, FilterCallback, ConvertData&, rData, bool ) sal_uInt16 nFormat = GRFILTER_FORMAT_DONTKNOW; OString aShortName; + css::uno::Sequence< css::beans::PropertyValue > aFilterData; switch( rData.mnFormat ) { case ConvertDataFormat::BMP: aShortName = BMP_SHORTNAME; break; @@ -2295,8 +2296,17 @@ IMPL_LINK( GraphicFilter, FilterCallback, ConvertData&, rData, bool ) else if( !aShortName.isEmpty() ) { // Export +#ifdef IOS + if (aShortName == PNG_SHORTNAME) + { + aFilterData.realloc(aFilterData.getLength() + 1); + aFilterData[aFilterData.getLength() - 1].Name = "Compression"; + // We "know" that this gets passed to zlib's deflateInit2_(). 1 means best speed. + aFilterData[aFilterData.getLength() - 1].Value <<= 1; + } +#endif nFormat = GetExportFormatNumberForShortName( OStringToOUString(aShortName, RTL_TEXTENCODING_UTF8) ); - bRet = ExportGraphic( rData.maGraphic, OUString(), rData.mrStm, nFormat ) == ERRCODE_NONE; + bRet = ExportGraphic( rData.maGraphic, OUString(), rData.mrStm, nFormat, &aFilterData ) == ERRCODE_NONE; } return bRet; _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
