【发布时间】:2017-06-24 00:29:21
【问题描述】:
我正在尝试在 Java 中调整图像大小,但我遇到了下一个问题:
我使用它的代码是下一个:
public BufferedImage res20x20(BufferedImage image){
int type = image.getType() == 0? BufferedImage.TYPE_INT_ARGB : image.getType();
BufferedImage resizedIm= new BufferedImage(20, 20, type);
Graphics2D g= resizedIm.createGraphics();
g.drawImage(image, 0, 0, 20, 20, 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);
return resizedIm;
}
完整的代码可以在here找到。 我想要的结果是这样的:
【问题讨论】:
-
图形对象在被释放后不能使用。即使可以,您也在调用 drawImage 后设置渲染提示,因此它们将无效。在调用 drawImage 之前设置渲染提示。
标签: java image image-resizing