我需要模糊图像的一部分 我能够将一部分变黑,但我需要模糊这一点 有人可以举例说明如何运作吗?
答案 0 :(得分:2)
您必须应用image convolution
(wiki)。
模糊矩阵是:
PHP代码:
$gaussian = array(
array(1.0, 2.0, 1.0),
array(2.0, 4.0, 2.0),
array(1.0, 2.0, 1.0)
);
imageconvolution($YOUR_IMAGE, $gaussian, 16, 0); // apply convolution
一个完整的例子:
<?php
// Informations for blur selection
$x = 180;
$y = 20;
$width = 200;
$height = 180;
$img1 = imagecreatefromjpeg('img1.jpg'); // load source
$img2 = imagecreatetruecolor($width, $height); // create img2 for selection
imagecopy($img2, $img1, 0, 0, $x, $y, $width, $height); // copy selection to img2
$gaussian = array(
array(1.0, 2.0, 1.0),
array(2.0, 4.0, 2.0),
array(1.0, 2.0, 1.0)
);
imageconvolution($img2, $gaussian, 16, 0); // apply convolution to img2
imagecopymerge($img1, $img2, $x, $y, 0, 0, $width, $height, 100); // merge img2 in img1
// Show result (img1)
header('Content-Type: image/jpg');
imagejpeg($img1);
imagedestroy($img1);
imagedestroy($img2);
如果您使用png或gif(请参阅php man),请不要忘记使用正确的函数重命名imagecreatefromjpeg
和imagejpeg
。
答案 1 :(得分:0)
或者您可以使用imagefilter
:http://php.net/manual/en/function.imagefilter.php
imagefilter($image, IMG_FILTER_GAUSSIAN_BLUR)