Как работать с ImageMagick от ColdFusion - PullRequest
2 голосов
/ 15 апреля 2009

ColdFusion имеет отличный тег cfimage, который отлично работает. Тем не менее, он не позволяет манипулировать векторными форматами. Это заставило меня продолжить поиск сторонних инструментов для создания «волшебства изображения».

Я решил попробовать ImageMagick с ColdFusion. Я прочитал пару постов, в которых говорилось: «Я работал с ImageMagick из ColdFusion в течение X лет». Это вдохновляет, но не особенно полезно при столкновении с проблемами.

Я пробовал следующее:

  1. cfexecute с аргументами для запуска командной строки 'convert'. Страница ColdFusion ничего не производит - только пустая страница. Изображения не конвертируются. Нет исключений или текст, который не отображается в браузере. Команда ImageMagick 'convert image.eps image.jpg' отлично работает из командной строки Windows, но не из ColdFusion.

  2. Оболочки Im4java и JMagick для запуска IM-команд непосредственно из объектов Java. Я создал объекты Java с помощью функции CreateObject и пытался выполнить ее методы, но получал только разные типы ошибок Java, такие как «невозможно преобразовать image.jpg в целое число».

Любые предложения приветствуются.

Спасибо!

PS: мой первый 'stackoverflow':)

Ответы [ 3 ]

3 голосов
/ 28 апреля 2009

После некоторых попыток и неудач я заставил ImageMagick (IM) работать на меня. Позвольте мне кратко описать, как работать с ImageMagick от Coldfusion:

  1. Установите ImageMagick и Ghostscript на коробке. Ghostscript используется для манипуляции векторной графикой.
  2. Используйте тег CFEXECUTE для вызова IM с параметрами:

    <cfexecute name="#FullIMPath#" timeout="60" arguments="""#ExpandPath(filename1)#"" ""#ExpandPath(filename2)#""" />

Комментарии:

а. Запишите полный путь к одному из исполняемых файлов ImageMagic (например, convert.exe) в атрибуте 'name'.

б. Напишите полные пути для исходного и целевого изображений. Обратите внимание на дополнительные кавычки - если полный путь содержит пробелы (C: \ Program Files), вы должны заключать каждое имя изображения в пару кавычек. Поскольку Coldfusion анализирует атрибут «arguments», вам необходимо просмотреть цитату с дополнительной цитатой, например: «C: \ Program Files \» ».

с. Используйте атрибут timeout, чтобы дать ImageMagic некоторое время для получения результатов, прежде чем Coldfusion продолжит выполнение шаблона.

Спасибо всем за ответы и интерес.

PS: Дополнительные подсказки:

  • ImageMagick предлагает множество форматов для работы - от обычных файлов JPEG до файлов Photoshop * .psd. Однако для векторных форматов, таких как Encapsulated Postscript * .eps, необходимо установить Ghostscript;
  • Вы можете работать с форматами Adobe PDF и Adobe Illustrator (* .ai) с небольшим взломом - переименуйте их в * .eps и позвольте ImageMagick обрабатывать их как векторные файлы Encapsulated Postscript. Это позволяет по крайней мере конвертировать векторные файлы в растровые изображения;
  • процесс требует значительных ресурсов, рассмотрите возможность увеличения пределов памяти JVM для Coldfusion.
0 голосов
/ 20 апреля 2009

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

0 голосов
/ 16 апреля 2009

cfexecute должен работать.

...