diff --git a/core/fpdfapi/render/cpdf_imagerenderer.cpp b/core/fpdfapi/render/cpdf_imagerenderer.cpp
index 4f02056..035dfea 100644
--- a/core/fpdfapi/render/cpdf_imagerenderer.cpp
+++ b/core/fpdfapi/render/cpdf_imagerenderer.cpp
@@ -178,12 +178,11 @@
 
 bool CPDF_ImageRenderer::Start(CPDF_ImageObject* pImageObject,
                                const CFX_Matrix& mtObj2Device,
-                               bool bStdCS,
-                               BlendMode blendType) {
+                               bool bStdCS) {
   DCHECK(pImageObject);
   m_bStdCS = bStdCS;
   m_pImageObject = pImageObject;
-  m_BlendType = blendType;
+  m_BlendType = BlendMode::kNormal;
   m_mtObj2Device = mtObj2Device;
   RetainPtr<const CPDF_Dictionary> pOC = m_pImageObject->GetImage()->GetOC();
   if (pOC && !GetRenderOptions().CheckOCGDictVisible(pOC))
diff --git a/core/fpdfapi/render/cpdf_imagerenderer.h b/core/fpdfapi/render/cpdf_imagerenderer.h
index 54489bf..77c2f97 100644
--- a/core/fpdfapi/render/cpdf_imagerenderer.h
+++ b/core/fpdfapi/render/cpdf_imagerenderer.h
@@ -38,8 +38,7 @@
 
   bool Start(CPDF_ImageObject* pImageObject,
              const CFX_Matrix& mtObj2Device,
-             bool bStdCS,
-             BlendMode blendType);
+             bool bStdCS);
 
   bool Start(RetainPtr<CFX_DIBBase> pDIBBase,
              FX_ARGB bitmap_argb,
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index 5369dd9..2082fc7 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -274,8 +274,8 @@
   }
 
   m_pImageRenderer = std::make_unique<CPDF_ImageRenderer>(this);
-  if (!m_pImageRenderer->Start(pObj->AsImage(), mtObj2Device, false,
-                               BlendMode::kNormal)) {
+  if (!m_pImageRenderer->Start(pObj->AsImage(), mtObj2Device,
+                               /*bStdCS=*/false)) {
     if (!m_pImageRenderer->GetResult())
       DrawObjWithBackground(pObj, mtObj2Device);
     m_pImageRenderer.reset();
@@ -1229,7 +1229,7 @@
 bool CPDF_RenderStatus::ProcessImage(CPDF_ImageObject* pImageObj,
                                      const CFX_Matrix& mtObj2Device) {
   CPDF_ImageRenderer render(this);
-  if (render.Start(pImageObj, mtObj2Device, m_bStdCS, BlendMode::kNormal)) {
+  if (render.Start(pImageObj, mtObj2Device, m_bStdCS)) {
     render.Continue(nullptr);
   }
   return render.GetResult();
diff --git a/fpdfsdk/fpdf_editimg.cpp b/fpdfsdk/fpdf_editimg.cpp
index 4cf4814..4da555f 100644
--- a/fpdfsdk/fpdf_editimg.cpp
+++ b/fpdfsdk/fpdf_editimg.cpp
@@ -330,10 +330,10 @@
   render_matrix.Translate(-min_x, min_y);
 
   // Do the actual rendering.
-  bool should_continue = renderer.Start(image, render_matrix,
-                                        /*bStdCS=*/false, BlendMode::kNormal);
-  while (should_continue)
+  bool should_continue = renderer.Start(image, render_matrix, /*bStdCS=*/false);
+  while (should_continue) {
     should_continue = renderer.Continue(/*pPause=*/nullptr);
+  }
 
   if (!renderer.GetResult())
     return nullptr;
