Как установить imagick в xampp/wampp в Windows
Сегодня я попытался установить imagick
в мой xampp сто раз. И я сделал это. Если у вас возникли проблемы, попробуйте выполнить следующие действия:
- Так как xampp является x86, проверьте, является ли ваша магия изображения (программа) x86. Если нет, загрузите последнюю версию здесь: imagemagick.org/script/binary-releases.php#windows
Пожалуйста, помните, что u ДОЛЖЕН загрузить
Win32 dynamic at 16 bits-per-pixel
.
- Установить изображение Магия в
C:\imagemagick
.
- Загрузите последнюю стабильную версию imagick здесь:. Вы ДОЛЖНЫ загрузить
5.x Thread Safe (TS) x86
. X в 5.x - это версия вашего PHP.
- Поместите
php_imagick.dll
в папку php/ext вашей установки xampp.
- Добавьте это в свой php.ini:
extension=php_imagick.dll
- Вот когда у меня много неприятностей. Если вы попытаетесь запустить сервер (или записать
php
в консоли (start- > cmd)), вы получите сообщение об ошибке. Если эта ошибка говорит примерно так: Unable to find the entry point for the procedure FlattenImages in the DLL CORE_RL_magick.dll
это означает, что вы все в порядке.
- Теперь вы должны войти в папку установки Image Magick и перезаписать загруженную DLL с помощью
php_imagick.dll
. Все они начинаются с префикса CORE_RL_
.
- Как только вы их перезапишете, вы можете попробовать написать
php
в консоли Windows. Если не сказать что-то, значит, что функция imagick функциональна (вы можете проверить localhost/xampp/ > phpinfo() link
. Лично мне пришлось установить новую DLL: vcomp110.dll
.
Если у кого-то такая же ошибка, как у меня (система не может найти vcomp11.dd
) скачать ее здесь
Теперь, если вы попробуете выпустить php
на консоли или просто инициализировать модуль apache xampp, у вас не должно быть ошибок.
До свидания и надеюсь, что смогу помочь кому-то.
EDIT: при попытке convert some-img.bmp some-result.jpg
в консоли у меня была эта ошибка:
convert.exe: unable to open module file 'C:\Users\my-acc\.magick\IM_MOD_RL_BMP_.dll': No such file or directory @ ...
Это произойдет, если в my-acc
нет папки .magick
. Вам нужно сделать следующее:
Теперь вы сможете использовать Image Magick через команды или классы PHP.
В фоновом режиме, если вы используете Codeigniter, я не знаю, как использовать image_lib с imagick. Итак, это лучше с собственными классами воображения. Вот простой пример:
$image = new Imagick($upload_data['full_path']);
$image->thumbnailImage(250,0);
if($image->writeImage($upload_data['file_path'].$upload_data['raw_name'].'_thumb'.$upload_data['file_ext'])){
something here;
}
$image->clear();
Ответы
Ответ 1
Этот ответ может быть очень наивным, но я обнаружил, что делать что-то в Windows, как правило, слишком болезненно. Многие люди согласны с этим и нашли утешение в инструменте, известном как "шоколадный".
Сначала установите шоколадный на вашей машине Windows (инструкции по простой установке):
https://chocolatey.org/
Затем используйте шоколад, чтобы установить все остальное, что вам нужно (в этом случае imagemagick):
https://chocolatey.org/packages/imagemagick
Я подозреваю, что после этого вам, возможно, придется немного подкорректировать конфигурационные файлы, а также обработать все "разрешения Windows", необходимые для бесперебойной работы. Разрешения могут быть такими же простыми (и не обязательно безопасными) как "полный контроль" для некоторого пользователя, а также активировать наследование и перезаписывать все настройки для использования наследства.
Короче говоря, установите, настройте, разрешайте, идите.
PS. Этот ответ может быть неполным/прототипным/экспериментальным, так как я не запускаю codeigniter, php, imagemagick в Windows.
Ответ 2
Это практическое руководство Winderfind замечательно, но для меня еще не удалось устранить все проблемы. Прежде всего, посмотрите на этот учебник:
http://hrt0kmt.hatenablog.com/entry/2015/05/27/170608
Во-вторых, я обнаружил, что не все версии ImageMagick будут работать со всеми версиями php_imagick.dll. Ознакомьтесь с моими и другими ответами на этот пост для дальнейшего устранения неполадок:
Поддерживаемые форматы ImageMagick не имеют значения