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