Java 如何将图像转换为灰度?

Java 如何将图像转换为灰度?,java,graphics,Java,Graphics,我想简单地将图像转换为灰度。但我得到的只是一张完全的黑色图像。为什么? 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

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

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(image, 0, 0, null); 


您正在向自身写入空图像

改变

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


您正在向自身写入空图像

改变

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