(PHP 5, PHP 7)
imagefilter — 锟斤拷图锟斤拷使锟矫癸拷锟斤拷锟斤拷
$src_im
, int $filtertype
[, int $arg1
[, int $arg2
[, int $arg3
]]] ) : bool
imagefilter() 锟窖癸拷锟斤拷锟斤拷
filtertype
应锟矫碉拷图锟斤拷锟较o拷锟斤拷锟斤拷要时使锟斤拷
arg1
锟斤拷arg2
锟斤拷
arg3
锟斤拷
filtertype
锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟叫碉拷一锟斤拷锟斤拷
IMG_FILTER_NEGATE
锟斤拷锟斤拷图锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷色锟斤拷转锟斤拷
IMG_FILTER_GRAYSCALE
锟斤拷锟斤拷图锟斤拷转锟斤拷为锟揭度的★拷
IMG_FILTER_BRIGHTNESS
锟斤拷锟侥憋拷图锟斤拷锟斤拷锟斤拷取锟斤拷锟�
arg1
锟借定锟斤拷锟饺硷拷锟斤拷
IMG_FILTER_CONTRAST
锟斤拷锟侥憋拷图锟斤拷亩员榷取锟斤拷锟�
arg1
锟借定锟皆比度硷拷锟斤拷
IMG_FILTER_COLORIZE
锟斤拷锟斤拷
IMG_FILTER_GRAYSCALE
锟斤拷锟狡o拷锟斤拷锟斤拷锟斤拷锟斤拷指锟斤拷锟斤拷色锟斤拷锟斤拷
arg1
锟斤拷arg2
锟斤拷
arg3
锟街憋拷指锟斤拷
red
锟斤拷blue
锟斤拷
green
锟斤拷每锟斤拷锟斤拷色锟斤拷围锟斤拷 0 锟斤拷 255锟斤拷
IMG_FILTER_EDGEDETECT
锟斤拷锟矫憋拷缘锟斤拷锟斤拷锟酵伙拷锟酵硷拷锟侥憋拷缘锟斤拷
IMG_FILTER_EMBOSS
锟斤拷使图锟今浮雕化★拷
IMG_FILTER_GAUSSIAN_BLUR
锟斤拷锟矫革拷斯锟姐法模锟斤拷图锟斤拷
IMG_FILTER_SELECTIVE_BLUR
锟斤拷模锟斤拷图锟斤拷
IMG_FILTER_MEAN_REMOVAL
锟斤拷锟斤拷平锟斤拷锟狡筹拷锟斤拷锟斤拷锟斤到锟斤拷锟斤拷效锟斤拷锟斤拷
IMG_FILTER_SMOOTH
锟斤拷使图锟斤拷锟斤拷峄拷锟斤拷锟�
arg1
锟借定锟结滑锟斤拷锟斤拷
Note: 锟剿猴拷锟斤拷锟斤拷锟斤拷锟斤拷 GD 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 PHP 锟芥本锟叫匡拷锟矫★拷
锟缴癸拷时锟斤拷锟斤拷 TRUE
锟斤拷 锟斤拷锟斤拷锟斤拷失锟斤拷时锟斤拷锟斤拷 FALSE
锟斤拷
Example #1 imagefilter() 锟揭讹拷锟斤拷锟斤拷
<?php
$im = imagecreatefrompng('dave.png');
if ($im && imagefilter($im, IMG_FILTER_GRAYSCALE)) {
echo 'Image converted to grayscale.';
imagepng($im, 'dave.png');
} else {
echo 'Conversion to grayscale failed.';
}
imagedestroy($im);
?>
Example #2 imagefilter() 锟斤拷锟斤拷锟斤拷锟斤拷
<?php
$im = imagecreatefrompng('sean.png');
if ($im && imagefilter($im, IMG_FILTER_BRIGHTNESS, 20)) {
echo 'Image brightness changed.';
imagepng($im, 'sean.png');
} else {
echo 'Image brightness change failed.';
}
imagedestroy($im);
?>
Example #3 imagefilter() 锟较诧拷锟斤拷锟斤拷
<?php
$im = imagecreatefrompng('philip.png');
/* R, G, B, so 0, 255, 0 is green */
if ($im && imagefilter($im, IMG_FILTER_COLORIZE, 0, 255, 0)) {
echo 'Image successfully shaded green.';
imagepng($im, 'philip.png');
} else {
echo 'Green shading failed.';
}
imagedestroy($im);
?>
image
锟斤拷图锟襟创斤拷锟斤拷锟斤拷(锟斤拷锟斤拷imagecreatetruecolor())锟斤拷锟截碉拷图锟斤拷锟斤拷源锟斤拷
filtertype
filtertype
can be one of the following:
IMG_FILTER_NEGATE
: Reverses all colors of
the image.
IMG_FILTER_GRAYSCALE
: Converts the image into
grayscale.
IMG_FILTER_BRIGHTNESS
: Changes the brightness
of the image. Use arg1
to set the level of
brightness.
IMG_FILTER_CONTRAST
: Changes the contrast of
the image. Use arg1
to set the level of
contrast.
IMG_FILTER_COLORIZE
: Like
IMG_FILTER_GRAYSCALE
, except you can specify the
color. Use arg1
, arg2
and
arg3
in the form of
red
, blue
,
green
and arg4
for the
alpha
channel. The range for each color is 0 to 255.
IMG_FILTER_EDGEDETECT
: Uses edge detection to
highlight the edges in the image.
IMG_FILTER_EMBOSS
: Embosses the image.
IMG_FILTER_GAUSSIAN_BLUR
: Blurs the image using
the Gaussian method.
IMG_FILTER_SELECTIVE_BLUR
: Blurs the image.
IMG_FILTER_MEAN_REMOVAL
: Uses mean removal to
achieve a "sketchy" effect.
IMG_FILTER_SMOOTH
: Makes the image smoother.
Use arg1
to set the level of smoothness.
IMG_FILTER_PIXELATE
: Applies pixelation effect
to the image, use arg1
to set the block size
and arg2
to set the pixelation effect mode.
arg1
IMG_FILTER_BRIGHTNESS
: Brightness level.
IMG_FILTER_CONTRAST
: Contrast level.
IMG_FILTER_COLORIZE
: 锟斤拷色锟缴分碉拷值锟斤拷
IMG_FILTER_SMOOTH
: Smoothness level.
IMG_FILTER_PIXELATE
: Block size in pixels.
arg2
IMG_FILTER_COLORIZE
: 锟斤拷色锟缴分碉拷值锟斤拷
IMG_FILTER_PIXELATE
: Whether to use advanced pixelation
effect or not (defaults to FALSE
).
arg3
IMG_FILTER_COLORIZE
: 锟斤拷色锟缴分碉拷值锟斤拷
arg4
IMG_FILTER_COLORIZE
: Alpha channel, A value
between 0 and 127. 0 indicates completely opaque while 127 indicates
completely transparent.
锟缴癸拷时锟斤拷锟斤拷 TRUE
锟斤拷 锟斤拷锟斤拷锟斤拷失锟斤拷时锟斤拷锟斤拷 FALSE
锟斤拷
锟芥本 | 说锟斤拷 |
---|---|
5.3.0 |
Pixelation support (IMG_FILTER_PIXELATE ) was added.
|
5.2.5 |
Alpha support for IMG_FILTER_COLORIZE was added.
|
Example #4 imagefilter() grayscale example
<?php
$im = imagecreatefrompng('dave.png');
if($im && imagefilter($im, IMG_FILTER_GRAYSCALE))
{
echo 'Image converted to grayscale.';
imagepng($im, 'dave.png');
}
else
{
echo 'Conversion to grayscale failed.';
}
imagedestroy($im);
?>
Example #5 imagefilter() brightness example
<?php
$im = imagecreatefrompng('sean.png');
if($im && imagefilter($im, IMG_FILTER_BRIGHTNESS, 20))
{
echo 'Image brightness changed.';
imagepng($im, 'sean.png');
imagedestroy($im);
}
else
{
echo 'Image brightness change failed.';
}
?>
Example #6 imagefilter() colorize example
<?php
$im = imagecreatefrompng('philip.png');
/* R, G, B, so 0, 255, 0 is green */
if($im && imagefilter($im, IMG_FILTER_COLORIZE, 0, 255, 0))
{
echo 'Image successfully shaded green.';
imagepng($im, 'philip.png');
imagedestroy($im);
}
else
{
echo 'Green shading failed.';
}
?>
Example #7 imagefilter() negate example
<?php
// Define our negate function so its portable for
// php versions without imagefilter()
function negate($im)
{
if(function_exists('imagefilter'))
{
return imagefilter($im, IMG_FILTER_NEGATE);
}
for($x = 0; $x < imagesx($im); ++$x)
{
for($y = 0; $y < imagesy($im); ++$y)
{
$index = imagecolorat($im, $x, $y);
$rgb = imagecolorsforindex($index);
$color = imagecolorallocate($im, 255 - $rgb['red'], 255 - $rgb['green'], 255 - $rgb['blue']);
imagesetpixel($im, $x, $y, $color);
}
}
return(true);
}
$im = imagecreatefromjpeg('kalle.jpg');
if($im && negate($im))
{
echo 'Image successfully converted to negative colors.';
imagejpeg($im, 'kalle.jpg', 100);
imagedestroy($im);
}
else
{
echo 'Converting to negative colors failed.';
}
?>
Example #8 imagefilter() pixelate example
<?php
// Load the PHP logo, we need to create two instances
// to show the differences
$logo1 = imagecreatefrompng('./php.png');
$logo2 = imagecreatefrompng('./php.png');
// Create the image instance we want to show the
// differences on
$output = imagecreatetruecolor(imagesx($logo1) * 2, imagesy($logo1));
// Apply pixelation to each instance, with a block
// size of 3
imagefilter($logo1, IMG_FILTER_PIXELATE, 3);
imagefilter($logo2, IMG_FILTER_PIXELATE, 3, true);
// Merge the differences onto the output image
imagecopy($output, $logo1, 0, 0, 0, 0, imagesx($logo1) - 1, imagesy($logo1) - 1);
imagecopy($output, $logo2, imagesx($logo2), 0, 0, 0, imagesx($logo2) - 1, imagesy($logo2) - 1);
imagedestroy($logo1);
imagedestroy($logo2);
// Output the differences
header('Content-Type: image/png');
imagepng($output);
imagedestroy($output);
?>
锟斤拷锟斤拷锟斤拷锟教碉拷锟斤拷锟斤拷锟斤拷锟斤拷冢锟�
Note: 锟剿猴拷锟斤拷锟斤拷锟斤拷锟斤拷 GD 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 PHP 锟芥本锟叫匡拷锟矫★拷