Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java ImageIO或Imagemagick将DCI-P3颜色空间转换为sRGB_Java_Imagemagick_Image Manipulation_Imagemagick Convert - Fatal编程技术网

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

使用Java ImageIO或Imagemagick将DCI-P3颜色空间转换为sRGB,java,imagemagick,image-manipulation,imagemagick-convert,Java,Imagemagick,Image Manipulation,Imagemagick Convert,我试图在iPhone-X的屏幕截图上进行图像处理,但由于红色通道未达到预期范围,我遇到了麻烦。问题是由于图像的颜色空间引入了DCI-P3,而我们的大多数算法都是为旧款iPhone和Android的标准sRGB颜色空间编写的 给出问题的屏幕截图区域在DCI-P3颜色空间中的RGB值为r=59、g=125、b=236。我们预计红色通道将小于30,并且通过Photoshop的编辑->转换为配置文件选项转换图像会导致特定像素的红色值为22 我们在一个Jax RS Web服务上做这个图像处理,所以我解决这

我试图在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和friends。不幸的是,使用以下方法隐藏图像颜色空间的典型建议无效红色值仍然太高:

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 preferred或ImageMagick正确地转换这些颜色空间吗?它们生成的结果图像类似于Photoshop的编辑->转换为配置文件工具?

你能发布一个到输入PNG的链接吗

如果输入的PNG图像不包含DCI-P3配置文件,则还需要在ImageMagick命令中添加该配置文件,该命令将变为:

magick IMG_0812.PNG -profile ~/Desktop/DCI-P3-DCI.icc -profile ~/Desktop/srgb.icc IMG_0812_converted.PNG

or

magick IMG_0812.PNG -profile ~/Desktop/DCI-P3-D65.icc -profile ~/Desktop/srgb.icc IMG_0812_converted.PNG
有关DCI-P3配置文件,请参阅:


请注意,在ImageMagick 7中,magick替换convert。如果您使用magick convert,那么您很可能会使用ImageMagick 6。

感谢您澄清此命令。我认为问题的根本原因是使用了错误的sRGB配置文件v4而不是v2。当我从color.org下载v2时,它开始给我正确的值。我接受你的回答,因为这将有助于将来为用户验证正确的Imagemagick命令。非常感谢。