PHP: преобразование изображения в формат TIFF с помощью imagemagick - PullRequest
2 голосов
/ 18 января 2011

Я пытаюсь преобразовать изображение в формат tiff с помощью imagemagick, но у меня возникла проблема при записи файла. Я получаю сообщение об ошибке:

Невозможно открыть изображение ... ошибка / blob.c / OpenBlob / 2584'

Это код, который я использую:

$im2 = new Imagick($image);
$im2->setImageFormat("tiff");
$im2->setImageColorSpace(5); 
$im2->writeImage("test.tiff");

$ image - это просто URL, который я передаю в файл изображения. Я просто запускаю простую тестовую функцию, чтобы заставить ее работать и поместить test.tiff в ту же папку. Что я могу здесь делать не так? Не удается найти много документации по этому вопросу.

Ответы [ 2 ]

2 голосов
/ 27 апреля 2012

Imagick работает с локальными и удаленными файлами.

$im2 = new Imagick($image);
$im2->setImageFormat("tiff");
$im2->setImageColorSpace(5); 
$im2->writeImage("test.tiff");

Это будет одинаково хорошо работать как на удаленном, так и на локальном сервере. Pfunc уже сказал, что это ошибка прав доступа. Другим случаем, когда возникает эта ошибка, является неправильное определение каталога. извините мой en

0 голосов
/ 18 января 2011

Аргументом конструктора Imagick является загрузка локального файла изображения. Чтобы загрузить файл удаленного изображения, вы должны создать экземпляр объекта Imagick без аргументов и либо:

  • загрузите содержимое изображения и передайте его методу readImageBlob или
  • fopen URL и передайте его методу readImageFile.

Например:

// assuming $image is an URL or path to a local file
$handle = fopen($image, 'rb');
$im2 = new Imagick();
$im2->readImageFile($handle);
$im2->setImageFormat("tiff");
$im2->setImageColorSpace(5);
$im2->writeImage("test.tiff");
fclose($handle);
$im2->destroy();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...