На хостингах установлены разные версии графической библиотеки ImageMagick, которая используется в ряде макросов (Thumbnail, GenerateTitle, PollResult, Watermark, Captcha и т.д.). Разработчики этой библиотеки проводили ряд принципиальных изменений как при переходе от версии 5 к версии 6, так и при изменении минорных номеров версий.
Система пытается автоматически подстраиваться под ситуацию. В частности, если библиотека не установлена она будет пытаться вывести графические заголовки в виде текста, а если найдена библиотека GD то в ряде случаев будет использовать она. Тем не менее, всегда можно найти такую конфигурацию, где ImageMagick работать не будет.
Внешние проявления могут выглядеть следующим образом:
- "битые" картинки из-за отсутствия соответствующих файлов в папке Cache;
- "битые" картинки из-за нулевого размера соответствующих графических файлов в папке Cache;
- отсутствие правильных шрифтов при работе GenerateTitle;
- "Кракозябры" вместо русских букв;
- В файле error.log веб-сервера могут быть сообщения о падении скрипта из-за несоответствия версий Perl интерфейса к библиотеке (Image::Magick) и самой библиотеки (ImageMagick).
Сначала проверьте проблемы, не зависящие от хостера:
- Проверьте наличие папки Cache;
- Проверьте наличие прав на запись в папку Cache для скриптов;
- Проверьте настройки используемых библиотек в файле настроек (Preferences/preferences.xml) согласно документации;
- Проверьте наличие файлов с TTF шрифтами в папке Fonts. Шрифты должны быть в Unicode, если они содержат буквы сверх ISO-8869 набора;
- Проверьте не пытаетесь ли вы "подсунуть" под видом, например, jpg файла файл другого графического формата (png, например), или вообще не графический файл. Ушлые пользователи иногда умудряются переименовать PDF в JPG и ждут что он будет показываться как картинка.
- Прикиньте количество занимаемой изображением памяти. Можно открыть ваш jpg/gif/png файл в ACDSee или Photoshop и сохранить как BMP. Его размер и покажется сколько нужно памяти для загрузки файла в память (грубо). Можно также посмотреть линейный размер изображения и перемножить высоту*ширину*3 (байта на пиксел). Затем уточните какое ограничение по памяти стоит у вашего провайдера (в его службе поддержки). Если вы при типовом ограничении в 64Мб пытаетесь обработать картинку 4000*4000px (~48Мб) то скорее всего памяти вам не хватит, т.к. нужно не забывать про другие процесс, расход памяти на скрипты, расход памяти на новую уменьшенную картинку и т.д. А если такие картинки нужны - тогда только либо готовить их заранее, уменьшив во внешнем редакторе, либо переехать на выделенный сервер.
Затем, уточните у хостера наличие на площадке библиотеки ImageMagick, попросите проверить его соответствие версии библиотеки ImageMagick версии, указанной во враппере Image::Magick. Должен быть установлен интерфейс PerlMagick. При конфигурации библиотеки перед установкой должны быть задействованы ключи "--with-ttf=yes --with-jpg=yes" и другие, отвечающие за работу с TrueType шрифтами и вывод в определенные графические форматы. Подробное описание настроек и конфигурационных ключей можно найти на сайте www.imagemagick.org.
Если хостер не отвечает или дорого время, наличие библиотек ImageMagick и GD на хостинге можно выяснить нашим тестовым скриптом env.cgi. Переименуйте скачанный файл из env.cgi.txt в env.cgi, закачайте его в папку /cgi-bin на хостинге, дайте права 755 (rwxr-xr-x), убедитесь что закачка была в ASCII формате. Вызовите его в браузере как http://вашсайт/cgi-bin/env.cgi. Результат будет в браузере. Не забудьте потом удалить скрипт.
Если хостер не хочет вам помогать или не может исправить проблемы с версиями библиотек или их конфигурациями на своей площадке мы рекомендуем хостера сменить, поскольку конфигурационные проблемы однозначно решаемы.
В ситуации когда это невозможно, и при условии неиспользования макроса GenerateTitle и сервисов голосования (Poll, PollResult) можно принудительно перевести системы на использование библиотеки GD (установлена почти всегда, поскольку обычно ей пользуются из-под PHP, который также есть везде). См. файл Preferences/preferences.xml. Внимание, до версии 4.40 при генерации уменьшенных изображений через GD их качество будет низкое, поэтому рекомендуется провести обновление системы.
Также, при использовании разработчиком локальной установки под Windows, могут возникать проблемы, связанные с отсутствием портов IM6 под ActivePerl версии 5.8. Пакет "Денвер" вообще не содержит эту библиотеку в своем пакете с Perl библиотеками. Пакет ImageMagick для этих ситуаций можно скачать из раздела "скачать".
Для версии ActivePerl 5.10 необходимо установить IM как отдельный пакет (скачать с сайта imagemagick.org), затем в папке PerlMagick найти ppd файл, проверить внутри него версию Perl для которой он предназначен и установить согласно инструкциям в readme.txt.