diff options
author | Xisco Fauli <xiscofauli@libreoffice.org> | 2019-10-01 21:05:10 +0200 |
---|---|---|
committer | Michael Stahl <michael.stahl@cib.de> | 2019-10-18 11:14:26 +0200 |
commit | ff2f0e839f7b7ef5e79b8ec4311c971c0e8053f9 (patch) | |
tree | ab8ceacc4096c61accc0e4c38f449dc54d82efc0 /oox | |
parent | e31f35c892b282258bd4ece30175e4bc48b6b823 (diff) |
tdf#127901: pptx export image greyscale, watermark, black/white
Similar to 0db96caf0fcce09b87621c11b584a6d81cc7df86
Change-Id: I5c3ec17c7a3472629ba8a63ab500175add36ee8e
Reviewed-on: https://gerrit.libreoffice.org/79994
Tested-by: Jenkins
Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
(cherry picked from commit cb5eaa791739865d54b381c16c60224c432171dc)
Reviewed-on: https://gerrit.libreoffice.org/80014
Reviewed-by: Michael Stahl <michael.stahl@cib.de>
Diffstat (limited to 'oox')
-rw-r--r-- | oox/source/export/drawingml.cxx | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx index 2d7b300e51e3..60b674287a43 100644 --- a/oox/source/export/drawingml.cxx +++ b/oox/source/export/drawingml.cxx @@ -54,6 +54,7 @@ #include <com/sun/star/container/XIndexAccess.hpp> #include <com/sun/star/document/XStorageBasedDocument.hpp> #include <com/sun/star/drawing/BitmapMode.hpp> +#include <com/sun/star/drawing/ColorMode.hpp> #include <com/sun/star/drawing/EnhancedCustomShapeAdjustmentValue.hpp> #include <com/sun/star/drawing/EnhancedCustomShapeParameterType.hpp> #include <com/sun/star/drawing/EnhancedCustomShapeParameterPair.hpp> @@ -1285,6 +1286,23 @@ void DrawingML::WriteImageBrightnessContrastTransparence(uno::Reference<beans::X if (nTransparence == 0 && GetProperty(rXPropSet, "Transparency")) nTransparence = static_cast<sal_Int32>(mAny.get<sal_Int16>()); + if (GetProperty(rXPropSet, "GraphicColorMode")) + { + drawing::ColorMode aColorMode; + mAny >>= aColorMode; + if (aColorMode == drawing::ColorMode_GREYS) + mpFS->singleElementNS(XML_a, XML_grayscl); + else if (aColorMode == drawing::ColorMode_MONO) + //black/white has a 0,5 threshold in LibreOffice + mpFS->singleElementNS(XML_a, XML_biLevel, XML_thresh, OString::number(50000)); + else if (aColorMode == drawing::ColorMode_WATERMARK) + { + //map watermark with mso washout + nBright = 70; + nContrast = -70; + } + } + if (nBright || nContrast) { |