0

我有两个图像,我想将它们与 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.

4

1 回答 1

0

试试看

ArrayListErrorConsumer and setErrorConsumer

代替

ArrayListOutputConsumer and setOutputConsumer

我不知道为什么它出现在错误的消费者身上。也许这是一个错误。

于 2016-03-28T10:59:56.813 回答