想象异常"无法打开图像"转换CR2或NEF时

时间:2017-08-30 11:05:49

标签: php imagemagick imagick

我尝试使用imagik将.CR2或.NEF文件转换为jpg。

ImageMagik安装在服务器上。 我的代码:

$im = new Imagick( 'canonRaw_test.CR2' );
$im->setImageFormat( 'jpg' );
$im->writeImage( 'canonRaw_test.jpg' );
$im->clear();
$im->destroy();

它返回:     致命错误:未捕获的异常&#39; ImagickException&#39;消息&#39;无法打开图像`/var/tmp/magick-80620Kc-ZP09ux4Rc.ppm' ;:没有这样的文件或目录@ error / blob.c / OpenBlob / 2658&#39; < / p>

相同的代码与jpg甚至.HDR文件完美配合。

注意:图像文件似乎很好。我测试了其他.cr2,以确保它不是问题,因为文件本身。

任何想法? 感谢。

1 个答案:

答案 0 :(得分:2)

好吧,我解决了。

我必须安装ufraw。 在CentOS上:

rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
yum install libjpeg-turbo dcraw perl-Image-ExifTool
yum install ufraw

然后更新imageMagick的delegates.xml:

<delegate decode="dng:decode" command="&quot;ufraw-batch&quot; --silent --create-id=also --out-type=png --out-depth=16 &quot;--output=%u.png&quot; &quot;%i&quot;"/>

使用ufraw-batch的绝对路径:

command="&quot;ufraw-batch&quot;

替换为:

command="&quot;/usr/bin/ufraw-batch&quot;

要找到我使用的绝对路径

locate ufraw-batch

如果它没有显示位置,请使用:

echo $PATH

它将为您提供程序所在的文件夹,并尝试&#34; ls&#34;他们每个人。你会发现ufraw-batch然后它的绝对路径。

我花了2天时间来实现这一目标,因为我不习惯使用命令行。希望它可以在将来帮助某人。