Как установить расширение gmagick PHP на Windows Vista

gmagick - более новая версия imagemagick с большим набором функций, она менее ресурсоемкая и быстрая, но проблема в том, что об этом замечательном инструменте в Интернете очень мало дискуссий, с которыми я недавно сталкивался на http://devzone.zend.com/1559/manipulating-images-with-php-and-graphicsmagick/, но я не смог установить его на Windows-машины, потому что phpize не работал, поэтому я попытался каким-то другим способом и каким-то образом удалось попасть на страницу phpinfo, но я не мог заставить его работать дальше я не знаю, даже не открыть ни одного изображения с помощью gmagick, это код, который я использовал

     <?php
     $path="gallery/img1.jpg";
     // initialize object
     $image = new Gmagick($path);
     echo $image;
    // read image file
   $file = 'gallery/img1.jpg';
   $image->readImage($file);
   echo '<img src="' . $file . '" width="200" height="150" /> <br/>';
   ?>

Я использовал этот код для создания экземпляра класса gmagick и открытия изображения, но я получаю очень большую ошибку, как показано ниже. Неустранимая ошибка: необработанное исключение "GmagickException" с сообщением "Невозможно открыть файл (gallery/img1.jpg)" в C:\xampp\htdocs\junk\imgproc\imgproc1.php:4 Трассировка стека: #0 C:\xampp\htdocs\junk\imgproc\imgproc1.php(4): конструкция Gmagick->__ ('gallery/img1.jp...') #1 {main} в C: \ xampp \ htdocs \ junk \ imgproc \ imgproc1.php в строке 4

1 ответ

А) Чтобы ответить на вопрос в вашем заголовке (это может привести других читателей здесь):

Сборки Windows расширения GraphicsMagick для PHP можно получить здесь: http://valokuva.org/builds/

Проверьте, нужна ли вам поточно-ориентированная версия или нет, посмотрев на phpinfo(); вывод вашего веб-сервера. Ищите запись Thread Safety, В записи PHP Extension Build Вы также должны найти нужную версию VC, например, API20090626,TS,VC9 для VC9.

Загрузите последнюю сборку, соответствующую вашим условиям, поместите ее в каталог PHP/ext и добавьте в свой php.ini следующим образом:

extension=php_gmagick_ts.dll

Не забудьте исправить имя DLL, если вы используете версию не-TS.

Перезапустите Apache и проверьте phpinfo();, Там должно быть gmagick блокировать сейчас..

Б) Чтобы исправить проблему с вашим кодом:

  1. Конструктор Gmagick не ожидает путь в качестве параметра, но полное имя файла изображения (может включать путь). Чаще всего лучше оставить его пустым и предоставить файл в readImage() вызов.
  2. Попробуйте полный путь $ (начиная с корня) и используйте его в readImage() а также writeImage():

Вот пример рабочего фрагмента кода:

<?php
// assuming this is the path to your code and to your image files
$path = 'C:\xampp\htdocs\junk\imgproc\';

$image = new Gmagick();
$file = 'img1.jpg';
$image->readImage($path.$file);

// The rest of your code does not make any use of the GM instance, 
// so I add something functional here: create a grayscale version and show it
$fileOut= 'img1_GRAY.jpg';
$image->setImageType(Gmagick::IMGTYPE_GRAYSCALE);
$image->writeImage($path.$fileOut);
$image->destroy();
echo "<img src='$fileOut' >";
?>

Он должен показывать версию изображения в градациях серого.

Другие вопросы по тегам