我正在尝试使用imagemagick将图像转换为tiff,但在尝试编写文件时遇到了问题。我收到一条错误消息:
无法打开图片... 误差/ blob.c / OpenBlob / 2584'
这是我正在使用的代码:
$im2 = new Imagick($image);
$im2->setImageFormat("tiff");
$im2->setImageColorSpace(5);
$im2->writeImage("test.tiff");
$ image只是我传递给图像文件的网址。我只是运行一个简单的测试函数来使其工作并将test.tiff放在同一个文件夹中。我在这里做错了什么?无法在此找到大量文档。
答案 0 :(得分:2)
Imagick适用于本地文件和远程文件。
$im2 = new Imagick($image);
$im2->setImageFormat("tiff");
$im2->setImageColorSpace(5);
$im2->writeImage("test.tiff");
它在远程和本地服务器上同样有效。 pfunc已经说过权限错误了。 发生此错误的另一种情况是错误地定义了目录。 抱歉,我的
答案 1 :(得分:0)
Imagick
构造函数的参数是加载本地图像文件。要加载远程映像文件,您应该实例化一个没有参数的Imagick
对象,并且:
readImageBlob
方法或fopen
网址并将其传递给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();