【问题标题】:Imagick exception "unable to open image" when converting a CR2 or NEF转换 CR2 或 NEF 时出现 Imagick 异常“无法打开图像”
【发布时间】:2017-08-30 11:05:48
【问题描述】:

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

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

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

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

相同的代码完美适用于 jpg 甚至 .HDR 文件。

注意:图像文件似乎不错。我用其他 .cr2 进行了测试,以确保它不是文件本身的问题。

有什么想法吗? 谢谢。

【问题讨论】:

  • 您需要安装dcrawimagemagick.org/Usage/formats/#crw
  • 您可能需要安装ufraw
  • 好的。 dcraw 还是 ufraw ?哪个最好?
  • 好的。我安装了 ufraw,但我的问题仍然存在:我的问题代码仍然返回相同的错误。有什么办法可以“链接” ufraw 和 imagick 吗?
  • @PaxMaximinus 现在试试dcraw

标签: php imagemagick imagick


【解决方案1】:

好吧,我解决了。

我必须安装 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

这将为您提供程序所在的文件夹,并在每个文件夹上尝试“ls”。你会找到 ufraw-batch ,然后是它的绝对路径。

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

【讨论】:

  • 在 Lubuntu 上,安装 ufraw 为我解决了这个问题,sudo apt-get install ufraw,然后是 convert img.cr2 img.jpeg。瞧!谢谢。
猜你喜欢
  • 1970-01-01
  • 2015-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 1970-01-01
  • 2017-12-04
  • 2017-05-13
相关资源
最近更新 更多