gpt4 book ai didi

java - 将RGB图像转换为灰度图像减少java中的内存

转载 作者:IT老高 更新时间:2023-10-28 21:03:48 29 4
gpt4 key购买 nike

我有一个 RGB bufferedImage bImg。
我想将 bImg 转换为灰度图像。

BufferedImage grayIm=new BufferedImage(bImg.getWidth(null), bImg.getHeight(null), BufferedImage.TYPE_BYTE_GRAY); 

我已经尝试过这个 grayIm,但我无法设置这个 grayIm 的灰度值。

最佳答案

一种方法可能是转换色彩空间(性能不佳):

ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_GRAY);  
ColorConvertOp op = new ColorConvertOp(cs, null);
BufferedImage image = op.filter(bufferedImage, null);

另一种方法是使用 BufferedImage,就像你一样(更好的性能):

BufferedImage image = new BufferedImage(width, height,  
BufferedImage.TYPE_BYTE_GRAY);
Graphics g = image.getGraphics();
g.drawImage(colorImage, 0, 0, null);
g.dispose();

最后但同样重要的是,最好的性能是使用 GrayFilter:

ImageFilter filter = new GrayFilter(true, 50);  
ImageProducer producer = new FilteredImageSource(colorImage.getSource(), filter);
Image mage = Toolkit.getDefaultToolkit().createImage(producer);

来源:http://www.codebeach.com/2008/03/convert-color-image-to-gray-scale-image.html

编辑:根据马克的评论。

关于java - 将RGB图像转换为灰度图像减少java中的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9131678/

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