为了账号安全,请及时绑定邮箱和手机立即绑定

使用Java ImageIO或Imagemagick将DCI-P3色彩空间转换为sRGB

使用Java ImageIO或Imagemagick将DCI-P3色彩空间转换为sRGB

Cats萌萌 2021-04-09 14:11:35
我正在尝试对iPhone-X的屏幕截图进行图像处理,但是我遇到了麻烦,因为红色通道未处于预期范围内。问题是由于DCI-P3引入了图像的色彩空间,而我们的大多数算法都是针对我们拥有的较旧iPhone和Android的标准sRGB色彩空间编写的。在DCI-P3颜色空间中,出现问题的屏幕截图区域的RGB值为r = 59,g = 125,b = 236。我们期望红色通道小于30,并且通过Photoshop的“编辑->转换为配置文件”选项足够确定转换图像的结果是,特定像素的红色值为22。我们正在Jax-RS Web服务上进行此图像处理,因此我解决该问题的第一个尝试是使用javax.imageio.ImageIO和好友。不幸的是,使用以下方法隐藏图像色彩空间的典型建议不起作用(红色值仍然过高):BufferedImage screenshotCopy = new BufferedImage(screenshot.getWidth(), screenshot.getHeight(), BufferedImage.TYPE_INT_ARGB);Graphics2D g2d = screenshotCopy.createGraphics();g2d.drawImage(screenshot, 0, 0, null);g2d.dispose();我也尝试过使用Imagemagick,但是对于该工具来说,我只是获得了一些成功。Imagemagick可以使用色彩空间进行转换,但是当我尝试使用它时,红色通道的色度甚至更高,为70+。magick convert IMG_0812.PNG -profile ~/Desktop/srgb.icc IMG_0812_converted.PNG有人可以帮助我使用ImageIO(首选)或ImageMagick正确转换这些色彩空间,这些色彩空间生成的图像类似于Photoshop的“编辑->转换为配置文件”工具吗?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 368 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信