我正在使用imgscalr-lib-3.1创建缩略图,以便在我的galleria经典相册中使用。它是在减小大小(我指的是像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();
}你们知道该怎么做吗?谢谢。
发布于 2011-04-20 18:45:05
您可以将缩略图写入读取原始图像的相同文件中。这可能不是您想要的。
但是,如果您希望这样做,则需要在读取输入文件后将其删除或截断,以确保您不会用缩略图覆盖前几个字节,而让其余部分包含旧的图像数据。
截断文件的一种简单方法是使用RandomAccessFile
RandomAccessFile raf = new RandomAccessFile(file, "rw");
raf.setLength(0);
raf.close();https://stackoverflow.com/questions/5728993
复制相似问题