summaryrefslogtreecommitdiff
path: root/emfio/source
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2020-10-26 21:16:28 +0100
committerMiklos Vajna <vmiklos@collabora.com>2020-10-27 11:20:46 +0100
commit4a35c118a3a6b954827953674cc9bad435c394ee (patch)
tree634777e6795c0cbd049bd7bfdd8de3e4b1624b48 /emfio/source
parent6dfbab409032516e05a63fbc777b9147d1deb4ec (diff)
tdf#137413 EMF import: fix transparency in the PDF fallback case
Commit d75c5b38911557173c54a78f42ff220ab3918573 (tdf#136836 emfio: speed up import of EMF import when the orig PDF is available, 2020-09-17) improved both performance and correctness of the EMF import, in case it had a PDF fallback. It turns out that PDF fallback can be nominally non-transparent, and still the EMF equivalent supports transparency. Fix the problem by enabling transparency in the PDF-in-EMF case. Change-Id: I4d1585a5db6f28bd9c9cb380b5f193f4d5edcc8d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104849 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
Diffstat (limited to 'emfio/source')
-rw-r--r--emfio/source/reader/emfreader.cxx3
-rw-r--r--emfio/source/reader/mtftools.cxx9
2 files changed, 10 insertions, 2 deletions
diff --git a/emfio/source/reader/emfreader.cxx b/emfio/source/reader/emfreader.cxx
index b47d0c86496f..1bc6339ff897 100644
--- a/emfio/source/reader/emfreader.cxx
+++ b/emfio/source/reader/emfreader.cxx
@@ -507,7 +507,8 @@ namespace emfio
// ours.
aGraphic.getVectorGraphicData()->setSizeHint(maSizeHint);
- maBmpSaveList.emplace_back(new BSaveStruct(aGraphic.GetBitmapEx(), aOutputRect, SRCCOPY));
+ maBmpSaveList.emplace_back(
+ new BSaveStruct(aGraphic.GetBitmapEx(), aOutputRect, SRCCOPY, /*bForceAlpha=*/true));
const std::shared_ptr<VectorGraphicData> pVectorGraphicData
= aGraphic.getVectorGraphicData();
if (!pVectorGraphicData)
diff --git a/emfio/source/reader/mtftools.cxx b/emfio/source/reader/mtftools.cxx
index e32b0f2be502..7cd1ff58093d 100644
--- a/emfio/source/reader/mtftools.cxx
+++ b/emfio/source/reader/mtftools.cxx
@@ -1837,7 +1837,14 @@ namespace emfio
{
if ( nRasterOperation == 0x33 )
aBitmap.Invert();
- ImplDrawBitmap( aPos, aSize, BitmapEx(aBitmap) );
+ if (pSave->m_bForceAlpha)
+ {
+ ImplDrawBitmap(aPos, aSize, pSave->aBmpEx);
+ }
+ else
+ {
+ ImplDrawBitmap(aPos, aSize, BitmapEx(aBitmap));
+ }
}
break;