gpt4 book ai didi

javafx读取javafx.scene.image.Image到ImageIO.write(),从CMYK到RGB

转载 作者:行者123 更新时间:2023-11-30 07:10:51 25 4
gpt4 key购买 nike

我想要做的是从 FileChooser 读取图像并将其写入文件。我必须将图像存储在 javafx.scene.image.Image 中,以便我可以显示它并将其剪辑在一个圆圈内。我在尝试将从 javafx.scene.image.Image 获取的图像写入文件时遇到了一些问题。转换过程并不流畅,从 CMYK 转换为 RGB(因此将我的图片变成了一些粉红色的东西。

拜托,我已经检查了很多其他来源,但没有人能够给我一个值得注意的解决方案

FileChooser fileChooser = new FileChooser();
File selectedFile = fileChooser.showOpenDialog(parent);

// get Image from selectedFile
Image userImg = = new Image( selectedFile.toURI().toURL().toString() );

if ( userImg != null ) {

String format = "jpg";
String filename = "d:\\pictureName."+ format;
File file = new File(filename);

// convert Image to BufferedImage
BufferedImage bufferedImage = SwingFXUtils.fromFXImage( userImg, null);

try {

// this is where i want to convert the color mode
// from cmyk to rgb, before i write it to file
ImageIO.write( bufferedImage, format, file );

} catch (IOException e) {

System.out.println("Exception :: "+ e.getMessage() );
}
}

最佳答案

您认为为什么会发生一些 CMYK 到 RGB 转换?我怀疑你的“粉红色东西”的原因有所不同。最简单的找出方法是将输出格式从 jpeg 更改为 png,看看是否有区别。

我认为您又是受此错误影响的众多人之一https://bugs.openjdk.java.net/browse/JDK-8119048这被认为不够重要而无法修复。如果您阅读其中的评论,您会找到解决方法。基本上这个想法是在转换后将图像复制到没有 Alpha channel 的新图像中。我真的很想知道还有多少人要浪费时间直到这个错误最终得到足够的关注来修复。

关于javafx读取javafx.scene.image.Image到ImageIO.write(),从CMYK到RGB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39271865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com