gpt4 book ai didi

java - 如何将 BufferedImage RGBA 转换为 BufferedImage RGB?

转载 作者:太空宇宙 更新时间:2023-11-03 22:24:14 24 4
gpt4 key购买 nike

所以我尝试寻找解决方案,但找不到可以将 RGBA 格式转换为 RGB 格式的解决方案。

如果给出从 BufferedImage 到 BufferedImage 转换的简单解决方案,那将是最好的,否则问题如下:

基本上我必须将 BufferedImage 转换成 MAT 格式。它适用于 JPG/JPEG 图像,但不适用于 PNG。以下代码用于转换::

BufferedImage biImg = ImageIO.read(new File(imgSource));
mat = new Mat(biImg.getHeight(), biImg.getWidth(),CvType.CV_8UC3);
Imgproc.cvtColor(mat,matBGR, Imgproc.COLOR_RGBA2BGR);
byte[] data = ((DataBufferByte) biImg.getRaster().getDataBuffer()).getData();
matBGR.put(0, 0, data);

对于具有 RGBA 值的图像,这会引发错误。因此寻找解决方案。

提前致谢。

最佳答案

我找到了这样的解决方案:

BufferedImage oldRGBA= null;
try {
oldRGBA= ImageIO.read(new URL("http://yusufcakmak.com/wp-content/uploads/2015/01/java_ee.png"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

final int width = 1200;
final int height = 800;
BufferedImage newRGB = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
newRGB .createGraphics().drawImage(oldRGBA, 0, 0, width, height, null);
try {
ImageIO.write(newRGB , "PNG", new File("your path"));

} catch (IOException e) {}

所以在这里,当我们创建新的 BufferedImage 时,我们可以更改图像的类型:

enter image description here

RGB 对我来说适用于 PNG。

关于java - 如何将 BufferedImage RGBA 转换为 BufferedImage RGB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44182400/

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