NEF到JPG与ImageMagick

时间:2015-03-26 05:58:08

标签: php image-processing imagemagick imagemagick-convert

我第一次使用ImageMagick,我已经设法安装了所有的依赖项,并且可以通过终端运行转换,但是我无法从PHP运行一些命令。

这是让我完全难过的一个,这在终端中很有用:

 convert DSC4741.nef result.jpg

但这不会在PHP中运行:

$im = new Imagick( 'DSC4741.nef' );
$im->setImageFormat( 'jpg' );
$im->writeImage( 'result.jpg' );
$im->clear();
$im->destroy();

我可以用PHP转换jpeg没有问题,但它拒绝使用.NEF。

这是我检查的内容:

  • 文件(世界可写)
  • 的权限很好
  • 我可以使用确切的代码
  • 转换JPG
  • 我将扩展程序更改为小写
  • 从文件名
  • 中删除了前面的下划线

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

问题似乎是你没有使用绝对路径。 使用 __ FILE __ 或Windows机器上的内容(您需要将反斜杠替换为forwardslash):

$im = new Imagick( str_replace('\\', '/', dirname(__FILE__)) . '/DSC4741.nef' );
$im->setImageFormat( 'jpg' );
$im->writeImage( str_replace('\\', '/', dirname(__FILE__)) . '/result.jpg' );
$im->clear();
$im->destroy();

如果这不能解决问题,可能没有在imagemagick中安装或链接用于转换此文件格式的外部程序。 见这里:Imagick is unable to open DNG images