如何在PHP中使用imagefilter()函数为图像应用滤镜?
imagefilter() 是PHP中一个内置函数,用于为图像应用指定的滤镜。
语法
bool imagefilter(resource $image, int $filtertype, int $arg1, int $arg2, int $arg3, int $arg4)
参数
imagefilter() 接受六个不同的参数 - $image、int $filtertype、int $arg1、int $arg2、int $arg3、int $arg4。
$image - 它保存图像资源。
$filtertype - 指定要使用的滤镜,它是一个整数。
以下是给定的不同图像滤镜常量:
IMG_FILTER_NEGATE - 反转图像的所有颜色。
IMG_FILTER_GRAYSCALE - 通过将红色、绿色和蓝色分量更改为它们的加权和,将图像转换为灰度。
IMG_FILTER_BRIGHTNESS - 更改图像的亮度。arg1 用于设置亮度级别。亮度的范围为 -255 到 255。
IMG_FILTER_CONTRAST - 更改图像的对比度。$arg1 用于设置对比度级别。
IMG_FILTER_COLORIZE - 此图像滤镜类似于 IMG_FILTER_GARYSCALE,除了我们可以指定颜色外,它使用参数 arg1、arg2 和 $arg3 以红色、绿色、蓝色的形式,而 arg4 用于 alpha 通道。每个颜色的范围为 0 到 255。
IMG_FILTER_EDGEDETECT - 此滤镜用于边缘检测,以突出显示图像中的边缘。
IMG_FILTER_GAUSSIAN_BLUR - 对图像应用高斯模糊。
IMG_FILTER_SELECTIVE_BLUR - 对图像应用选择性模糊。
IMG_FILTER_EMBOSS - 对图像应用浮雕效果。
IMG_FILTER_MEAN_REMOVAL - 去除图像噪点并提供素描效果。
IMG_FILTER_SMOOTH - 使图像更平滑。$arg1 用于设置平滑度级别。
IMG_FILTER_PIXELATE - 对图像应用像素化效果。$arg1 用于设置块大小,$arg2 用于设置像素化效果模式。
IMG_FILTR_SCATTER - 对图像应用散射效果。$arg1 和 arg2 用于定义效果强度,$arg3 用于应用于选定的像素颜色。
可选参数列表
arg1
IMG_FILTER_BRIGHTNESS - 用于亮度级别。
IMG_FILT_CONTRAST - 用于对比度级别。
IMG_FILTER_COLORIZE - 用于红色分量的值。
IMG_FILTER_SMOOTH - 用于平滑度级别。
IMG_FILTER_PIXELATE - 用于以像素为单位的块大小。
IMG_FILTER_SCATTER - 用于效果减法级别。
arg2
IMG_FILTER_COLORIZE - 用于蓝色分量的值。
IMG_FILTER_PIXELATE - 是否使用高级像素化效果(默认为 false)。
IMG_FILTER_SCATTER - 效果加法级别。
arg3
IMG_FILTER_COLORIZE - 用于蓝色分量的值。
IMG_FILTER_SCATTER - 可选的数组索引颜色值以应用效果。
arg4
IMG_FILTER_COLORIZE - Alpha 通道,0 到 127 之间的值。0 表示完全不透明,而 127 表示完全透明。
返回值
成功时返回 True,失败时返回 False。
示例 1
<?php // Load the gif image from the local drive folder. $img = imagecreatefromgif('C:\xampp\htdocs\Images\img39.gif'); // Colorize the image imagefilter($img, IMG_FILTER_COLORIZE, 140, 0, 140, 20); // Show the output image header('Content-type: image/gif'); imagepng($img); ?>
输出
示例 2
<?php // Load the gif image from the local drive folder. $img = imagecreatefromgif('C:\xampp\htdocs\Images\img39.gif'); // Negative the image imagefilter($img, IMG_FILTER_NEGATE); // Show the output image header('Content-type: image/gif'); imagepng($img); ?>