Java CMYK в RGB с профилем. Вывод слишком темный

Подобный вопрос задавали много раз. Но я до сих пор не понимаю, почему у меня получается слишком темное изображение после преобразования изображения с помощью ICC_Profile. Я перепробовал множество профилей: с сайта Adobe и по самой картинке.

До изображения

Before Image

После изображения

After Image

Код

Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName("jpeg");
ImageReader reader = null;
while (readers.hasNext()){
      reader = readers.next();
      if (reader.canReadRaster()){
          break;
      }
}
// read
ImageInputStream ios = ImageIO.createImageInputStream(new FileInputStream(new File(myPic.jpg)));
reader.setInput(ios);
Raster r = reader.readRaster(0, null);

BufferedImage result = new BufferedImage(r.getWidth(), r.getHeight(), bufferedImage.TYPE_INT_RGB);
WritableRaster resultRaster = result.getRaster();
ICC_Profile iccProfile = ICC_Profile.getInstance(new File("profile_name.icc");
ColorSpace cs = new ICC_ColorSpace(iccProfile);
ColorConvertOp cmykToRgb = new ColorConvertOp(cs, result.getColorModel().getColorSpace(), null);
cmykToRgb.filter(r, resultRaster);

// write
ImageIo.write(resul, "jpg", new File("myPic.jpg"));

Нужно ли мне делать что-то еще после преобразования изображения?

5
задан codingbadger 14 November 2011 в 13:26
поделиться