Remove lots of unused CMYK code.

With no CMYK FXDIB_Format entries remaining, GetIsCmykFromFormat()
always returns false, and then so does CFX_DIBBase::IsCmykImage().
Remove these functions and any code that assumes they return true.

Change-Id: I6816c1293b158825e048d28a5479d97d183658af
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/75552
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fxcodec/jpeg/jpegmodule.cpp b/core/fxcodec/jpeg/jpegmodule.cpp
index a63cdef..8084e6f 100644
--- a/core/fxcodec/jpeg/jpegmodule.cpp
+++ b/core/fxcodec/jpeg/jpegmodule.cpp
@@ -419,7 +419,7 @@
   cinfo.err = &jerr;
   jpeg_create_compress(&cinfo);
   int Bpp = pSource->GetBPP() / 8;
-  uint32_t nComponents = Bpp >= 3 ? (pSource->IsCmykImage() ? 4 : 3) : 1;
+  uint32_t nComponents = Bpp >= 3 ? 3 : 1;
   uint32_t pitch = pSource->GetPitch();
   uint32_t width = pdfium::base::checked_cast<uint32_t>(pSource->GetWidth());
   uint32_t height = pdfium::base::checked_cast<uint32_t>(pSource->GetHeight());
diff --git a/core/fxge/agg/fx_agg_driver.cpp b/core/fxge/agg/fx_agg_driver.cpp
index e46140c..3d0f9dc 100644
--- a/core/fxge/agg/fx_agg_driver.cpp
+++ b/core/fxge/agg/fx_agg_driver.cpp
@@ -823,8 +823,6 @@
       m_pDevice(pDevice),
       m_pClipRgn(pClipRgn),
       m_CompositeSpanFunc(GetCompositeSpanFunc(m_pDevice)) {
-  DCHECK(!m_pDevice->IsCmykImage());
-
   if (m_pDevice->GetBPP() == 8) {
     ASSERT(!m_bRgbByteOrder);
     if (m_pDevice->IsMask())
@@ -1022,7 +1020,6 @@
       m_bGroupKnockout(bGroupKnockout),
       m_pBackdropBitmap(pBackdropBitmap) {
   DCHECK(m_pBitmap);
-  DCHECK(!m_pBitmap->IsCmykImage());
   InitPlatform();
 }
 
diff --git a/core/fxge/dib/cfx_dibbase.cpp b/core/fxge/dib/cfx_dibbase.cpp
index ef9d6b6..c24ac1f 100644
--- a/core/fxge/dib/cfx_dibbase.cpp
+++ b/core/fxge/dib/cfx_dibbase.cpp
@@ -144,28 +144,13 @@
                                 int src_left,
                                 int src_top) {
   pdfium::span<const uint32_t> src_palette = pSrcBitmap->GetPaletteSpan();
+  uint8_t reset_r = FXARGB_R(src_palette[0]);
+  uint8_t reset_g = FXARGB_G(src_palette[0]);
+  uint8_t reset_b = FXARGB_B(src_palette[0]);
+  uint8_t set_r = FXARGB_R(src_palette[1]);
+  uint8_t set_g = FXARGB_G(src_palette[1]);
+  uint8_t set_b = FXARGB_B(src_palette[1]);
   uint8_t gray[2];
-  uint8_t reset_r;
-  uint8_t reset_g;
-  uint8_t reset_b;
-  uint8_t set_r;
-  uint8_t set_g;
-  uint8_t set_b;
-  if (pSrcBitmap->IsCmykImage()) {
-    std::tie(reset_r, reset_g, reset_b) = AdobeCMYK_to_sRGB1(
-        FXSYS_GetCValue(src_palette[0]), FXSYS_GetMValue(src_palette[0]),
-        FXSYS_GetYValue(src_palette[0]), FXSYS_GetKValue(src_palette[0]));
-    std::tie(set_r, set_g, set_b) = AdobeCMYK_to_sRGB1(
-        FXSYS_GetCValue(src_palette[1]), FXSYS_GetMValue(src_palette[1]),
-        FXSYS_GetYValue(src_palette[1]), FXSYS_GetKValue(src_palette[1]));
-  } else {
-    reset_r = FXARGB_R(src_palette[0]);
-    reset_g = FXARGB_G(src_palette[0]);
-    reset_b = FXARGB_B(src_palette[0]);
-    set_r = FXARGB_R(src_palette[1]);
-    set_g = FXARGB_G(src_palette[1]);
-    set_b = FXARGB_B(src_palette[1]);
-  }
   gray[0] = FXRGB2GRAY(reset_r, reset_g, reset_b);
   gray[1] = FXRGB2GRAY(set_r, set_g, set_b);
 
@@ -190,21 +175,9 @@
                                 int src_top) {
   pdfium::span<const uint32_t> src_palette = pSrcBitmap->GetPaletteSpan();
   uint8_t gray[256];
-  if (pSrcBitmap->IsCmykImage()) {
-    uint8_t r;
-    uint8_t g;
-    uint8_t b;
-    for (size_t i = 0; i < pdfium::size(gray); ++i) {
-      std::tie(r, g, b) = AdobeCMYK_to_sRGB1(
-          FXSYS_GetCValue(src_palette[i]), FXSYS_GetMValue(src_palette[i]),
-          FXSYS_GetYValue(src_palette[i]), FXSYS_GetKValue(src_palette[i]));
-      gray[i] = FXRGB2GRAY(r, g, b);
-    }
-  } else {
-    for (size_t i = 0; i < pdfium::size(gray); ++i) {
-      gray[i] = FXRGB2GRAY(FXARGB_R(src_palette[i]), FXARGB_G(src_palette[i]),
-                           FXARGB_B(src_palette[i]));
-    }
+  for (size_t i = 0; i < pdfium::size(gray); ++i) {
+    gray[i] = FXRGB2GRAY(FXARGB_R(src_palette[i]), FXARGB_G(src_palette[i]),
+                         FXARGB_B(src_palette[i]));
   }
 
   for (int row = 0; row < height; ++row) {
@@ -223,33 +196,13 @@
                                   int src_left,
                                   int src_top) {
   int Bpp = pSrcBitmap->GetBPP() / 8;
-  if (pSrcBitmap->IsCmykImage()) {
-    for (int row = 0; row < height; ++row) {
-      uint8_t* dest_scan = dest_buf + row * dest_pitch;
-      const uint8_t* src_scan =
-          pSrcBitmap->GetScanline(src_top + row) + src_left * 4;
-      for (int col = 0; col < width; ++col) {
-        uint8_t r;
-        uint8_t g;
-        uint8_t b;
-        std::tie(r, g, b) = AdobeCMYK_to_sRGB1(
-            FXSYS_GetCValue(static_cast<uint32_t>(src_scan[0])),
-            FXSYS_GetMValue(static_cast<uint32_t>(src_scan[1])),
-            FXSYS_GetYValue(static_cast<uint32_t>(src_scan[2])),
-            FXSYS_GetKValue(static_cast<uint32_t>(src_scan[3])));
-        *dest_scan++ = FXRGB2GRAY(r, g, b);
-        src_scan += 4;
-      }
-    }
-  } else {
-    for (int row = 0; row < height; ++row) {
-      uint8_t* dest_scan = dest_buf + row * dest_pitch;
-      const uint8_t* src_scan =
-          pSrcBitmap->GetScanline(src_top + row) + src_left * Bpp;
-      for (int col = 0; col < width; ++col) {
-        *dest_scan++ = FXRGB2GRAY(src_scan[2], src_scan[1], src_scan[0]);
-        src_scan += Bpp;
-      }
+  for (int row = 0; row < height; ++row) {
+    uint8_t* dest_scan = dest_buf + row * dest_pitch;
+    const uint8_t* src_scan =
+        pSrcBitmap->GetScanline(src_top + row) + src_left * Bpp;
+    for (int col = 0; col < width; ++col) {
+      *dest_scan++ = FXRGB2GRAY(src_scan[2], src_scan[1], src_scan[0]);
+      src_scan += Bpp;
     }
   }
 }
@@ -297,20 +250,8 @@
                           src_left, src_top);
   const uint32_t* src_plt = pSrcBitmap->GetPaletteData();
   size_t plt_size = pSrcBitmap->GetPaletteSize();
-  if (pSrcBitmap->IsCmykImage()) {
-    for (size_t i = 0; i < plt_size; ++i) {
-      uint8_t r;
-      uint8_t g;
-      uint8_t b;
-      std::tie(r, g, b) = AdobeCMYK_to_sRGB1(
-          FXSYS_GetCValue(src_plt[i]), FXSYS_GetMValue(src_plt[i]),
-          FXSYS_GetYValue(src_plt[i]), FXSYS_GetKValue(src_plt[i]));
-      dst_plt[i] = ArgbEncode(0xff, r, g, b);
-    }
-  } else {
-    for (size_t i = 0; i < plt_size; ++i)
-      dst_plt[i] = src_plt[i];
-  }
+  for (size_t i = 0; i < plt_size; ++i)
+    dst_plt[i] = src_plt[i];
 }
 
 void ConvertBuffer_Rgb2PltRgb8(uint8_t* dest_buf,
@@ -427,26 +368,12 @@
   pdfium::span<const uint32_t> src_palette = pSrcBitmap->GetPaletteSpan();
   uint32_t plt[2];
   uint8_t* bgr_ptr = reinterpret_cast<uint8_t*>(plt);
-  if (pSrcBitmap->IsCmykImage()) {
-    plt[0] = FXCMYK_TODIB(src_palette[0]);
-    plt[1] = FXCMYK_TODIB(src_palette[1]);
-  } else {
-    bgr_ptr[0] = FXARGB_B(src_palette[0]);
-    bgr_ptr[1] = FXARGB_G(src_palette[0]);
-    bgr_ptr[2] = FXARGB_R(src_palette[0]);
-    bgr_ptr[3] = FXARGB_B(src_palette[1]);
-    bgr_ptr[4] = FXARGB_G(src_palette[1]);
-    bgr_ptr[5] = FXARGB_R(src_palette[1]);
-  }
-
-  if (pSrcBitmap->IsCmykImage()) {
-    std::tie(bgr_ptr[2], bgr_ptr[1], bgr_ptr[0]) = AdobeCMYK_to_sRGB1(
-        FXSYS_GetCValue(src_palette[0]), FXSYS_GetMValue(src_palette[0]),
-        FXSYS_GetYValue(src_palette[0]), FXSYS_GetKValue(src_palette[0]));
-    std::tie(bgr_ptr[5], bgr_ptr[4], bgr_ptr[3]) = AdobeCMYK_to_sRGB1(
-        FXSYS_GetCValue(src_palette[1]), FXSYS_GetMValue(src_palette[1]),
-        FXSYS_GetYValue(src_palette[1]), FXSYS_GetKValue(src_palette[1]));
-  }
+  bgr_ptr[0] = FXARGB_B(src_palette[0]);
+  bgr_ptr[1] = FXARGB_G(src_palette[0]);
+  bgr_ptr[2] = FXARGB_R(src_palette[0]);
+  bgr_ptr[3] = FXARGB_B(src_palette[1]);
+  bgr_ptr[4] = FXARGB_G(src_palette[1]);
+  bgr_ptr[5] = FXARGB_R(src_palette[1]);
 
   for (int row = 0; row < height; ++row) {
     uint8_t* dest_scan = dest_buf + row * dest_pitch;
@@ -471,24 +398,12 @@
   pdfium::span<const uint32_t> src_palette = pSrcBitmap->GetPaletteSpan();
   uint32_t plt[256];
   uint8_t* bgr_ptr = reinterpret_cast<uint8_t*>(plt);
-  if (!pSrcBitmap->IsCmykImage()) {
-    for (int i = 0; i < 256; ++i) {
-      *bgr_ptr++ = FXARGB_B(src_palette[i]);
-      *bgr_ptr++ = FXARGB_G(src_palette[i]);
-      *bgr_ptr++ = FXARGB_R(src_palette[i]);
-    }
-    bgr_ptr = reinterpret_cast<uint8_t*>(plt);
+  for (int i = 0; i < 256; ++i) {
+    *bgr_ptr++ = FXARGB_B(src_palette[i]);
+    *bgr_ptr++ = FXARGB_G(src_palette[i]);
+    *bgr_ptr++ = FXARGB_R(src_palette[i]);
   }
-
-  if (pSrcBitmap->IsCmykImage()) {
-    for (int i = 0; i < 256; ++i) {
-      std::tie(bgr_ptr[2], bgr_ptr[1], bgr_ptr[0]) = AdobeCMYK_to_sRGB1(
-          FXSYS_GetCValue(src_palette[i]), FXSYS_GetMValue(src_palette[i]),
-          FXSYS_GetYValue(src_palette[i]), FXSYS_GetKValue(src_palette[i]));
-      bgr_ptr += 3;
-    }
-    bgr_ptr = reinterpret_cast<uint8_t*>(plt);
-  }
+  bgr_ptr = reinterpret_cast<uint8_t*>(plt);
 
   for (int row = 0; row < height; ++row) {
     uint8_t* dest_scan = dest_buf + row * dest_pitch;
@@ -555,26 +470,6 @@
   }
 }
 
-void ConvertBuffer_32bppCmyk2Rgb32(uint8_t* dest_buf,
-                                   int dest_pitch,
-                                   int width,
-                                   int height,
-                                   const RetainPtr<CFX_DIBBase>& pSrcBitmap,
-                                   int src_left,
-                                   int src_top) {
-  for (int row = 0; row < height; ++row) {
-    uint8_t* dest_scan = dest_buf + row * dest_pitch;
-    const uint8_t* src_scan =
-        pSrcBitmap->GetScanline(src_top + row) + src_left * 4;
-    for (int col = 0; col < width; ++col) {
-      std::tie(dest_scan[2], dest_scan[1], dest_scan[0]) = AdobeCMYK_to_sRGB1(
-          src_scan[0], src_scan[1], src_scan[2], src_scan[3]);
-      dest_scan += 4;
-      src_scan += 4;
-    }
-  }
-}
-
 bool ConvertBuffer_8bppMask(int bpp,
                             uint8_t* dest_buf,
                             int dest_pitch,
@@ -654,7 +549,6 @@
 }
 
 bool ConvertBuffer_Argb(int bpp,
-                        bool cmyk,
                         FXDIB_Format dest_format,
                         uint8_t* dest_buf,
                         int dest_pitch,
@@ -684,13 +578,8 @@
       return true;
     case 24:
     case 32:
-      if (cmyk) {
-        ConvertBuffer_32bppCmyk2Rgb32(dest_buf, dest_pitch, width, height,
-                                      pSrcBitmap, src_left, src_top);
-      } else {
-        ConvertBuffer_Rgb2Rgb32(dest_buf, dest_pitch, width, height, pSrcBitmap,
-                                src_left, src_top);
-      }
+      ConvertBuffer_Rgb2Rgb32(dest_buf, dest_pitch, width, height, pSrcBitmap,
+                              src_left, src_top);
       return true;
     default:
       return false;
@@ -758,19 +647,11 @@
     return;
 
   if (GetBPP() == 1) {
-    if (IsCmykImage())
-      m_palette = {0xff, 0x00};
-    else
-      m_palette = {0xff000000, 0xffffffff};
+    m_palette = {0xff000000, 0xffffffff};
   } else if (GetBPP() == 8) {
     m_palette.resize(256);
-    if (IsCmykImage()) {
-      for (int i = 0; i < 256; ++i)
-        m_palette[i] = 0xff - i;
-    } else {
-      for (int i = 0; i < 256; ++i)
-        m_palette[i] = 0xff000000 | (i * 0x10101);
-    }
+    for (int i = 0; i < 256; ++i)
+      m_palette[i] = 0xff000000 | (i * 0x10101);
   }
 }
 
@@ -807,12 +688,6 @@
   if (HasPalette())
     return GetPaletteSpan()[index];
 
-  if (IsCmykImage()) {
-    if (GetBPP() == 1)
-      return index ? 0 : 0xff;
-
-    return 0xff - index;
-  }
   if (GetBPP() == 1)
     return index ? 0xffffffff : 0xff000000;
 
@@ -837,12 +712,6 @@
     return -1;
   }
 
-  if (IsCmykImage()) {
-    if (GetBPP() == 1)
-      return (static_cast<uint8_t>(color) == 0xff) ? 0 : 1;
-    return 0xff - static_cast<uint8_t>(color);
-  }
-
   if (GetBPP() == 1)
     return (static_cast<uint8_t>(color) == 0xff) ? 1 : 0;
   return static_cast<uint8_t>(color);
@@ -958,7 +827,6 @@
 
 void CFX_DIBBase::GetPalette(uint32_t* pal, int alpha) const {
   ASSERT(GetBPP() <= 8);
-  ASSERT(!IsCmykImage());
 
   if (GetBPP() == 1) {
     pal[0] = ((HasPalette() ? GetPaletteSpan()[0] : 0xff000000) & 0xffffff) |
@@ -1307,8 +1175,7 @@
     }
     case FXDIB_Format::kArgb:
     case FXDIB_Format::kRgb32: {
-      return ConvertBuffer_Argb(bpp, GetIsCmykFromFormat(src_format),
-                                dest_format, dest_buf, dest_pitch, width,
+      return ConvertBuffer_Argb(bpp, dest_format, dest_buf, dest_pitch, width,
                                 height, pSrcBitmap, src_left, src_top);
     }
     default:
diff --git a/core/fxge/dib/cfx_dibbase.h b/core/fxge/dib/cfx_dibbase.h
index c8550cf..3e99a45 100644
--- a/core/fxge/dib/cfx_dibbase.h
+++ b/core/fxge/dib/cfx_dibbase.h
@@ -61,7 +61,6 @@
 
   bool IsMask() const { return GetIsMaskFromFormat(m_Format); }
   bool HasAlpha() const { return GetIsAlphaFromFormat(m_Format); }
-  bool IsCmykImage() const { return GetIsCmykFromFormat(m_Format); }
   bool IsOpaqueImage() const { return !IsMask() && !HasAlpha(); }
 
   size_t GetPaletteSize() const;
diff --git a/core/fxge/dib/cfx_dibitmap.cpp b/core/fxge/dib/cfx_dibitmap.cpp
index af44ab3..6ce40bb 100644
--- a/core/fxge/dib/cfx_dibitmap.cpp
+++ b/core/fxge/dib/cfx_dibitmap.cpp
@@ -159,9 +159,8 @@
     }
     case FXDIB_Format::kRgb32:
     case FXDIB_Format::kArgb: {
-      color = IsCmykImage() ? FXCMYK_TODIB(color) : color;
 #if defined(_SKIA_SUPPORT_)
-      if (FXDIB_Format::kRgb32 == GetFormat() && !IsCmykImage())
+      if (FXDIB_Format::kRgb32 == GetFormat())
         color |= 0xFF000000;
 #endif
       for (int i = 0; i < m_Width; i++)
@@ -512,11 +511,6 @@
     default:
       if (HasAlpha()) {
         m_pAlphaMask->MultiplyAlpha(alpha);
-      } else if (IsCmykImage()) {
-        if (!ConvertFormat(AddAlphaToCmykFormat(GetFormat()))) {
-          return false;
-        }
-        m_pAlphaMask->MultiplyAlpha(alpha);
       } else {
         if (!ConvertFormat(FXDIB_Format::kArgb)) {
           return false;
@@ -671,20 +665,11 @@
       src_x %= m_Width;
       int dest_pos = i;
       if (HasPalette()) {
-        if (!IsCmykImage()) {
-          dest_pos *= 3;
-          FX_ARGB argb = palette[scanline[src_x]];
-          dest_scan[dest_pos] = FXARGB_B(argb);
-          dest_scan[dest_pos + 1] = FXARGB_G(argb);
-          dest_scan[dest_pos + 2] = FXARGB_R(argb);
-        } else {
-          dest_pos *= 4;
-          FX_CMYK cmyk = palette[scanline[src_x]];
-          dest_scan[dest_pos] = FXSYS_GetCValue(cmyk);
-          dest_scan[dest_pos + 1] = FXSYS_GetMValue(cmyk);
-          dest_scan[dest_pos + 2] = FXSYS_GetYValue(cmyk);
-          dest_scan[dest_pos + 3] = FXSYS_GetKValue(cmyk);
-        }
+        dest_pos *= 3;
+        FX_ARGB argb = palette[scanline[src_x]];
+        dest_scan[dest_pos] = FXARGB_B(argb);
+        dest_scan[dest_pos + 1] = FXARGB_G(argb);
+        dest_scan[dest_pos + 2] = FXARGB_R(argb);
       } else {
         dest_scan[dest_pos] = scanline[src_x];
       }
@@ -754,78 +739,11 @@
   }
 }
 
-void CFX_DIBitmap::ConvertCMYKColorScale(uint32_t forecolor,
-                                         uint32_t backcolor) {
-  int fc = FXSYS_GetCValue(forecolor);
-  int fm = FXSYS_GetMValue(forecolor);
-  int fy = FXSYS_GetYValue(forecolor);
-  int fk = FXSYS_GetKValue(forecolor);
-  int bc = FXSYS_GetCValue(backcolor);
-  int bm = FXSYS_GetMValue(backcolor);
-  int by = FXSYS_GetYValue(backcolor);
-  int bk = FXSYS_GetKValue(backcolor);
-  if (GetBppFromFormat(m_Format) <= 8) {
-    if (forecolor == 0xff && backcolor == 0 && !HasPalette())
-      return;
-
-    BuildPalette();
-    int size = 1 << GetBppFromFormat(m_Format);
-    for (int i = 0; i < size; ++i) {
-      uint8_t r;
-      uint8_t g;
-      uint8_t b;
-      std::tie(r, g, b) = AdobeCMYK_to_sRGB1(
-          FXSYS_GetCValue(m_palette[i]), FXSYS_GetMValue(m_palette[i]),
-          FXSYS_GetYValue(m_palette[i]), FXSYS_GetKValue(m_palette[i]));
-      int gray = 255 - FXRGB2GRAY(r, g, b);
-      m_palette[i] =
-          CmykEncode(bc + (fc - bc) * gray / 255, bm + (fm - bm) * gray / 255,
-                     by + (fy - by) * gray / 255, bk + (fk - bk) * gray / 255);
-    }
-    return;
-  }
-  if (forecolor == 0xff && backcolor == 0x00) {
-    for (int row = 0; row < m_Height; ++row) {
-      uint8_t* scanline = m_pBuffer.Get() + row * m_Pitch;
-      for (int col = 0; col < m_Width; ++col) {
-        uint8_t r;
-        uint8_t g;
-        uint8_t b;
-        std::tie(r, g, b) = AdobeCMYK_to_sRGB1(scanline[0], scanline[1],
-                                               scanline[2], scanline[3]);
-        *scanline++ = 0;
-        *scanline++ = 0;
-        *scanline++ = 0;
-        *scanline++ = 255 - FXRGB2GRAY(r, g, b);
-      }
-    }
-    return;
-  }
-  for (int row = 0; row < m_Height; ++row) {
-    uint8_t* scanline = m_pBuffer.Get() + row * m_Pitch;
-    for (int col = 0; col < m_Width; ++col) {
-      uint8_t r;
-      uint8_t g;
-      uint8_t b;
-      std::tie(r, g, b) = AdobeCMYK_to_sRGB1(scanline[0], scanline[1],
-                                             scanline[2], scanline[3]);
-      int gray = 255 - FXRGB2GRAY(r, g, b);
-      *scanline++ = bc + (fc - bc) * gray / 255;
-      *scanline++ = bm + (fm - bm) * gray / 255;
-      *scanline++ = by + (fy - by) * gray / 255;
-      *scanline++ = bk + (fk - bk) * gray / 255;
-    }
-  }
-}
-
 bool CFX_DIBitmap::ConvertColorScale(uint32_t forecolor, uint32_t backcolor) {
   if (!m_pBuffer || IsMask())
     return false;
 
-  if (IsCmykImage())
-    ConvertCMYKColorScale(forecolor, backcolor);
-  else
-    ConvertBGRColorScale(forecolor, backcolor);
+  ConvertBGRColorScale(forecolor, backcolor);
   return true;
 }
 
@@ -907,7 +825,7 @@
   }
   const int dest_Bpp = GetBppFromFormat(m_Format) / 8;
   const int src_Bpp = pSrcBitmap->GetBPP() / 8;
-  const bool bRgb = src_Bpp > 1 && !pSrcBitmap->IsCmykImage();
+  const bool bRgb = src_Bpp > 1;
   if (!bRgb && !pSrcBitmap->HasPalette())
     return false;
 
@@ -1052,9 +970,6 @@
       } else {
         gray = (uint8_t)FXRGB2GRAY((int)color_p[2], color_p[1], color_p[0]);
       }
-      if (IsCmykImage()) {
-        gray = ~gray;
-      }
     }
     for (int row = rect.top; row < rect.bottom; row++) {
       uint8_t* dest_scan = m_pBuffer.Get() + row * m_Pitch + rect.left;
@@ -1070,7 +985,6 @@
     return true;
   }
   if (GetBppFromFormat(m_Format) == 1) {
-    ASSERT(!IsCmykImage());
     ASSERT(static_cast<uint8_t>(alpha_flag >> 8) == 0);
 
     int left_shift = rect.left % 8;
@@ -1115,16 +1029,12 @@
     return false;
   }
 
-  if (!(alpha_flag >> 8) && IsCmykImage())
-    return false;
-
-  if (alpha_flag >> 8 && !IsCmykImage()) {
+  if (alpha_flag >> 8) {
     std::tie(color_p[2], color_p[1], color_p[0]) =
         AdobeCMYK_to_sRGB1(FXSYS_GetCValue(color), FXSYS_GetMValue(color),
                            FXSYS_GetYValue(color), FXSYS_GetKValue(color));
   }
-  if (!IsCmykImage())
-    color_p[3] = static_cast<uint8_t>(src_alpha);
+  color_p[3] = static_cast<uint8_t>(src_alpha);
   int Bpp = GetBppFromFormat(m_Format) / 8;
   bool bAlpha = HasAlpha();
   bool bArgb = GetFormat() == FXDIB_Format::kArgb;
diff --git a/core/fxge/dib/cfx_dibitmap.h b/core/fxge/dib/cfx_dibitmap.h
index 474130f..bf29f8f 100644
--- a/core/fxge/dib/cfx_dibitmap.h
+++ b/core/fxge/dib/cfx_dibitmap.h
@@ -138,7 +138,6 @@
 
  private:
   void ConvertBGRColorScale(uint32_t forecolor, uint32_t backcolor);
-  void ConvertCMYKColorScale(uint32_t forecolor, uint32_t backcolor);
   bool TransferWithUnequalFormats(FXDIB_Format dest_format,
                                   int dest_left,
                                   int dest_top,
diff --git a/core/fxge/dib/cfx_imagetransformer.cpp b/core/fxge/dib/cfx_imagetransformer.cpp
index a129e73..ebf898f 100644
--- a/core/fxge/dib/cfx_imagetransformer.cpp
+++ b/core/fxge/dib/cfx_imagetransformer.cpp
@@ -512,9 +512,6 @@
         m_Storer.GetBitmap()->GetPaletteSpan();
     for (size_t i = 0; i < pdfium::size(argb); i++)
       argb[i] = palette[i];
-  } else if (m_Storer.GetBitmap()->IsCmykImage()) {
-    for (size_t i = 0; i < pdfium::size(argb); i++)
-      argb[i] = 255 - i;
   } else {
     for (size_t i = 0; i < pdfium::size(argb); i++)
       argb[i] = 0xff000000 | (i * 0x010101);
diff --git a/core/fxge/dib/cfx_scanlinecompositor.cpp b/core/fxge/dib/cfx_scanlinecompositor.cpp
index ab62044..8c49e29 100644
--- a/core/fxge/dib/cfx_scanlinecompositor.cpp
+++ b/core/fxge/dib/cfx_scanlinecompositor.cpp
@@ -12,7 +12,6 @@
 #include "core/fxge/dib/fx_dib.h"
 #include "third_party/base/check.h"
 
-#define FX_CCOLOR(val) (255 - (val))
 #define FXDIB_ALPHA_UNION(dest, src) ((dest) + (src) - (dest) * (src) / 255)
 #define FXARGB_RGBORDERCOPY(dest, src)                  \
   *((dest) + 3) = *((src) + 3), *(dest) = *((src) + 2), \
@@ -2761,8 +2760,6 @@
     InitSourceMask(mask_color);
     return true;
   }
-  if (!GetIsCmykFromFormat(src_format) && GetIsCmykFromFormat(dest_format))
-    return false;
   if (GetBppFromFormat(m_SrcFormat) <= 8) {
     if (dest_format == FXDIB_Format::k8bppMask)
       return true;
@@ -2770,16 +2767,13 @@
     InitSourcePalette(src_format, dest_format, src_palette);
     m_iTransparency = (dest_format == FXDIB_Format::kArgb ? 1 : 0) +
                       (GetIsAlphaFromFormat(dest_format) ? 2 : 0) +
-                      (GetIsCmykFromFormat(dest_format) ? 4 : 0) +
                       (GetBppFromFormat(src_format) == 1 ? 8 : 0);
     return true;
   }
   m_iTransparency = (GetIsAlphaFromFormat(src_format) ? 0 : 1) +
                     (GetIsAlphaFromFormat(dest_format) ? 0 : 2) +
                     (blend_type == BlendMode::kNormal ? 4 : 0) +
-                    (bClip ? 8 : 0) +
-                    (GetIsCmykFromFormat(src_format) ? 16 : 0) +
-                    (GetIsCmykFromFormat(dest_format) ? 32 : 0);
+                    (bClip ? 8 : 0);
   return true;
 }
 
@@ -2791,11 +2785,8 @@
   if (m_DestFormat == FXDIB_Format::k8bppMask)
     return;
 
-  if (GetBppFromFormat(m_DestFormat) == 8) {
+  if (GetBppFromFormat(m_DestFormat) == 8)
     m_MaskRed = FXRGB2GRAY(m_MaskRed, m_MaskGreen, m_MaskBlue);
-    if (GetIsCmykFromFormat(m_DestFormat))
-      m_MaskRed = FX_CCOLOR(m_MaskRed);
-  }
 }
 
 void CFX_ScanlineCompositor::InitSourcePalette(
@@ -2803,8 +2794,6 @@
     FXDIB_Format dest_format,
     pdfium::span<const uint32_t> src_palette) {
   m_SrcPalette.Reset();
-  const bool bIsSrcCmyk = GetIsCmykFromFormat(src_format);
-  const bool bIsDstCmyk = GetIsCmykFromFormat(dest_format);
   const bool bIsDestBpp8 = GetBppFromFormat(dest_format) == 8;
   const size_t pal_count = static_cast<size_t>(1)
                            << GetBppFromFormat(src_format);
@@ -2812,42 +2801,16 @@
   if (!src_palette.empty()) {
     if (bIsDestBpp8) {
       pdfium::span<uint8_t> gray_pal = m_SrcPalette.Make8BitPalette(pal_count);
-      if (bIsSrcCmyk) {
-        for (size_t i = 0; i < pal_count; ++i) {
-          FX_CMYK cmyk = src_palette[i];
-          uint8_t r;
-          uint8_t g;
-          uint8_t b;
-          std::tie(r, g, b) =
-              AdobeCMYK_to_sRGB1(FXSYS_GetCValue(cmyk), FXSYS_GetMValue(cmyk),
-                                 FXSYS_GetYValue(cmyk), FXSYS_GetKValue(cmyk));
-          gray_pal[i] = FXRGB2GRAY(r, g, b);
-        }
-      } else {
-        for (size_t i = 0; i < pal_count; ++i) {
-          FX_ARGB argb = src_palette[i];
-          gray_pal[i] =
-              FXRGB2GRAY(FXARGB_R(argb), FXARGB_G(argb), FXARGB_B(argb));
-        }
+      for (size_t i = 0; i < pal_count; ++i) {
+        FX_ARGB argb = src_palette[i];
+        gray_pal[i] =
+            FXRGB2GRAY(FXARGB_R(argb), FXARGB_G(argb), FXARGB_B(argb));
       }
       return;
     }
     pdfium::span<uint32_t> pPalette = m_SrcPalette.Make32BitPalette(pal_count);
-    if (bIsDstCmyk == bIsSrcCmyk) {
-      for (size_t i = 0; i < pal_count; ++i)
-        pPalette[i] = src_palette[i];
-    } else {
-      for (size_t i = 0; i < pal_count; ++i) {
-        FX_CMYK cmyk = src_palette[i];
-        uint8_t r;
-        uint8_t g;
-        uint8_t b;
-        std::tie(r, g, b) =
-            AdobeCMYK_to_sRGB1(FXSYS_GetCValue(cmyk), FXSYS_GetMValue(cmyk),
-                               FXSYS_GetYValue(cmyk), FXSYS_GetKValue(cmyk));
-        pPalette[i] = ArgbEncode(0xff, r, g, b);
-      }
-    }
+    for (size_t i = 0; i < pal_count; ++i)
+      pPalette[i] = src_palette[i];
     return;
   }
   if (bIsDestBpp8) {
@@ -2863,23 +2826,11 @@
   }
   pdfium::span<uint32_t> pPalette = m_SrcPalette.Make32BitPalette(pal_count);
   if (pal_count == 2) {
-    pPalette[0] = bIsSrcCmyk ? 0xff : 0xff000000;
-    pPalette[1] = bIsSrcCmyk ? 0x00 : 0xffffffff;
+    pPalette[0] = 0xff000000;
+    pPalette[1] = 0xffffffff;
   } else {
     for (size_t i = 0; i < pal_count; ++i)
-      pPalette[i] = bIsSrcCmyk ? FX_CCOLOR(i) : (i * 0x10101);
-  }
-  if (bIsSrcCmyk != bIsDstCmyk) {
-    for (size_t i = 0; i < pal_count; ++i) {
-      FX_CMYK cmyk = pPalette[i];
-      uint8_t r;
-      uint8_t g;
-      uint8_t b;
-      std::tie(r, g, b) =
-          AdobeCMYK_to_sRGB1(FXSYS_GetCValue(cmyk), FXSYS_GetMValue(cmyk),
-                             FXSYS_GetYValue(cmyk), FXSYS_GetKValue(cmyk));
-      pPalette[i] = ArgbEncode(0xff, r, g, b);
-    }
+      pPalette[i] = i * 0x10101;
   }
 }
 
@@ -2959,12 +2910,6 @@
       CompositeRow_Rgb2Mask(dest_scan, src_scan, width, clip_scan);
     }
   } else if (GetBppFromFormat(m_DestFormat) == 8) {
-    if (GetIsCmykFromFormat(m_DestFormat)) {
-      for (int i = 0; i < width; ++i) {
-        *dest_scan = ~*dest_scan;
-        dest_scan++;
-      }
-    }
     if (GetIsAlphaFromFormat(m_SrcFormat)) {
       if (GetIsAlphaFromFormat(m_DestFormat)) {
         CompositeRow_Argb2Graya(dest_scan, src_scan, width, m_BlendType,
@@ -2982,12 +2927,6 @@
                               clip_scan);
       }
     }
-    if (GetIsCmykFromFormat(m_DestFormat)) {
-      for (int i = 0; i < width; ++i) {
-        *dest_scan = ~*dest_scan;
-        dest_scan++;
-      }
-    }
   } else {
     switch (m_iTransparency) {
       case 0:
diff --git a/core/fxge/dib/fx_dib.cpp b/core/fxge/dib/fx_dib.cpp
index 9d827b1..2bff739 100644
--- a/core/fxge/dib/fx_dib.cpp
+++ b/core/fxge/dib/fx_dib.cpp
@@ -70,10 +70,6 @@
   }
 }
 
-FXDIB_Format AddAlphaToCmykFormat(FXDIB_Format format) {
-  return FXDIB_Format::kInvalid;
-}
-
 FXDIB_ResampleOptions::FXDIB_ResampleOptions() = default;
 
 bool FXDIB_ResampleOptions::HasAnyOptions() const {
diff --git a/core/fxge/dib/fx_dib.h b/core/fxge/dib/fx_dib.h
index d6e9309..437fa70 100644
--- a/core/fxge/dib/fx_dib.h
+++ b/core/fxge/dib/fx_dib.h
@@ -24,8 +24,6 @@
   k8bppRgba = 0x208,
   kRgba = 0x218,
   kArgb = 0x220,
-  kCmyk = 0x420,
-  kCmyka = 0x620,
 };
 
 struct PixelWeight {
@@ -119,16 +117,11 @@
   return !!(static_cast<uint16_t>(format) & 0x200);
 }
 
-inline bool GetIsCmykFromFormat(FXDIB_Format format) {
-  return false;
-}
-
 inline bool HasNoFlags(FXDIB_Format format) {
-  return (static_cast<uint16_t>(format) & 0x700) == 0;
+  return (static_cast<uint16_t>(format) & 0x300) == 0;
 }
 
 FXDIB_Format MakeRGBFormat(int bpp);
-FXDIB_Format AddAlphaToCmykFormat(FXDIB_Format format);
 
 inline FX_CMYK CmykEncode(int c, int m, int y, int k) {
   return (c << 24) | (m << 16) | (y << 8) | k;
diff --git a/core/fxge/skia/fx_skia_device.cpp b/core/fxge/skia/fx_skia_device.cpp
index 6ba27d6..7015aaa 100644
--- a/core/fxge/skia/fx_skia_device.cpp
+++ b/core/fxge/skia/fx_skia_device.cpp
@@ -1636,8 +1636,6 @@
 #endif
       m_bRgbByteOrder(bRgbByteOrder),
       m_bGroupKnockout(bGroupKnockout) {
-  DCHECK(!m_pBitmap->IsCmykImage());
-
   SkBitmap skBitmap;
   SkColorType color_type;
   const int bpp = pBitmap->GetBPP();
diff --git a/core/fxge/win32/cgdi_device_driver.cpp b/core/fxge/win32/cgdi_device_driver.cpp
index 5811b5a..1a49aca 100644
--- a/core/fxge/win32/cgdi_device_driver.cpp
+++ b/core/fxge/win32/cgdi_device_driver.cpp
@@ -326,9 +326,6 @@
     if (!pBitmap)
       return false;
 
-    if (pBitmap->IsCmykImage() && !pBitmap->ConvertFormat(FXDIB_Format::kRgb))
-      return false;
-
     LPBYTE pBuffer = pBitmap->GetBuffer();
     ByteString info = CFX_WindowsDIB::GetBitmapInfo(pBitmap);
     ((BITMAPINFOHEADER*)info.c_str())->biHeight *= -1;
@@ -343,11 +340,6 @@
   }
 
   RetainPtr<CFX_DIBitmap> pBitmap = pBitmap1;
-  if (pBitmap->IsCmykImage()) {
-    pBitmap = pBitmap->CloneConvert(FXDIB_Format::kRgb);
-    if (!pBitmap)
-      return false;
-  }
   LPBYTE pBuffer = pBitmap->GetBuffer();
   ByteString info = CFX_WindowsDIB::GetBitmapInfo(pBitmap);
   ::SetDIBitsToDevice(m_hDC, left, top, src_rect.Width(), src_rect.Height(),
@@ -368,9 +360,6 @@
   if (!pBitmap || dest_width == 0 || dest_height == 0)
     return false;
 
-  if (pBitmap->IsCmykImage() && !pBitmap->ConvertFormat(FXDIB_Format::kRgb))
-    return false;
-
   ByteString info = CFX_WindowsDIB::GetBitmapInfo(pBitmap);
   if ((int64_t)abs(dest_width) * abs(dest_height) <
           (int64_t)pBitmap1->GetWidth() * pBitmap1->GetHeight() * 4 ||
diff --git a/core/fxge/win32/cgdi_display_driver.cpp b/core/fxge/win32/cgdi_display_driver.cpp
index f438be1..7e9ec91 100644
--- a/core/fxge/win32/cgdi_display_driver.cpp
+++ b/core/fxge/win32/cgdi_display_driver.cpp
@@ -48,7 +48,7 @@
   bmi.bmiHeader.biHeight = -height;
   bmi.bmiHeader.biPlanes = 1;
   bmi.bmiHeader.biWidth = width;
-  if (pBitmap->GetBPP() > 8 && !pBitmap->IsCmykImage()) {
+  if (pBitmap->GetBPP() > 8) {
     ret = ::GetDIBits(hDCMemory, hbmp, 0, height, pBitmap->GetBuffer(), &bmi,
                       DIB_RGB_COLORS) == height;
   } else {
@@ -195,7 +195,7 @@
   if (pSource->HasAlpha()) {
     auto* pPlatform =
         static_cast<CWin32Platform*>(CFX_GEModule::Get()->GetPlatform());
-    if (pPlatform->m_GdiplusExt.IsAvailable() && !pSource->IsCmykImage()) {
+    if (pPlatform->m_GdiplusExt.IsAvailable()) {
       CFX_DIBExtractor temp(pSource);
       RetainPtr<CFX_DIBitmap> pBitmap = temp.GetBitmap();
       if (!pBitmap)