Мне нужно проверить размер изображения, и я использую магию изображения, чтобы сделать то же самое. К сожалению, 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, заключается в следующем:
а.) Я не хочу добавлять зависимости к дополнительным Jar-файлам. ImageMagic поставляется с нашим приложением, поэтому он не добавляет дополнительных зависимостей.
б.) Я не смог найти правильный способ установки JMagick.