
- PHP ImageMagick 教程
- PHP ImageMagick - 主页
- PHP ImageMagick - 简介
- 背景颜色
- 图像反射
- 图像裁剪
- 图像边框
- 调整图像大小
- 合成图像
- 对比度和亮度
- 增强与均衡
- 锐化和模糊
- 图像平铺
- 图像阈值
- 修改颜色
- 不同的效果
- 保护图像
- 草图模拟
- 编辑外观
- 旋转和滚动
- 拼接与铺展
- 杂项功能
- PHP ImageMagick 有用资源
- PHP ImageMagick - 快速指南
- PHP ImageMagick - 资源
- PHP ImageMagick - 讨论
PHP ImageMagick - 锐化和模糊
锐化成像
为了使图像看起来更清晰,Imagemagick 提供了一个内置函数“adaptiveSharpenImage()”,可以自适应地锐化图像。它将图像作为输入并生成锐化图像作为输出。
此方法使用算法来检测图像中应应用锐化的区域,并相应地调整锐化量。与均匀锐化技术相比,这可以获得更自然的结果,而不会牺牲质量或在图像中引入伪影。
句法
public Imagick::adaptiveSharpenImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool
该函数由半径、西格玛和通道三个参数组成。
Radius 是一个浮点值,指定高斯的半径(以像素为单位),不包括中心像素。
Sigma 是一个浮点值,指定高斯的标准差(以像素为单位)。
Channel 提供对您的通道模式有效的任何通道常量。
例子
为了清楚地了解如何实现这个功能,请看下面的例子。此代码创建一个 imagick 对象并输入图像。然后,应用“adaptiveSharpenImage()”函数以及所需的参数(半径=19,sigma=15)。输出图像以“adaptiveSharpenImage.png”的形式获得。
<?php $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.png"); $image->adaptiveSharpenImage(19,15); $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/adaptiveSharpenImage.png"); ?>
假设以下是程序中的输入图像(image.png) -

输出

图像模糊
模糊图像可以使颜色过渡平滑。通过模糊,像素强度的快速变化被平均。在本章中,您将学习借助 Imagemagick 提供的内置函数来模糊图像的不同方法。
PHP Image magick 库提供了一系列强大的函数,使用它们我们可以执行各种操作,包括模糊、调整大小、裁剪等。使用 PHP Imagemagick,您只需几行代码即可轻松模糊图像。
您还可以调整模糊的强度以及其他几个设置以达到所需的效果。无论您是在照片中寻找微妙还是戏剧性的变化,PHP Imagemagick 都能满足您创建令人惊叹的结果所需的一切!
添加模糊滤镜
为了在图像上添加模糊滤镜,Imagemagick 提供了一个名为'blurImage()'的方法。它将图像作为输入并生成/返回模糊图像。
句法
public Imagick::blurImage(float $radius, float $sigma, int $channel = ?): bool
该函数有 3 个参数:半径、西格玛和通道。
Radius是一个浮点值,指定需要模糊的半径。
西格玛是一个浮点值,指定标准差。
通道指定通道类型常量。当未指定通道时,所有通道都将被模糊。
例子
在下面的示例中,创建了一个新的 imagick 对象,并将图像作为输入。然后,应用“blurImage()”函数来模糊图像。半径和西格玛是函数内部指定的参数(半径=25,西格玛=5)。模糊图像以“blurImage.png”形式作为输出获得。
<?php $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.png"); $image->blurImage(25, 5); $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/blurImage.png"); ?>
假设以下是程序中的输入图像(image.png) -

输出

以一定角度应用模糊
Imagemagick 的“rotationalImageBlur()”函数可用于图像处理,允许用户以任何角度对图像应用模糊效果。它接受输入图像并生成具有所需模糊程度的模糊版本。
句法
public Imagick::rotationalBlurImage(float $angle, int $channel =Imagick::CHANNEL_DEFAULT):bool
该函数包含两个参数:角度和通道。
Angle 是一个浮点值,用于存储角度。
通道是一个对您的通道模式有效的常量。
例子
在下面的 PHP 代码示例中,创建了一个新的 imagick 对象,并将图像作为输入。然后,应用“rotationalBlurImage()”函数在某个角度上模糊图像 (15)。模糊图像以“rotationalBlurImage.png”形式作为输出获得。
<?php $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.png"); $image->rotationalBlurImage (15); $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/rotationalBlurImage.png"); ?>
假设以下是程序中的输入图像(image.png) -

输出

模拟运动模糊
在图像中的移动物体中看到的模糊称为“运动模糊”。为了模拟运动模糊,Imagemagick 提供了一个内置函数“motionBlurImage()”。它将图像作为输入并生成运动模糊图像作为输出。
句法
public Imagick::motionBlurImage(float $radius, float $sigma, float $angle, int $channel =Imagick::CHANNEL_DEFAULT): bool
该函数包含 4 个参数,分别是半径、西格玛、角度和通道。
Radius 是一个浮点值,指定不包括中心像素的高斯半径(以像素为单位)。
sigma 是一个浮点值,指定高斯的标准差(以像素为单位)。
angle 也是一个浮点值,它指定模糊运动的角度。
Channel 是一个对您的通道模式有效的常量。
例子
在下面的示例中,创建了一个新的 Imagick 对象,并将图像作为输入。然后应用“motionBlurImage()”函数以半径 (20)、西格玛 (20) 和角度 (45) 作为参数来模糊图像。结果,可以以“motionBlurImage.png”的形式获得原始图像的模糊版本。
<?php $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.png"); $image->motionBlurImage(20, 20, 45); $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/motionBlurImage.png"); ?>
假设以下是程序中的输入图像(image.png) -

输出
