首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GraphicsMagick + gm4java运行im4java比较命令

使用GraphicsMagick + gm4java运行im4java比较命令
EN

Stack Overflow用户
提问于 2015-02-11 00:06:45
回答 1查看 1.1K关注 0票数 0

我正在尝试使用GraphicsMagick和im4java进行比较。我使用的GraphicsMagick命令如下所示:

代码语言:javascript
复制
gm compare -maximum-error 0 -metric MAE -highlight-style xor -hilight-color red -file C:/output/diffFile.pdf C:/input/file1.pdf C:/input/file2.pdf

我正试着把它翻译成Java。我知道im4java最初是为ImageMagick构建的,它们的命令可能不同。是否可以使用im4java + gm4java运行上述比较?

我试过这个:

代码语言:javascript
复制
SimpleGMService service = new SimpleGMService();
service.setGMPath("C:/path/to/graphicsMagick/gm.exe");

try
{
    GMConnection connection = service.getConnection();
    try {
        GMBatchCommand command = new GMBatchCommand(service, "compare");
        // create the operation, add images and operators/options
        IMOperation op = new IMOperation();
        op.metric("MAE");
        op.addRawArgs("-file C:/output/diffFile.pdf");
        op.addImage();
        op.addImage();

        ArrayListOutputConsumer output = new ArrayListOutputConsumer();
        command.setOutputConsumer(output);

        //debug
        command.createScript("C:/output/myscript.bat",op);

        command.run(op, "C:/input/file1.pdf", "C:/input/file2.pdf");

....

上面的内容给了我错误:

代码语言:javascript
复制
org.im4java.core.CommandException: compare: Unrecognized option (-file C:/output/diffFile.pdf)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-11 14:19:34

您可以单独使用im4java或im4java+gm4java来实现这一点。gm4java给您的是需要处理大量图像时的性能。

您所遇到的问题是由于不正确地使用addRawArgs()方法。命令行中的每个参数都需要作为单个参数添加,而不是一个字符串中的所有参数。

尝试:

代码语言:javascript
复制
op.addRawArgs("-file", "C:/output/diffFile.pdf");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28444248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档