gpt4 book ai didi

java - 如何调整目录中的图像大小?

转载 作者:行者123 更新时间:2023-11-30 06:31:15 26 4
gpt4 key购买 nike

此代码尝试调整名为“imgs”的目录中的图像大小。不幸的是,由于某些原因,当我取消注释 listFiles(..) 循环时 ImageIO.read(sourceImageFile) 将返回 null。然而,在循环外直接处理同一个文件 (res("imgs/foto_3.jpg")) 是可行的。很明显,这个循环阻止了文件被读取。解决方案?

import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import static org.imgscalr.Scalr.*;

public class App {

public static void main(String[] args) throws IOException {
// for (File sourceImageFile : new File("imgs").listFiles()) {
// res("imgs/"+sourceImageFile.getName());
// }
res("imgs/foto_3.jpg");

}

public static void res(String arg) throws IOException {

File sourceImageFile = new File(arg);
BufferedImage img = ImageIO.read(sourceImageFile);

BufferedImage thumbnail = resize(img, 500);

thumbnail.createGraphics().drawImage(thumbnail, 0, 0, null);
ImageIO.write(thumbnail, "jpg", new File("resized/" + sourceImageFile.getName()));
}
}

enter image description here

要重现问题,您可以 download the Maven project .

最佳答案

您能否更改 res 以接受 File 对象而不是 String?然后你可以写下面的,这样会好很多:

for (File sourceImageFile : new File("imgs").listFiles()) {
res(sourceImageFile);
}

关于您原来的问题,请尝试添加一些跟踪语句或使用调试器来查找究竟传递给 res 的内容。

关于java - 如何调整目录中的图像大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9779563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com