1

我一直在开发 Java 2D 游戏,在进行到一半时我注意到我的屏幕和精灵太小了。手动放大它们会很痛苦。

使用 Java 2D 将图像绘制到面板时,是否可以放大 JFrame 或 JPanel 及其所有内容?

4

1 回答 1

1

Graphics2D 提供的图像大小调整功能如下:

BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, type);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, IMG_WIDTH, IMG_HEIGHT, null);
g.dispose();

根据一些文章,如果要提高调整大小的图像质量,可以添加 RenderingHints,如下所示:

BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, type);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, IMG_WIDTH, IMG_HEIGHT, null);
g.dispose();
g.setComposite(AlphaComposite.Src);
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.setRenderingHint(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_QUALITY);
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);

来源:http ://www.mkyong.com/java/how-to-resize-an-image-in-java/

其他值得检查的链接:

http://www.javaprogrammingforums.com/algorithms-recursion/818-change-size-image.html

http://www.gotoquiz.com/web-coding/programming/java-programming/resize-images-in-java-preserving-image-quality/

http://ajax911.com/resize-images-java-java2d-method/

于 2013-04-20T10:38:33.233 回答