PHP-GD:模糊图像的一部分

时间:2013-11-21 07:30:58

标签: php php-gd

我需要模糊图像的一部分 我能够将一部分变黑,但我需要模糊这一点 有人可以举例说明如何运作吗?

Webcam

2 个答案:

答案 0 :(得分:2)

您必须应用image convolutionwiki)。

模糊矩阵是:

enter image description here

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),请不要忘记使用正确的函数重命名imagecreatefromjpegimagejpeg

答案 1 :(得分:0)

或者您可以使用imagefilterhttp://php.net/manual/en/function.imagefilter.php

imagefilter($image, IMG_FILTER_GAUSSIAN_BLUR)