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());
     }
 }
 

Reply via email to