1

我正在使用 imgscalr-lib-3.1 创建缩略图以在我的 Galleria-classic 相册中使用。它正在减小大小(我的意思是像 100 * 100 的像素),但不是千字节(像 10K、20K)。这是我的代码:

    public static void createThumbNails(String path) throws ImageFormatException, IOException{

    File image ;
    FileInputStream in = null ;
    JPEGImageDecoder decoder;
    BufferedImage bufferedImage ;
    BufferedImage outBufferedImage ;
    Scalr scalr = new Scalr();
    File folder = new File(path+"/images/album/award/");
    File[] files = folder.listFiles();  
    File outputfile ;



    for(File file : files){
        image = file;
        in = new FileInputStream(file);
        decoder = JPEGCodec.createJPEGDecoder(in);
        bufferedImage = decoder.decodeAsBufferedImage();
        outBufferedImage = scalr.resize(bufferedImage, Scalr.Method.SPEED,100);


        ImageIO.write(outBufferedImage, "jpg", file);
    }

    in.close();

}

你们知道该怎么做吗?谢谢你。

4

1 回答 1

3

您将缩略图写入您从中读取原始图像的相同文件中。这可能不是你想要的。

如果需要,则需要在读取输入文件后删除或截断输入文件,以确保不会用缩略图覆盖前几个字节,而其余部分则包含旧图像数据.

截断文件的一种简单方法是使用RandomAccessFile

RandomAccessFile raf = new RandomAccessFile(file, "rw");
raf.setLength(0);
raf.close();
于 2011-04-20T10:45:05.020 回答