使用ImageMagick将NEF转换为JPG


NEF to JPG with ImageMagick

我是第一次使用ImageMagick,我已经安装了所有的依赖项,并且可以通过终端运行convert,但我在从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
  • 我将扩展名改为小写
  • 从文件名中删除了前面的下划线

任何帮助都将不胜感激!

问题似乎是您没有使用绝对路径。使用类似__FILE__的东西或在Windows机器上(您需要将反斜杠替换为正斜杠):

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

如果这不能解决问题,那么可能没有在imagemagik中安装或链接用于转换此文件格式的外部程序。请参阅此处:Imagick无法打开DNG图像