PHP:使用imagemagick将图像转换为TIFF

时间:2011-01-18 20:28:30

标签: php imagemagick

我正在尝试使用imagemagick将图像转换为tiff,但在尝试编写文件时遇到了问题。我收到一条错误消息:

  

无法打开图片...   误差/ blob.c / OpenBlob / 2584'

这是我正在使用的代码:

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

$ image只是我传递给图像文件的网址。我只是运行一个简单的测试函数来使其工作并将test.tiff放在同一个文件夹中。我在这里做错了什么?无法在此找到大量文档。

2 个答案:

答案 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();