我需要检查图像的大小,我正在使用图像魔法来做同样的事情。不幸的是,我们的某些图像的 ImageIO.read 失败,因为编码是 CMYK 并且 ImageMagick 似乎工作正常。
public static void main(String[] args) throws IOException {
String ImageMagickHome = "C:/Program Files/ImageMagick-7.0.7-Q16";
String imageToConvert = "G24624-SA286U-17F04.jpg";
ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c",
"cd " + ImageMagickHome + " && magick identify " + imageToConvert);
builder.redirectErrorStream(true);
InputStream stream = builder.start().getInputStream();
IOUtils.toString(builder.start().getInputStream());
String output = IOUtils.toString(builder.start().getInputStream());
String[] splitted = output.split(" ");
System.out.println(splitted[2]);
}
我需要检查图像的大小是否小于 500*500。但是由于我是通过进程生成器执行 ImageMagic 命令,所以它并没有以我想要的方式给我结果。
splitted[2] 给我大小,但它是字符串,我无法比较它。有没有更好的方法来做同样的事情?
我们不使用 JMagick 的原因是:
a.) 我不想将依赖项添加到其他 Jar 中。ImageMagic 随我们的应用程序一起提供,因此它不会添加额外的依赖项。b.) 我找不到安装 JMagick 的正确方法。