好的,所以我正在设计一个与迷宫相关的游戏,我正在处理GUI。
考虑到它将是NxN尺寸,我必须根据屏幕尺寸调整图像的大小(迷宫的内容),因此无论迷宫大小如何,它都将保持不变。
我使用了这段代码:
public static BufferedImage resizeImage(Image image, int width, int height) {
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
return bufferedImage;
}
但是有一个问题。新的已调整大小的图像现在是黑色(完全黑色),即使它已正确调整大小(尺寸方面)。
我做错了什么?提前谢谢。
答案 0 :(得分:1)
以下是如何添加代码以在您创建的新位图上绘制图像的缩放版本:
public static BufferedImage resizeImage(Image image, int width, int height) {
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bufferedImage.createGraphics();
// Increase quality if needed at the expense of speed
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
AffineTransform scaleTransform = AffineTransform.getScaleInstance(
width / (double) image.getWidth(null), height / (double) image.getHeight(null));
g.drawImage(image, scaleTransform, null);
// Release resources
g.dispose();
return bufferedImage;
}