如何在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 - 对图像应用散射效果。$arg1arg2 用于定义效果强度,$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);
?>

输出

更新于: 2021年8月9日

742 次查看

启动您的职业生涯

通过完成课程获得认证

开始学习
广告