vcl/inc/pdf/pdfwriter_impl.hxx    |    2 +-
 vcl/source/gdi/pdfwriter_impl.cxx |   33 +++++++++------------------------
 2 files changed, 10 insertions(+), 25 deletions(-)

New commits:
commit 2d813610d2de85455588a65ca1bc81391a3cdc7d
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Sun Feb 9 11:57:12 2025 +0200
Commit:     Noel Grandin <noelgran...@gmail.com>
CommitDate: Sun Feb 9 17:18:48 2025 +0100

    simplify writeBitmapMaskObject
    
    we are only actually fill in two elements of the struct we pass
    here.
    
    Change-Id: Ic07b8395c56876d5a0e1193ebedebf49d65375ae
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181315
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>
    Tested-by: Jenkins

diff --git a/vcl/inc/pdf/pdfwriter_impl.hxx b/vcl/inc/pdf/pdfwriter_impl.hxx
index 1500ecba0e1d..d027ae38d143 100644
--- a/vcl/inc/pdf/pdfwriter_impl.hxx
+++ b/vcl/inc/pdf/pdfwriter_impl.hxx
@@ -895,7 +895,7 @@ private:
     bool writeBitmapObject( const BitmapEmit& rObject );
     /* writes an XObject of type mask image
      */
-    bool writeBitmapMaskObject( const BitmapEmit& rObject );
+    bool writeBitmapMaskObject( sal_Int32 nMaskObject, const AlphaMask& 
rAlphaMask );
 
     void writeJPG( const JPGEmit& rEmit );
     /// Writes the form XObject proxy for the image.
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx 
b/vcl/source/gdi/pdfwriter_impl.cxx
index b5b30bb72b45..6dfc6d0039c3 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -9183,10 +9183,7 @@ void PDFWriterImpl::writeJPG( const JPGEmit& rObject )
 
     if( nMaskObject )
     {
-        BitmapEmit aEmit;
-        aEmit.m_nObject = nMaskObject;
-        aEmit.m_aBitmap = BitmapEx( rObject.m_aAlphaMask.GetBitmap(), 
rObject.m_aAlphaMask );
-        writeBitmapMaskObject( aEmit );
+        writeBitmapMaskObject( nMaskObject, rObject.m_aAlphaMask );
     }
 
     writeReferenceXObject(rObject.m_aReferenceXObject);
@@ -9796,10 +9793,7 @@ bool PDFWriterImpl::writeBitmapObject( const BitmapEmit& 
rObject )
 
     if( nMaskObject )
     {
-        BitmapEmit aEmit;
-        aEmit.m_nObject             = nMaskObject;
-        aEmit.m_aBitmap             = rObject.m_aBitmap;
-        return writeBitmapMaskObject( aEmit );
+        return writeBitmapMaskObject( nMaskObject, 
rObject.m_aBitmap.GetAlphaMask() );
     }
 
     writeReferenceXObject(rObject.m_aReferenceXObject);
@@ -9807,29 +9801,22 @@ bool PDFWriterImpl::writeBitmapObject( const 
BitmapEmit& rObject )
     return true;
 }
 
-bool PDFWriterImpl::writeBitmapMaskObject( const BitmapEmit& rObject )
+bool PDFWriterImpl::writeBitmapMaskObject( sal_Int32 nMaskObject, const 
AlphaMask& rAlphaMask )
 {
-    assert( rObject.m_aBitmap.IsAlpha() );
-    assert( rObject.m_aBitmap.GetAlphaMask().GetBitmap().getPixelFormat() == 
vcl::PixelFormat::N8_BPP );
+    assert( rAlphaMask.GetBitmap().getPixelFormat() == 
vcl::PixelFormat::N8_BPP );
 
-    if (rObject.m_aReferenceXObject.hasExternalPDFData() && 
!m_aContext.UseReferenceXObject)
-    {
-        writeReferenceXObject(rObject.m_aReferenceXObject);
-        return true;
-    }
-
-    if (!updateObject(rObject.m_nObject))
+    if (!updateObject(nMaskObject))
         return false;
 
     Bitmap  aBitmap;
     if( m_aContext.Version < PDFWriter::PDFVersion::PDF_1_4 )
     {
-        aBitmap = rObject.m_aBitmap.GetAlphaMask().GetBitmap();
+        aBitmap = rAlphaMask.GetBitmap();
         aBitmap.Convert( BmpConversion::N1BitThreshold );
     }
     else
     {
-        aBitmap = rObject.m_aBitmap.GetAlphaMask().GetBitmap();
+        aBitmap = rAlphaMask.GetBitmap();
     }
 
     const sal_Int32 nBitsPerComponent = 8;
@@ -9841,7 +9828,7 @@ bool PDFWriterImpl::writeBitmapMaskObject( const 
BitmapEmit& rObject )
         emitComment( "PDFWriterImpl::writeBitmapObject" );
     }
     OStringBuffer aLine(1024);
-    aLine.append( rObject.m_nObject );
+    aLine.append( nMaskObject );
     aLine.append( " 0 obj
"
                   "<</Type/XObject/Subtype/Image/Width " );
     aLine.append( static_cast<sal_Int32>(aBitmap.GetSizePixel().Width()) );
@@ -9866,7 +9853,7 @@ bool PDFWriterImpl::writeBitmapMaskObject( const 
BitmapEmit& rObject )
     if (osl::File::E_None != m_aFile.getPos(nStartPos))
         return false;
 
-    checkAndEnableStreamEncryption( rObject.m_nObject );
+    checkAndEnableStreamEncryption( nMaskObject );
     beginCompression();
     BitmapScopedReadAccess pAccess(aBitmap);
     //With PDF bitmaps, each row is padded to a BYTE boundary (multiple of 8 
bits).
@@ -9893,8 +9880,6 @@ bool PDFWriterImpl::writeBitmapMaskObject( const 
BitmapEmit& rObject )
     aLine.append( "
endobj

" );
     if (!writeBuffer(aLine)) return false;
 
-    writeReferenceXObject(rObject.m_aReferenceXObject);
-
     return true;
 }
 

Reply via email to