我有一种在缓冲图像中绘制图像的方法,但是当我返回缓冲图像时,它只是显示为 200 x 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。
您遇到困难的原因是您没有处理 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是适当的并且存在。