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

posted @ 2012-08-02 11:01  阿洒  阅读(268)  评论(0)    收藏  举报