我尝试使用 imagik 将 .CR2 或 .NEF 文件转换为 jpg。
ImageMagik 已安装在服务器上。 我的代码:
$im = new Imagick( 'canonRaw_test.CR2' );
$im->setImageFormat( 'jpg' );
$im->writeImage( 'canonRaw_test.jpg' );
$im->clear();
$im->destroy();
它返回: fatal error :未捕获异常“ImagickException”,消息“无法打开图像`/var/tmp/magick-80620Kc-ZP09ux4Rc.ppm”:没有这样的文件或目录@ error/blob.c/OpenBlob/2658'强>
相同的代码可以完美地处理 jpg 甚至 .HDR 文件。
注意:图像文件似乎不错。我用其他 .cr2 进行了测试,以确保这不是文件本身造成的问题。
有什么想法吗? 谢谢。
最佳答案
好吧,我解决了。
我必须安装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=""ufraw-batch" --silent --create-id=also --out-type=png --out-depth=16 "--output=%u.png" "%i""/>
使用ufraw-batch的绝对路径:
command=""ufraw-batch"
替换为:
command=""/usr/bin/ufraw-batch"
为了找到我使用的绝对路径
locate ufraw-batch
如果它没有显示位置,请使用:
echo $PATH
这将为您提供程序所在的文件夹,并在每个文件夹上尝试使用“ls”。您将找到 ufraw-batch 及其绝对路径。
我花了 2 天的时间来实现这一点,因为我不习惯使用命令行。希望它可以帮助将来的人。
关于php - 转换 CR2 或 NEF 时出现 Imagick 异常 "unable to open image",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45958767/