在Windows环境中使用PHP Imagick运行Fred的ImageMagick脚本

时间:2017-09-22 05:40:57

标签: php imagemagick imagick

我是ImageMagick的新手,我最近发现了这个名为 Fred的ImageMagick Scripts

的精彩教程资源

但是,我想知道如何在Windows环境(WAMP)上使用这些脚本和PHP Imagick扩展。

例如,这是Fred的脚本,用于校正图像的伽玛。

USAGE: autogamma [-c colormode] infile outfile
USAGE: autogamma [-h or -help]

-c .... colormode ..... colorspace/channel to use to compute 
....................... gamma statistics; choices are: gray, 
....................... intensity, luminance, lightness, brightness, 
....................... average, magnitude, rgb; default=luminance 
-m .... midrange ...... midrange value from which to compute gamma; 
....................... 0<float<1; default=0.5

这是 Fred的脚本页面中唯一可用的代码。

现在,我在这里创建一个新的Imagick对象并使用 Fred的脚本读取我要编辑的特定图像。

$im = new Imagick();
$im->readImage( $imagePath );

那么,从以后开始,如何链接这两个脚本?如何将Fred的脚本添加到我的Imagick对象中?

是否需要安装任何其他软件或库?还是需要导入的文件?

更新

$result = chmod("2colorthresh", 0777); 
echo $result;

$result2 = exec("2colorthresh -help"); 
echo $result2;

对于第一个回声,我得到1.因为我认为是真的。

但是对于第二个回声,我什么都没得到。

2 个答案:

答案 0 :(得分:3)

你不能/不需要在Imagemagick或Imagick中运行Freds脚本,因为它们是独立的bash脚本。

您可能需要安装Cygwin或类似软件,因为某些Linux类型的功能在Windows localhost环境中不可用。

如果您确实在Windows上运行了所有设置并希望使用php,那么您首先需要将脚本CHMOD到777或者您需要对权限做什么,然后使用这样的代码:

exec("/FULL PATH TO/script.sh input.png output.png

答案 1 :(得分:1)

我的脚本不能在Imagick中运行。您可以使用PHP exec()运行它们。

尝试类似:

<?php
exec("bash 2colorthresh logo: logo.gif 2>&1",$out,$returnval);
foreach($out as $text)
{echo "$text<br>";}
?>

如果失败,请根据需要提供2colorthresh的完整路径和图像。如果您下载的文件附加了.sh,则重命名它或在命令中使用2colorthresh.sh。