Java中图片缩放
最近在做一个B/S模式的小程序,需要根据浏览器端的请求,在服务器端对多张图片进行缩放和合并后传给浏览器端进行显示。在图片缩放时,使用如下方法:
Image tmp=image.getScaledInstance(w,h,Image.SCALE_SMOOTH);
这也是在网上搜索时在部分人使用的方法,但是在我这里一直不成功,返回结果tmp的大小为(-1,-1),无奈之下搜索英文网页,使用Graphics2D的 drawImage()方法解决问题,代码如下:
public static BufferedImage scaleImage(Image img,int width,int height){
BufferedImage tmp = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = tmp.createGraphics();
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2.drawImage(img, 0, 0, width, height, null);
g2.dispose();
return tmp;
}
关于这两种方法的详细内容,可以参考网页:http://today.java.net/pub/a/today/2007/04/03/perils-of-image-getscaledinstance.html

浙公网安备 33010602011771号