Php 使用ImageMagick从NEF到JPG

Php 使用ImageMagick从NEF到JPG,php,image-processing,imagemagick,imagemagick-convert,Php,Image Processing,Imagemagick,Imagemagick Convert,我第一次使用ImageMagick,我已经成功安装了所有依赖项,并且可以通过终端运行convert,但是我在从PHP运行一些命令时遇到了问题 这是一个让我完全困惑的问题,它在终端非常有效: convert DSC4741.nef result.jpg 但这不会在PHP中运行: $im = new Imagick( 'DSC4741.nef' ); $im->setImageFormat( 'jpg' ); $im->writeImage( 'result.jpg' ); $im-

我第一次使用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
  • 我将扩展名改为小写
  • 从文件名中删除了前面的下划线

任何帮助都将不胜感激

问题似乎是您没有使用绝对路径。 使用类似于\uuuuu FILE\uuuuu或在Windows计算机上使用(您需要将反斜杠替换为正斜杠):

如果这无法解决问题,则可能未在imagemagick中安装或链接用于转换此文件格式的外部程序。
看这里:

我很好奇,因为你没有说。当您使用.nef执行此操作时会发生什么情况?是否有任何错误?会发生什么^^NEF文件的大小可能为30+MB,因此您可能会遇到空间问题。只是为了进行测试,在读入图像之前,尝试将图像大小设置得小得多,比如说1024x768,看看这是否有帮助。。。使用
$im->setSize()
@Jon我刚得到一个空白页,浏览器控制台给我一个500内部服务器错误。@MarkSetchell我试着输入800x600,但它仍然在做同样的事情:-(您是在OS X、Linux还是Windows上运行?您是在Apache中运行PHP,还是仅使用独立脚本,如
#!/usr/bin/PHP
$im = new Imagick( str_replace('\\', '/', dirname(__FILE__)) . '/DSC4741.nef' );
$im->setImageFormat( 'jpg' );
$im->writeImage( str_replace('\\', '/', dirname(__FILE__)) . '/result.jpg' );
$im->clear();
$im->destroy();