我有两个图像,我想将它们与 ImageMagick Java 包装器“im4java”进行比较。就我而言,我有这段代码:
boolean compare (String picture1, String picture2) {
boolean pdfsEqual;
IMOperation imOperation = new IMOperation();
imOperation.metric("ae");
imOperation.addImage();
imOperation.addImage();
imOperation.addImage();
CompareCmd compare = new CompareCmd();
ArrayListOutputConsumer outputConsumer = new ArrayListOutputConsumer();
compare.setOutputConsumer(outputConsumer);
try{
compare.run(imOperation, pathSample, pathResult, "null:");
pdfsEqual = true;
} catch (Exception e){
pdfsEqual = false;
ArrayList<String> stringArrayList = outputConsumer.getOutput();
System.out.println(stringArrayList);
}
return pdfsEqual;
}
但是stringArrayList
是空的。阅读im4java
文档我发现实际上OutputConsumer
将输出存储在数组列表中,但正如已经说过的那样,什么都没有。此外,imOperation.metric("ae")
如果调用是从命令提示符本身完成的,则计算两个图像之间不同的像素并将其打印到控制台。我不知道如何在我的 java 代码中使用OutputConsumer
.