vcl/source/graphic/UnoGraphic.cxx | 28 ++++++++++++++++++++-------- vcl/source/graphic/UnoGraphicDescriptor.cxx | 2 +- vcl/source/graphic/UnoGraphicProvider.cxx | 6 +++--- vcl/source/image/Image.cxx | 2 +- 4 files changed, 25 insertions(+), 13 deletions(-)
New commits: commit a95a0933b907077b1a17255962fec15a38ca9adb Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Wed Aug 27 09:08:16 2025 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Wed Aug 27 11:41:55 2025 +0200 BitmapEx->Bitmap in vcl now that Bitmap supports transparency Change-Id: I0add8ded7c1e07435cc24bf2b8a8e475381f886d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190264 Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> Tested-by: Jenkins diff --git a/vcl/source/graphic/UnoGraphic.cxx b/vcl/source/graphic/UnoGraphic.cxx index e0498cd5567b..7fe036a3fd40 100644 --- a/vcl/source/graphic/UnoGraphic.cxx +++ b/vcl/source/graphic/UnoGraphic.cxx @@ -222,16 +222,28 @@ uno::Reference< graphic::XGraphic > SAL_CALL Graphic::applyDuotone( ::Graphic aGraphic(rxGraphic); ::Graphic aReturnGraphic; - BitmapEx aBitmapEx( aGraphic.GetBitmapEx() ); - const AlphaMask& aMask( aBitmapEx.GetAlphaMask() ); + Bitmap aBitmap( aGraphic.GetBitmap() ); + if (aBitmap.HasAlpha()) + { + const AlphaMask aMask( aBitmap.CreateAlphaMask() ); + + Bitmap aTmpBmp(aBitmap.CreateColorBitmap()); + BitmapFilter::Filter(aTmpBmp, + BitmapDuoToneFilter( + Color(ColorTransparency, nColorOne), + Color(ColorTransparency, nColorTwo))); - Bitmap aTmpBmp(aBitmapEx.GetBitmap()); - BitmapFilter::Filter(aTmpBmp, - BitmapDuoToneFilter( - Color(ColorTransparency, nColorOne), - Color(ColorTransparency, nColorTwo))); + aReturnGraphic = ::Graphic( BitmapEx( aTmpBmp, aMask ) ); + } + else + { + BitmapFilter::Filter(aBitmap, + BitmapDuoToneFilter( + Color(ColorTransparency, nColorOne), + Color(ColorTransparency, nColorTwo))); - aReturnGraphic = ::Graphic( BitmapEx( aTmpBmp, aMask ) ); + aReturnGraphic = ::Graphic( aBitmap ); + } aReturnGraphic.setOriginURL(aGraphic.getOriginURL()); return aReturnGraphic.GetXGraphic(); } diff --git a/vcl/source/graphic/UnoGraphicDescriptor.cxx b/vcl/source/graphic/UnoGraphicDescriptor.cxx index f36d04988be8..a160c1d81e6b 100644 --- a/vcl/source/graphic/UnoGraphicDescriptor.cxx +++ b/vcl/source/graphic/UnoGraphicDescriptor.cxx @@ -365,7 +365,7 @@ void GraphicDescriptor::_getPropertyValues( const comphelper::PropertyMapEntry** { if( mpGraphic->GetType() == GraphicType::Bitmap ) { - auto ePixelFormat = mpGraphic->GetBitmapEx().GetBitmap().getPixelFormat(); + auto ePixelFormat = mpGraphic->GetBitmap().getPixelFormat(); nBitsPerPixel = vcl::pixelFormatBitCount(ePixelFormat); } } diff --git a/vcl/source/graphic/UnoGraphicProvider.cxx b/vcl/source/graphic/UnoGraphicProvider.cxx index 39765cfd6899..840965ca2df9 100644 --- a/vcl/source/graphic/UnoGraphicProvider.cxx +++ b/vcl/source/graphic/UnoGraphicProvider.cxx @@ -589,9 +589,9 @@ void ImplApplyFilterData( ::Graphic& rGraphic, const uno::Sequence< beans::Prope ImplCalculateCropRect( rGraphic, aCropLogic, aCropPixel ); if ( bRemoveCropArea ) { - BitmapEx aBmpEx( rGraphic.GetBitmapEx() ); - aBmpEx.Crop( aCropPixel ); - rGraphic = aBmpEx; + Bitmap aBmp( rGraphic.GetBitmap() ); + aBmp.Crop( aCropPixel ); + rGraphic = aBmp; } Size aVisiblePixelSize( bRemoveCropArea ? rGraphic.GetSizePixel() : aCropPixel.GetSize() ); ImplApplyBitmapResolution( rGraphic, nImageResolution, aVisiblePixelSize, aLogicalSize ); diff --git a/vcl/source/image/Image.cxx b/vcl/source/image/Image.cxx index 126e28d35739..d5f86f07ced4 100644 --- a/vcl/source/image/Image.cxx +++ b/vcl/source/image/Image.cxx @@ -68,7 +68,7 @@ Image::Image(const OUString & rFileUrl) { Graphic aGraphic; if (ERRCODE_NONE == GraphicFilter::LoadGraphic(rFileUrl, u"" IMP_PNG ""_ustr, aGraphic)) - ImplInit(Bitmap(aGraphic.GetBitmapEx())); + ImplInit(aGraphic.GetBitmap()); } }