1

imgscar-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();

}

あなたたちは何をすべきか知っていますか?ありがとうございました。

4

1 に答える 1

3

元の画像を読み取ったのと同じファイルにサムネイルを書き込みます。これはあなたが望むものではないかもしれません。

ただし、それが必要な場合は、最初の数バイトをサムネイルで上書きしないようにするために、入力ファイルから読み取った後に削除または切り捨てて、残りの部分に古い画像データを含める必要があります。 .

ファイルを切り詰める簡単な方法の 1 つは、次を使用することですRandomAccessFile

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