gpt4 book ai didi

Java 在不使用 ConvertColorOp 的情况下将 BufferedImage 的 ColorSpace 转换为 CS_GRAY

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

我知道可以使用

将图像转换为 CS_GRAY
public static BufferedImage getGrayBufferedImage(BufferedImage image) {
BufferedImageOp op = new ColorConvertOp(ColorSpace
.getInstance(ColorSpace.CS_GRAY), null);
BufferedImage sourceImgGray = op.filter(image, null);

return sourceImgGray;
}

然而,这是我整个程序的瓶颈。我需要经常在 800x600 像素的图像上执行此操作,平均需要大约 200-300 毫秒才能完成此操作。我知道我可以通过使用一个 for 循环遍历图像数据并立即设置它来更快地完成此操作。另一方面,上面的代码构建了一个全新的 800x600 灰度 BufferedImage。我宁愿只转换我传入的图像。

有人知道如何使用 for 循环执行此操作并且假设图像是 RGB 颜色空间吗?

最佳答案

ColorConvertOp.filter 有两个参数。第二个参数也是 BufferedImage,这将是目标。如果您将正确的 BufferedImage 传递给 filter 方法,它可以让您免于创建新的 BufferedImage 的麻烦。

关于Java 在不使用 ConvertColorOp 的情况下将 BufferedImage 的 ColorSpace 转换为 CS_GRAY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/886854/

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