Java 图像大小调整不减少图像的千字节-使用imgscalr-lib-3.1
我正在使用imgscalr-lib-3.1创建缩略图,以便在galleria经典相册中使用。 它减少了大小(像素,我的意思是像100*100),但不是千字节(像10K,20K)。 这是我的密码:Java 图像大小调整不减少图像的千字节-使用imgscalr-lib-3.1,java,thumbnails,resize,scaletransform,scalr,Java,Thumbnails,Resize,Scaletransform,Scalr,我正在使用imgscalr-lib-3.1创建缩略图,以便在galleria经典相册中使用。 它减少了大小(像素,我的意思是像100*100),但不是千字节(像10K,20K)。 这是我的密码: public static void createThumbNails(String path) throws ImageFormatException, IOException{ File image ; FileInputStream in = null ; JPE
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();
}
你们知道怎么做吗?
谢谢。您将缩略图写入与读取原始图像相同的文件。这可能不是你想要的 但是,如果您希望这样做,则需要在读取输入文件后删除或截断该文件,以确保不会用缩略图覆盖前几个字节,而使其剩余部分包含旧图像数据 截断文件的一种简单方法是使用:
write(renderImage,String,File)将替换任何现有文件,因此这显然不是问题所在。@jarnbjo:joachim是正确的!!我更改了目标文件夹,这就成功了,问题解决了,给他打分:D;)Dave,简单提示一下,imgscalr使用所有静态方法,因此不需要实例化它的实例——我应该将构造函数设置为私有的。很抱歉搞混了。只需调用Scalr.resize(…)即可。
RandomAccessFile raf = new RandomAccessFile(file, "rw");
raf.setLength(0);
raf.close();