如何将图像转换为灰度?

How to convert an image to greyscale?

我只想将图像转换为灰度。但我得到的只是一张完全 black 的图像。为什么?

BufferedImage original = ImageIO.read(url);
BufferedImage image = new BufferedImage(original.getWidth(), original.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
Graphics g = image.getGraphics();  
g.drawImage(image, 0, 0, null);  
g.dispose();

它与源图像一样具有正确的宽度和高度,但完全是黑色...

您正在向自身写入空图像。

改变

g.drawImage(image, 0, 0, null); 

g.drawImage(original, 0, 0, null);