magick.MagickException: невозможно получить дескриптор - PullRequest
1 голос
/ 31 марта 2011

Я пытаюсь использовать JMagick в своем приложении в течение прошлой недели, но см все еще не удалось. Я установил 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 ]

1 голос
/ 05 апреля 2011

Наконец-то я обнаружил ошибку.

Я думаю, Невозможно получить дескриптор - это очень общая ошибка, которая может возникнуть по разным причинам.Один может быть несколько установок Imagemagick.

Ошибка в моем случае была, библиотека делегата для формата JPEG не был установлен.поэтому я следовал инструкциям на http://blog.ericlamb.net/2008/11/fix-for-convert-no-decode-delegate-for-this-image-format/, чтобы сначала установить эту библиотеку, а затем переустановить imagemagick.Это решило проблему.

0 голосов
/ 31 марта 2011

Google, похоже, считает, что эта ошибка связана с тем, что в вашей системе несколько копий ImageMagick, и она пытается запутаться, когда пытается получить обработчик.Я подозреваю, что JMagick упаковывает в него ImageMagick, и, возможно, именно отсюда происходит дублирование.

...