Imagick: невозможно открыть файл

При простом вызове класса Imagick:

$image = new Imagick('/images/magick/atmsk.png');

Я получаю сообщение об ошибке:

Неустранимая ошибка: необработанное исключение «ImagickException» с сообщением «невозможно открыть файл «/images/magick/atmsk.png» @ png.c/ReadPNGImage/2889» в .../imag.php:4 Трассировка стека: #0 . ../imag.php(4): Imagick->__construct('/images/magick/...') #1 {main} брошен в .../imag.php

Я проверил доступную память в соответствии с другой публикацией здесь, и все в порядке!


person Dzseti    schedule 16.03.2013    source источник
comment
что произойдет, если вы используете полный путь к файлу изображения, например что-то вроде $_SERVER['DOCUMENT_ROOT'] . '/images/magick/atmsk.png'   -  person gmartellino    schedule 16.03.2013
comment
Затем $image показывает объект Imagick !! Это была проблема ... спасибо за быструю помощь   -  person Dzseti    schedule 16.03.2013


Ответы (1)


Используйте полный путь к изображению, например:

$image = new Imagick($_SERVER['DOCUMENT_ROOT'] . '/images/magick/atmsk.png');
person gmartellino    schedule 16.03.2013
comment
Я пробовал следующее и все еще получаю сообщение об ошибке: $im = new Imagick(); $im->readImage(realpath($path)); - person Anriëtte Myburgh; 03.06.2015
comment
это может быть полезно для некоторых: $imagemagickisawful=substr($_SERVER['SCRIPT_FILENAME'], 0, strrpos($_SERVER['SCRIPT_FILENAME'], "/") )."/"; затем используйте $imagemagickisawful.$your_path_you_would_use_otherwise - person user151496; 26.06.2015
comment
Удивительно, сработало как шарм... Вот мой код, который я использовал: Но не забудьте упомянуть имя вашего сайта в коде следующим образом: Ввод: $im = new Imagick($_SERVER['DOCUMENT_ROOT'] . '/site.com/images/image.jpg'); Вывод: $im->writeImages($_SERVER['DOCUMENT_ROOT'] . '/site.com/images/image.jpg', true); и это сработало как шарм :) - person Jodyshop; 16.08.2019