diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2020-10-14 21:02:45 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2020-10-15 09:21:06 +0200 |
commit | 807669774a87b9d5a69eededbaf26962205f9ff8 (patch) | |
tree | 473426e5e04687543f54debe83990e078fc33ae2 /svx/source | |
parent | ce98648b85169fa0fb8b5d2de179b280a682bde0 (diff) |
pdfium: add an FPDFImageObj_GetBitmap() wrapper
Replaces both FPDFBitmapDeleter and most manual calls to
FPDFBitmap_Destroy().
Change-Id: I4676dd2f51b6b348ebbb6edc0379d7afd8fa79d0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104324
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'svx/source')
-rw-r--r-- | svx/source/svdraw/svdpdf.cxx | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/svx/source/svdraw/svdpdf.cxx b/svx/source/svdraw/svdpdf.cxx index 5c34b510301f..97c59fd94ae8 100644 --- a/svx/source/svdraw/svdpdf.cxx +++ b/svx/source/svdraw/svdpdf.cxx @@ -81,11 +81,6 @@ namespace { double sqrt2(double a, double b) { return sqrt(a * a + b * b); } - -struct FPDFBitmapDeleter -{ - void operator()(FPDF_BITMAP bitmap) { FPDFBitmap_Destroy(bitmap); } -}; } using namespace com::sun::star; @@ -882,15 +877,14 @@ void ImpSdrPdfImport::MapScaling() void ImpSdrPdfImport::ImportImage(std::unique_ptr<vcl::pdf::PDFiumPageObject> const& pPageObject, int /*nPageObjectIndex*/) { - std::unique_ptr<std::remove_pointer<FPDF_BITMAP>::type, FPDFBitmapDeleter> bitmap( - FPDFImageObj_GetBitmap(pPageObject->getPointer())); + std::unique_ptr<vcl::pdf::PDFiumBitmap> bitmap = pPageObject->getImageBitmap(); if (!bitmap) { SAL_WARN("sd.filter", "Failed to get IMAGE"); return; } - const int format = FPDFBitmap_GetFormat(bitmap.get()); + const int format = FPDFBitmap_GetFormat(bitmap->getPointer()); if (format == FPDFBitmap_Unknown) { SAL_WARN("sd.filter", "Failed to get IMAGE format"); @@ -898,10 +892,10 @@ void ImpSdrPdfImport::ImportImage(std::unique_ptr<vcl::pdf::PDFiumPageObject> co } const unsigned char* pBuf - = static_cast<const unsigned char*>(FPDFBitmap_GetBuffer(bitmap.get())); - const int nWidth = FPDFBitmap_GetWidth(bitmap.get()); - const int nHeight = FPDFBitmap_GetHeight(bitmap.get()); - const int nStride = FPDFBitmap_GetStride(bitmap.get()); + = static_cast<const unsigned char*>(FPDFBitmap_GetBuffer(bitmap->getPointer())); + const int nWidth = FPDFBitmap_GetWidth(bitmap->getPointer()); + const int nHeight = FPDFBitmap_GetHeight(bitmap->getPointer()); + const int nStride = FPDFBitmap_GetStride(bitmap->getPointer()); BitmapEx aBitmap(Size(nWidth, nHeight), 24); switch (format) |