Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8364583

ColorConvertOp fails for CMYK → RGB conversion

XMLWordPrintable

    • 2d
    • generic
    • generic

      ADDITIONAL SYSTEM INFORMATION :
      openjdk version "21.0.8" 2025-07-15 LTS
      OpenJDK Runtime Environment Temurin-21.0.8+9 (build 21.0.8+9-LTS)
      OpenJDK 64-Bit Server VM Temurin-21.0.8+9 (build 21.0.8+9-LTS, mixed mode, sharing)

      A DESCRIPTION OF THE PROBLEM :
      Trying to convert CMYK image to RGB image using ColorConvertOp fails unexpectedly:

          java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3

      Funny enough, if I change the ColorConvertOp initialization (see "ColorConvertTest.java" case) like:

              ColorConvertOp convertOp = new ColorConvertOp(
                      sourceModel.getColorSpace(),
                      ColorSpace.getInstance(ColorSpace.CS_sRGB), null);

      the conversion succeeds.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      1. Run: java ColorConvertTest.java
      2. Observe the output


      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      Console output:

      < cmyk.jpg: ColorModel: #pixelBits = 32 numComponents = 4 color space = com.sun.imageio.plugins.common.SimpleCMYKColorSpace@7a92922 transparency = 1 has alpha = false isAlphaPre = false
      > rgb.png

      and an "rgb.png" file saved in the current directory.

      ACTUAL -
      Console output:

      < cmyk.jpg: ColorModel: #pixelBits = 32 numComponents = 4 color space = com.sun.imageio.plugins.common.SimpleCMYKColorSpace@3d51f06e transparency = 1 has alpha = false isAlphaPre = false
      Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
              at java.desktop/java.awt.image.ComponentColorModel.getNormalizedComponents(ComponentColorModel.java:2343)
              at java.desktop/java.awt.image.ColorConvertOp.nonICCBIFilter(ColorConvertOp.java:814)
              at java.desktop/java.awt.image.ColorConvertOp.filter(ColorConvertOp.java:275)
              at ColorConvertTest.main(ColorConvertTest.java:23)

      and no "rgb.png" result.

      ---------- BEGIN SOURCE ----------
      -----"ColorConvertTest.java"
      import java.io.ByteArrayInputStream;
      import java.io.File;
      import java.io.IOException;
      import java.io.InputStream;
      import java.util.Base64;

      import java.awt.color.ColorSpace;
      import java.awt.image.BufferedImage;
      import java.awt.image.ColorConvertOp;
      import java.awt.image.ColorModel;

      import javax.imageio.ImageIO;

      public class ColorConvertTest {

          public static void main(String[] args) throws Exception {
              BufferedImage source = ImageIO.read(openStream("cmyk.jpg.base64.txt"));
              ColorModel sourceModel = source.getColorModel();
              System.out.append("< cmyk.jpg: ").println(sourceModel);

              ColorConvertOp convertOp = new ColorConvertOp(
                      ColorSpace.getInstance(ColorSpace.CS_sRGB), null);
              BufferedImage rgb = convertOp.filter(source, null);
              ImageIO.write(rgb, "png", new File("rgb.png"));
              System.out.println("> rgb.png");
          }

          private static ByteArrayInputStream openStream(String name) throws IOException {
              try (InputStream input = ColorConvertTest.class.getResourceAsStream(name)) {
                  return new ByteArrayInputStream(Base64
                          .getMimeDecoder().decode(input.readAllBytes()));
              }
          }

      }
      -----"ColorConvertTest.java"--

      -----"cmyk.jpg.base64.txt"
      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
      AAAAAAAP/9k=
      -----"cmyk.jpg.base64.txt"--

      ---------- END SOURCE ----------

        1. ColorConvertTest.java
          2 kB
          Andrew Wang
        2. cmyk.jpg.base64.txt
          12 kB
          Andrew Wang

            prr Philip Race
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: