我有一种在bufferedimage中绘制图像的方法,但是当我返回bufferedimage时,它只显示为200×200的黑色正方形而不是其中的图像,这被认为是金鱼。这是我的代码:
Image returnGoldfish() {
BufferedImage bufferedImage = new BufferedImage(200, 200, BufferedImage.TYPE_3BYTE_BGR);
Graphics g = bufferedImage.getGraphics();
g.drawImage(imageFishy, x1, y1, null);
return bufferedImage;
}
如果有人知道我做错了什么,请帮忙。谢谢。此外,我的图像设置正确。
Image imageFishy = new ImageIcon("I://Picture//fishy.jpg").getImage();
当我将其绘制为imageFishy而没有bufferedImage时,它会显示在paint中。
答案 0 :(得分:1)
您遇到困难的原因是因为您没有处置Graphics对象。
Image returnGoldfish() {
BufferedImage bufferedImage = new BufferedImage(200, 200, BufferedImage.TYPE_3BYTE_BGR);
Graphics g = newImage.createGraphics();
g.drawImage(imageFishy, x1, y1, null);
g.dispose();
return bufferedImage;
}
假设x1,y1和imageFishy是正确且存在的。