2011-04-20 5 views
1

Я использую imgscalr-lib-3.1 для создания эскизов для использования в моем галерическом классическом фотоальбоме. уменьшает размер (пиксели я имею в виду как 100 * 100), но не килобайты (например, 10K, 20K). вот мой код:Изменение размера изображения без уменьшения килобайт изображения - с помощью imgscalr-lib-3.1

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

} 

вы, ребята, знаете, что делать? спасибо.

+0

Просто быстрый наконечник Дэйв, imgscalr использует все статические методы, поэтому нет необходимости создается экземпляр этого - я должен был бы сделать конструктор частный. жаль насчет путаницы. Простое назначение Scalr.resize (...) предназначено для использования. –

ответ

3

Вы пишете миниатюры в те же файлы, с которых вы читаете оригинальные изображения. Это может быть может быть не так, как вы хотите.

Если вы хотите, что, однако, вам нужно удалить или усечь входной файл после чтения из него, чтобы убедиться, что вы просто не перезаписывать первые несколько байт с миниатюрой, оставляя остальное для хранения старых данных изображения.

Один простой способ укоротить файл не используется RandomAccessFile:

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

ImageIO.write (RenderedImage, String, File) заменит любой существующий файл, поэтому это, очевидно, не проблема. – jarnbjo

+0

@jarnbjo: joachim правый !! я изменил папку назначения и сделал трюк, проблема решена, оценил его: D;) – MoienGK