filter/source/msfilter/msdffimp.cxx | 9 +++------ include/vcl/bitmapex.hxx | 1 + vcl/source/gdi/bitmapex.cxx | 8 ++++++++ 3 files changed, 12 insertions(+), 6 deletions(-)
New commits: commit 8015e0a15d1b8c454c26c645c7e8ebee9c4e1ee1 Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Fri Mar 16 13:43:08 2018 +0200 move some mask code from SvxMSDffManager::ImportGraphic inside BitmapEx part of moving GetMask/GetAlpha touching code inside vcl Change-Id: I46e908ed6216dd521143ca94d2dcbd7e95d8b9ce Reviewed-on: https://gerrit.libreoffice.org/51408 Reviewed-by: Michael Meeks <michael.me...@collabora.com> Tested-by: Jenkins <c...@libreoffice.org> diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx index 960fa7f1ed2d..7c77dff78824 100644 --- a/filter/source/msfilter/msdffimp.cxx +++ b/filter/source/msfilter/msdffimp.cxx @@ -3822,12 +3822,9 @@ SdrObject* SvxMSDffManager::ImportGraphic( SvStream& rSt, SfxItemSet& rSet, cons if ( aGraf.GetType() == GraphicType::Bitmap ) { - BitmapEx aBitmapEx( aGraf.GetBitmapEx() ); - Bitmap aBitmap( aBitmapEx.GetBitmap() ); - Bitmap aMask( aBitmap.CreateMask( MSO_CLR_ToColor( nTransColor, DFF_Prop_pictureTransparent ), 9 ) ); - if ( aBitmapEx.IsTransparent() ) - aMask.CombineSimple( aBitmapEx.GetMask(), BmpCombine::Or ); - aGraf = BitmapEx( aBitmap, aMask ); + BitmapEx aBitmapEx( aGraf.GetBitmapEx() ); + aBitmapEx.CombineMaskOr( MSO_CLR_ToColor( nTransColor, DFF_Prop_pictureTransparent ), 9 ); + aGraf = aBitmapEx; } } diff --git a/include/vcl/bitmapex.hxx b/include/vcl/bitmapex.hxx index 4876180e10c4..d78f273b21ad 100644 --- a/include/vcl/bitmapex.hxx +++ b/include/vcl/bitmapex.hxx @@ -448,6 +448,7 @@ public: void AdjustTransparency( sal_uInt8 cTrans ); + void CombineMaskOr(Color maskColor, sal_uInt8 nTol); public: SAL_DLLPRIVATE std::shared_ptr<ImpBitmap> const & ImplGetBitmapImpBitmap() const { return maBitmap.ImplGetImpBitmap(); } diff --git a/vcl/source/gdi/bitmapex.cxx b/vcl/source/gdi/bitmapex.cxx index 1dcc72befeaf..14b3fa17efd6 100644 --- a/vcl/source/gdi/bitmapex.cxx +++ b/vcl/source/gdi/bitmapex.cxx @@ -1441,4 +1441,12 @@ void BitmapEx::GetSplitData( std::vector<sal_uInt8>& rvColorData, std::vector<sa } } +void BitmapEx::CombineMaskOr(Color maskColor, sal_uInt8 nTol) +{ + Bitmap aNewMask = maBitmap.CreateMask( maskColor, nTol ); + if ( IsTransparent() ) + aNewMask.CombineSimple( maMask, BmpCombine::Or ); + maMask = aNewMask; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits