我找到了:https://code.tutsplus.com/tutorials/create-instagram-filters-with-php--net-24504
将过滤器应用于图像的酷脚本(instagran = m' s):
error_reporting(ALL);
//phpinfo();
class Instagraph
{
public $_image = NULL;
public $_output = NULL;
public $_prefix = 'IMG';
private $_width = NULL;
private $_height = NULL;
private $_tmp = NULL;
public static function factory($image, $output)
{
return new Instagraph($image, $output);
}
public function __construct($image, $output)
{
if(file_exists($image))
{
$this->_image = $image;
list($this->_width, $this->_height) = getimagesize($image);
$this->_output = $output;
}
else
{
throw new Exception('File not found. Aborting.');
}
}
public function tempfile()
{
# copy original file and assign temporary name
$this->_tmp = $this->_prefix.rand();
copy($this->_image, $this->_tmp);
}
public function output()
{
# rename working temporary file to output filename
rename($this->_tmp, $this->_output);
}
public function execute($command)
{
# remove newlines and convert single quotes to double to prevent errors
$command = str_replace(array("\n", "'"), array('', '"'), $command);
$command = escapeshellcmd($command);
# execute convert program
exec($command);
}
/** ACTIONS */
public function colortone($input, $color, $level, $type = 0)
{
$args[0] = $level;
$args[1] = 100 - $level;
$negate = $type == 0? '-negate': '';
$this->execute("convert
{$input}
( -clone 0 -fill '$color' -colorize 100% )
( -clone 0 -colorspace gray $negate )
-compose blend -define compose:args=$args[0],$args[1] -composite
{$input}");
}
public function border($input, $color = 'black', $width = 20)
{
$this->execute("convert $input -bordercolor $color -border {$width}x{$width} $input");
}
public function frame($input, $frame)
{
$this->execute("convert $input ( '$frame' -resize {$this->_width}x{$this->_height}! -unsharp 1.5×1.0+1.5+0.02 ) -flatten $input");
}
public function vignette($input, $color_1 = 'none', $color_2 = 'black', $crop_factor = 1.5)
{
$crop_x = floor($this->_width * $crop_factor);
$crop_y = floor($this->_height * $crop_factor);
$this->execute("convert
( {$input} )
( -size {$crop_x}x{$crop_y}
radial-gradient:$color_1-$color_2
-gravity center -crop {$this->_width}x{$this->_height}+0+0 +repage )
-compose multiply -flatten
{$input}");
}
}
try
{
$instagraph = Instagraph::factory('input.jpg', 'output.jpg');
}
catch (Exception $e)
{
echo $e->getMessage();
die;
}
// loop through all filters
foreach(array('gotham', 'toaster', 'nashville', 'lomo', 'kelvin') as $method)
{
$instagraph->_output = $method.'.jpg'; // we have to change output file to prevent overwrite
$instagraph->$method(); // apply current filter (from array)
}
在服务器上我安装了GD和ImageMagick。
在屏幕上运行脚本后,没有任何反应(我有一个白色屏幕) - 没有错误等。 照片也不会产生wink.gif知道有人可以为什么会发生这种情况?
答案 0 :(得分:0)
我按照说明进行操作:"这些效果很容易使用!我假设你保存了instagraph.php文件中的所有代码。现在,创建一个名为filter.php的文件,并复制下面适合您的代码。"
代码还将输入图像硬编码为input.jpg,您需要在同一文件夹中。