include/vcl/bitmapex.hxx     |    8 ++++++++
 include/vcl/dibtools.hxx     |    2 +-
 svx/source/svdraw/svdpdf.cxx |    2 +-
 vcl/source/gdi/bitmapex.cxx  |    8 ++++++++
 vcl/source/gdi/dibtools.cxx  |    4 ++--
 5 files changed, 20 insertions(+), 4 deletions(-)

New commits:
commit 7707cba0bd3f1d544ead634282f8d3415af0cd5e
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Mon Jul 8 11:25:15 2019 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Mon Jul 8 12:58:51 2019 +0200

    use BitmapEx in ImpSdrPdfImport::ImportImage
    
    Change-Id: I80e197ffcda4ebc5d50e611b7a4a5c3fd84fc839
    Reviewed-on: https://gerrit.libreoffice.org/75201
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/include/vcl/bitmapex.hxx b/include/vcl/bitmapex.hxx
index 71da7cb45dc8..478b9fdefea9 100644
--- a/include/vcl/bitmapex.hxx
+++ b/include/vcl/bitmapex.hxx
@@ -22,6 +22,7 @@
 
 #include <vcl/dllapi.h>
 #include <vcl/alpha.hxx>
+#include <vcl/Scanline.hxx>
 #include <tools/color.hxx>
 
 #include <sal/types.h>
@@ -47,6 +48,7 @@ public:
     explicit            BitmapEx( const OUString& rIconName );
                         BitmapEx( const BitmapEx& rBitmapEx );
                         BitmapEx( const BitmapEx& rBitmapEx, Point aSrc, Size 
aSize );
+                        BitmapEx( Size aSize, sal_uInt16 nBitCount );
     explicit            BitmapEx( const Bitmap& rBmp );
                         BitmapEx( const Bitmap& rBmp, const Bitmap& rMask );
                         BitmapEx( const Bitmap& rBmp, const AlphaMask& 
rAlphaMask );
@@ -467,6 +469,12 @@ public:
 private:
     friend class ImpGraphic;
     friend bool VCL_DLLPUBLIC WriteDIBBitmapEx(const BitmapEx& rSource, 
SvStream& rOStm);
+    friend void ReadRawDIB();
+    friend bool VCL_DLLPUBLIC ReadRawDIB(BitmapEx& rTarget, const unsigned 
char* pBuf,
+                                    const ScanlineFormat nFormat,
+                                    const int nHeight,
+                                    const int nStride);
+
     void  loadFromIconTheme( const OUString& rIconName );
 
     Bitmap              maBitmap;
diff --git a/include/vcl/dibtools.hxx b/include/vcl/dibtools.hxx
index c5fa662ebb73..6064491f8ec3 100644
--- a/include/vcl/dibtools.hxx
+++ b/include/vcl/dibtools.hxx
@@ -55,7 +55,7 @@ bool VCL_DLLPUBLIC ReadDIBV5(
     SvStream& rIStm);
 
 bool VCL_DLLPUBLIC ReadRawDIB(
-    Bitmap& rTarget,
+    BitmapEx& rTarget,
     const unsigned char* pBuf,
     const ScanlineFormat nFormat,
     const int nHeight,
diff --git a/svx/source/svdraw/svdpdf.cxx b/svx/source/svdraw/svdpdf.cxx
index 687c3e260341..552575442039 100644
--- a/svx/source/svdraw/svdpdf.cxx
+++ b/svx/source/svdraw/svdpdf.cxx
@@ -992,7 +992,7 @@ void ImpSdrPdfImport::ImportImage(FPDF_PAGEOBJECT 
pPageObject, int /*nPageObject
     const int nWidth = FPDFBitmap_GetWidth(bitmap.get());
     const int nHeight = FPDFBitmap_GetHeight(bitmap.get());
     const int nStride = FPDFBitmap_GetStride(bitmap.get());
-    Bitmap aBitmap(Size(nWidth, nHeight), 24);
+    BitmapEx aBitmap(Size(nWidth, nHeight), 24);
 
     switch (format)
     {
diff --git a/vcl/source/gdi/bitmapex.cxx b/vcl/source/gdi/bitmapex.cxx
index 3faaf3fd96e1..4bfbfeb5a2ff 100644
--- a/vcl/source/gdi/bitmapex.cxx
+++ b/vcl/source/gdi/bitmapex.cxx
@@ -85,6 +85,14 @@ BitmapEx::BitmapEx( const BitmapEx& rBitmapEx, Point aSrc, 
Size aSize )
     CopyPixel( aDestRect, aSrcRect, &rBitmapEx );
 }
 
+BitmapEx::BitmapEx( Size aSize, sal_uInt16 nBitCount )
+    : meTransparent(TransparentType::NONE)
+    , mbAlpha(false)
+{
+    maBitmap = Bitmap( aSize, nBitCount );
+    SetSizePixel(aSize);
+}
+
 BitmapEx::BitmapEx( const OUString& rIconName )
     : meTransparent(TransparentType::NONE)
     , mbAlpha(false)
diff --git a/vcl/source/gdi/dibtools.cxx b/vcl/source/gdi/dibtools.cxx
index c8f64318f0fd..965a403a0d7d 100644
--- a/vcl/source/gdi/dibtools.cxx
+++ b/vcl/source/gdi/dibtools.cxx
@@ -1839,13 +1839,13 @@ bool ReadDIBV5(
 }
 
 bool ReadRawDIB(
-    Bitmap& rTarget,
+    BitmapEx& rTarget,
     const unsigned char* pBuf,
     const ScanlineFormat nFormat,
     const int nHeight,
     const int nStride)
 {
-    BitmapScopedWriteAccess pWriteAccess(rTarget.AcquireWriteAccess(), 
rTarget);
+    BitmapScopedWriteAccess 
pWriteAccess(rTarget.maBitmap.AcquireWriteAccess(), rTarget.maBitmap);
     for (int nRow = 0; nRow < nHeight; ++nRow)
     {
         pWriteAccess->CopyScanline(nRow, pBuf + (nStride * nRow), nFormat, 
nStride);
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to