图像大小不减少千字节的图像-使用imgscalr-lib-3.1



我正在使用imgscalr-lib-3.1创建缩略图,以便在我的画廊经典相册中使用。它减少了大小(像素,我的意思是像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();
}
你们知道该怎么做吗?谢谢你。

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

如果你想要,但是你需要删除或截断输入文件后,从它读取,以确保你只是不覆盖前几个字节的缩略图,留下它的其余部分包含旧的图像数据。

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

RandomAccessFile raf = new RandomAccessFile(file, "rw");
raf.setLength(0);
raf.close();

最新更新