我是第一次使用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图像