Логотип   Простое и понятное управление
  Уникальные возможности по настройке
  Open Server скачали уже 1 021 162 раза!

Форум

Добро пожаловать, Гость!

Imagick

Обсуждение проблем в работе программного комплекса
ossinkine
Сообщения: 5
C нами: 4 года 1 мес

Непрочитанное сообщение ossinkine » 10 окт 2012, 21:58

Здравствуйте.
Установил OS 4.6.6, подключил PHP 5.3.17. Следующий код не работает:
$image = new Imagick($filename);

Если заходить через браузер, просто через пару секунд отдается пустая страница.
Добавил cmd.exe в закладки, пытаюсь запустить файл через командную строку, через пару секунд вылетает окно "Прекращена работа команды CLI":
Изображение

Никаких ошибок при этом не падает ни в вывод, ни в лог.
Файл существует и доступен для чтения. Перепробовал разные картинки, дело не в них.

Аватара пользователя
Максим
Сообщения: 4877
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 11 окт 2012, 01:02

Спасибо, проблему вижу, в следующем обновлении постараюсь исправить. А пока отключите расширение Imagick в PHP 5.3 и используйте php 5.4 если аймэджик требуется.

Добавлено спустя 1 час 57 минут 42 секунды:
Ну вот, ошибку устранил, в следующем релизе все будет в порядке. Спасибо!

ossinkine
Сообщения: 5
C нами: 4 года 1 мес

Непрочитанное сообщение ossinkine » 11 окт 2012, 18:43

Вам спасибо, Максим!

ossinkine
Сообщения: 5
C нами: 4 года 1 мес

Непрочитанное сообщение ossinkine » 13 окт 2012, 11:59

В новой версии 4.6.7 ситуация немного изменилась. PHP не падает, но при исполнении этого же кода выбрасывается исключение ImagickException с текстом:
no decode delegate for this image format `image.jpg' @ error/constitute.c/ReadImage/550

Так же пробовал с разными файлами, результат один.

Аватара пользователя
Максим
Сообщения: 4877
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 13 окт 2012, 12:30

У меня такой код прекрасно работает:
$images = new Imagick(dirname(__FILE__)."/splash.jpg");

И даже создается превьюшка:
<?php
$images = new Imagick(dirname(__FILE__)."/splash.jpg");
//вычисляем масштаб сторон (хотим сделать с максимальной стороной 64)
$scale  = max($images->getImageWidth(), $images->getImageHeight()) / 64;
 
//вот этой фишки не хватает в примере из мануала на php.net
$images = $images->coalesceImages();
 
//вычисляем рамеры сторон с учетом масштаба
$width  = round($images->getImageWidth()  / $scale);
$height = round($images->getImageHeight() / $scale);
 
//и ресайзим каждый кадр в цикле
do {
        $images->scaleImage($width, $height);
} while ($images->nextImage());
 
//оптимизируем слои
$images->optimizeImageLayers();
 
//освобождаем память
$images = $images->deconstructImages();
 
//сохраняем анимацию в small.gif
$images->writeImages(dirname(__FILE__)."/small.gif", true);
?>

ufadev
Сообщения: 4
C нами: 3 года 9 мес

Непрочитанное сообщение ufadev » 19 фев 2013, 20:31

Возникла аналогичная проблема, как у товарища ossinkine.
win7, x64, php 5.3.21, open server 4.7.7

Вылечилось подсовыванием бинарников от последней версии ImageMagick 6.8.3 (x86) в директорию \modules\imagemagick .

Аватара пользователя
Максим
Сообщения: 4877
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 19 фев 2013, 20:41

ufadev писал(а):Возникла аналогичная проблема, как у товарища ossinkine.
win7, x64, php 5.3.21, open server 4.7.7

Вылечилось подсовыванием бинарников от последней версии ImageMagick 6.8.3 (x86) в директорию \modules\imagemagick .


Подсовывать никуда ничего не нужно, всё и так работает. А у товарища ossinkine ничего не работаело лишь потому, что он указывал не прямой путь до картинки целиком, а относительный.

ufadev
Сообщения: 4
C нами: 3 года 9 мес

Непрочитанное сообщение ufadev » 19 фев 2013, 20:48

Никаких изображений.
http://www.php.net/manual/en/imagick.examples-1.php
Example #4 Filling text with gradient
<?php
$im = new Imagick();
$im->newPseudoImage(50, 50, "gradient:red-black");
// ...

ловим
Uncaught exception 'ImagickException' with message 'NoDecodeDelegateForThisImageFormat `red-black' @ error/constitute.c/ReadImage/532' 

с бинарниками от 6.8.3, соотв-но не ловим.
кладем обратно бинарники, идущие с OS - история повторяется.

Аватара пользователя
Максим
Сообщения: 4877
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 19 фев 2013, 21:04

ufadev писал(а):Никаких изображений.
http://www.php.net/manual/en/imagick.examples-1.php
Example #4 Filling text with gradient
<?php
$im = new Imagick();
$im->newPseudoImage(50, 50, "gradient:red-black");
// ...

ловим
Uncaught exception 'ImagickException' with message 'NoDecodeDelegateForThisImageFormat `red-black' @ error/constitute.c/ReadImage/532' 

с бинарниками от 6.8.3, соотв-но не ловим.
кладем обратно бинарники, идущие с OS - история повторяется.


Не подтверждаю, всё работает прекрасно, ничего не валится. Так что смотрите у себя, что вы там с Open Server сделали. Может у вас в системе свой Imagick стоит, его нужно удалить.

ufadev
Сообщения: 4
C нами: 3 года 9 мес

Непрочитанное сообщение ufadev » 19 фев 2013, 21:19

Нет, Imagick отсутствовал на момент возникновения проблемы, в каком-либо виде. Но всё равно спасибо за попытку помочь. Проблема решена заменой файлов и более не беспокоит.


Вернуться в «Ошибки Open Server»

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и 0 гостей