想用java读取一张图片,缩小到固定像素值后保存,如何实现?多谢指点。

解决方案 »

  1.   

    public static BufferedImage createZoomSizeImage ( Image image,
                Component comp, int width, int height ) {
            
            BufferedImage bimg = null;
            
            AreaAveragingScaleFilter filter = 
                new AreaAveragingScaleFilter( width, height );
                    FilteredImageSource producer = 
                new FilteredImageSource( image.getSource(), filter );
           
            bimg = new BufferedImage( width, height,
                        BufferedImage.TYPE_3BYTE_BGR );        
            Graphics graphics = bimg.createGraphics();
            graphics.drawImage( comp.createImage( producer ), 0, 0, null );
            
            return bimg;
        }
      

  2.   

    多谢,我一会儿试试。使用这段代码需要import特殊的包么?
      

  3.   

    如何创建一个Component对象?Component不能直接创建,我创建了一个Container comp代替,并用ImageIO.write将bimg写入文件,编译通过,但图像未能生成。看样子是graphics.drawImage( comp.createImage( producer ), 0, 0, null )这句有点问题,还请高手指点。
      

  4.   

    可以了,不是Component的问题,是ImageIO.write的问题。本来用的是gif的图片,使用ImageIO.write(bimg,"gif",fImageOutputFile)操作不成功。后来改用jpg图片,用ImageIO.write(bimg,"jpeg",fImageOutputFile)就可以。请问如果要处理gif图片应该怎么办?