diff --git a/core/include/fpdfapi/fpdf_page.h b/core/include/fpdfapi/fpdf_page.h
index efbfa67..d58537a 100644
--- a/core/include/fpdfapi/fpdf_page.h
+++ b/core/include/fpdfapi/fpdf_page.h
@@ -67,6 +67,8 @@
 
   FX_BOOL BackgroundAlphaNeeded() const { return m_bBackgroundAlphaNeeded; }
 
+  FX_BOOL HasImageMask() const { return m_bHasImageMask; }
+
   CFX_FloatRect CalcBoundingBox() const;
 
   CPDF_Dictionary* m_pFormDict;
@@ -89,6 +91,7 @@
 
   CFX_PtrList m_ObjectList;
   FX_BOOL m_bBackgroundAlphaNeeded;
+  FX_BOOL m_bHasImageMask;
   FX_BOOL m_bReleaseMembers;
   CPDF_ContentParser* m_pParser;
   ParseState m_ParseState;
diff --git a/core/src/fpdfapi/fpdf_page/fpdf_page.cpp b/core/src/fpdfapi/fpdf_page/fpdf_page.cpp
index 1fef74b..7e2492fa 100644
--- a/core/src/fpdfapi/fpdf_page/fpdf_page.cpp
+++ b/core/src/fpdfapi/fpdf_page/fpdf_page.cpp
@@ -675,6 +675,7 @@
       m_Transparency(0),
       m_ObjectList(128),
       m_bBackgroundAlphaNeeded(FALSE),
+      m_bHasImageMask(FALSE),
       m_bReleaseMembers(bReleaseMembers),
       m_pParser(nullptr),
       m_ParseState(CONTENT_NOT_PARSED) {}
diff --git a/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp b/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp
index 865c6b7..264b6fb 100644
--- a/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp
+++ b/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp
@@ -710,6 +710,8 @@
     CPDF_ImageObject* pObj = AddImage(pXObject, NULL, FALSE);
     m_LastImageName = name;
     m_pLastImage = pObj->m_pImage;
+    if (!m_pObjectList->m_bHasImageMask)
+      m_pObjectList->m_bHasImageMask = m_pLastImage->IsMask();
   } else if (type == "Form") {
     AddForm(pXObject);
   } else {
diff --git a/fpdfsdk/src/fpdfview.cpp b/fpdfsdk/src/fpdfview.cpp
index 1e1eb2a..041adda 100644
--- a/fpdfsdk/src/fpdfview.cpp
+++ b/fpdfsdk/src/fpdfview.cpp
@@ -336,10 +336,10 @@
   pPage->SetPrivateData((void*)1, pContext, DropContext);
 
 #ifndef _WIN32_WCE
-  CFX_DIBitmap* pBitmap = NULL;
-  FX_BOOL bBackgroundAlphaNeeded = FALSE;
-  bBackgroundAlphaNeeded = pPage->BackgroundAlphaNeeded();
-  if (bBackgroundAlphaNeeded) {
+  CFX_DIBitmap* pBitmap = nullptr;
+  FX_BOOL bBackgroundAlphaNeeded = pPage->BackgroundAlphaNeeded();
+  FX_BOOL bHasImageMask = pPage->HasImageMask();
+  if (bBackgroundAlphaNeeded || bHasImageMask) {
     pBitmap = new CFX_DIBitmap;
     pBitmap->Create(size_x, size_y, FXDIB_Argb);
     pBitmap->Clear(0x00ffffff);
@@ -350,13 +350,14 @@
     pContext->m_pDevice = new CFX_FxgeDevice;
     ((CFX_FxgeDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)pBitmap);
 #endif
-  } else
+  } else {
     pContext->m_pDevice = new CFX_WindowsDevice(dc);
+  }
 
   FPDF_RenderPage_Retail(pContext, page, start_x, start_y, size_x, size_y,
                          rotate, flags, TRUE, NULL);
 
-  if (bBackgroundAlphaNeeded) {
+  if (bBackgroundAlphaNeeded || bHasImageMask) {
     if (pBitmap) {
       CFX_WindowsDevice WinDC(dc);
 
@@ -369,8 +370,9 @@
                               FXDIB_BLEND_NORMAL, NULL, FALSE, NULL);
         WinDC.StretchDIBits(pDst, 0, 0, size_x, size_y);
         delete pDst;
-      } else
+      } else {
         WinDC.SetDIBits(pBitmap, 0, 0);
+      }
     }
   }
 #else
@@ -471,10 +473,9 @@
 #endif
 
 #endif
-  if (bBackgroundAlphaNeeded) {
+  if (bBackgroundAlphaNeeded || bHasImageMask)
     delete pBitmap;
-    pBitmap = NULL;
-  }
+
   delete pContext;
   pPage->RemovePrivateData((void*)1);
 }
