magick.MagickException:无法检索句柄

时间:2011-03-31 14:02:41

标签: java image imagemagick jmagick

我试图在我的应用程序中使用JMagick过去一周,但sm仍然不成功。我使用默认安装目录从源本身安装了JMagick 6.4.0和ImageMagick 6.4.0。我可以在/ usr / local / lib中看到共享库。

现在我尝试使用选项-Djava.library.path=/usr/local/lib运行以下程序。

public class JMagickTest {
    public static void main(String[] args) {
        try {
            System.setProperty("jmagick.systemclassloader", "false");
            System.out.println(System.getProperty("java.library.path"));
            ImageInfo info = new ImageInfo("/home/blue_bg.jpg");
            MagickImage image = new MagickImage(info);
            System.out.println(image.getBackgroundColor());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

它出现以下错误。

/usr/local/lib
magick.MagickException: Unable to retrieve handle
        at magick.MagickImage.getBackgroundColor(Native Method)
        at JMagickTest.main(JMagickTest.java:19)

任何人都可以帮助我。也可以请一些正确的方法从系统中卸载ImageMagick。

提前致谢
Jitendra

2 个答案:

答案 0 :(得分:1)

最后我发现了错误。

我认为,无法检索句柄是一个非常一般的错误,可能由于各种原因而发生。一个可能是Imagemagick的多个安装。

我的情况是错误的,没有安装JPEG格式的委托库。所以我按照http://blog.ericlamb.net/2008/11/fix-for-convert-no-decode-delegate-for-this-image-format/上的说明首先安装此库,然后重新安装imagemagick。它解决了这个问题。

答案 1 :(得分:0)

Google似乎认为此错误与您在系统上拥有多个ImageMagick副本有关,并且在尝试检索处理程序时会感到困惑。我怀疑JMagick将ImageMagick打包到其中,这可能是复制的来源。