Java 9中的CMYK TIFF读写

时间:2019-03-30 05:22:13

标签: java bufferedimage java-9 javax.imageio

我的目标是读取CMYK Tiff图像,弄乱像素,然后写出新的CMYK Tiff图像。我很难找到这样的例子,任何帮助将不胜感激。最初,我使用RGB JPEG图像执行此操作时使用以下代码没有问题:

// read input image
BufferedImage in = ImageIO.read(inputJPGAsFile);

// made output image that is same size as input image
FinalImage = new BufferedImage(in.getWidth(), in.getHeight(), BufferedImage.TYPE_INT_ARGB);

// mess with pixels in output image

// write as JPG
ImageIO.write(FinalImage, "JPEG", outputJPGAsFile);

但是,现在我试图弄清楚如何将其更改为与CMYK Tiffs一起使用。似乎没有BufferedImage的类型类似于“ TYPE_INT_CMYK”的类型。因此,我当时尝试使用输入图像的ColorModel,但是由于以下错误Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: Unknown color space而崩溃。任何帮助,将不胜感激。

// read input image
BufferedImage in = ImageIO.read(inputTiffAsFile);

// get the CMYK color space of input image
ColorModel colorModel = in.getColorModel();
BufferedImage FinalImage = new BufferedImage(colorModel, colorModel.createCompatibleWritableRaster(100, 100), colorModel.isAlphaPremultiplied(), null);

// Copy in to FinalImage with some pixel manipulation

// write final image
ImageIO.write(FinalImage, "TIFF", outputTiffAsFile);

此外,我放置了Java 9,因为这是我一直在使用的,但是如果这样可以简化工作,我可以升级到新版本。谢谢!

0 个答案:

没有答案