Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 图像大小调整不减少图像的千字节-使用imgscalr-lib-3.1_Java_Thumbnails_Resize_Scaletransform_Scalr - Fatal编程技术网

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

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

我正在使用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();

}
你们知道怎么做吗?
谢谢。

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

但是,如果您希望这样做,则需要在读取输入文件后删除或截断该文件,以确保不会用缩略图覆盖前几个字节,而使其剩余部分包含旧图像数据

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


write(renderImage,String,File)将替换任何现有文件,因此这显然不是问题所在。@jarnbjo:joachim是正确的!!我更改了目标文件夹,这就成功了,问题解决了,给他打分:D;)Dave,简单提示一下,imgscalr使用所有静态方法,因此不需要实例化它的实例——我应该将构造函数设置为私有的。很抱歉搞混了。只需调用Scalr.resize(…)即可。
RandomAccessFile raf = new RandomAccessFile(file, "rw");
raf.setLength(0);
raf.close();