PHP ImageMagick - 图像裁剪


图像裁剪涉及剪切图像的部分或通过修剪掉不重要的部分来减小图像的大小。这使您可以只关注图像中的重要元素,同时丢弃任何不必要的元素。

使用 ImageMagick 进行图像裁剪是快速编辑图像的好方法,无需任何特殊软件或复杂的图形设计技术知识。

在本章中,您将学习使用 ImageMagick 库提供的内置函数裁剪图像。

图像裁剪

从图像中提取区域称为“裁剪”。它只不过是去除图像中不需要的边缘或获取图像的特定部分。这可以在 PHP 中使用 Imagemagick 中名为“cropImage()”的方法来完成。

句法

public Imagick::cropImage(int $width, int $height, int $x, int $y) : bool

参数

该方法接受 4 个参数,分别是宽度、高度、x 和 y。

  • 宽度- 作物的宽度,

  • 高度- 作物的高度,

  • x - 裁剪区域左上角的 X 坐标。

  • y - 裁剪区域左上角的 Y 坐标。

获得的输出将是根据该方法中作为参数给出的测量结果裁剪的图像。

例子

在以下示例中,创建了 Imagick 对象并读取输入图像。随后,使用“cropImage()”函数,根据函数内提供的参数裁剪图像。输出(即裁剪后的图像)可以直接显示在服务器上,也可以使用“writeImage()”函数以任何所需的名称和格式保存到系统中 。

<?php
   $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.jpg");
   $image->cropImage(800, 750, 200, 100);
   $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/newimage.png");
?>

假设以下是程序中的输入图像(image.jpg) -

图像裁剪

输出

图像裁剪

创建裁剪的缩略图

缩略图是以较小图像的形式表示较大图像。它旨在使查看或管理一组较大图像变得更加容易和快捷。ImageMagick 通过提供“cropThumbnailImage()”方法帮助我们创建裁剪后的缩略图

句法

public Imagick::cropThumbnailImage(int $width, int $height, bool $legacy = false): bool

此方法通过首先放大或缩小图像并从中心裁剪指定区域来帮助创建固定大小的缩略图。

该方法有 2 个参数:宽度和高度。它们分别指定缩略图的宽度和高度。

例子

在下面的示例中,创建了 imagick 对象。然后,使用“cropThumbnailImage()”函数获得固定大小的缩略图,并使用“writeImage()”函数获得输出。

<?php
   $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.jpg");
   $image->cropThumbnailImage(100, 100);
   $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/newimage.png");
?>

假设以下是程序中的输入图像(image.jpg) -

创建裁剪的缩略图

输出

创建裁剪的缩略图

切割图像

有时,在选择图像时,不需要整个图像。在您想要提取图像或仅提取图像的特定区域的情况下,“chopImage()”函数可以帮助我们。此功能帮助我们根据用户的要求删除图像的某个区域并修剪图像。

句法

public Imagick::chopImage (int $width, int $height,int $x,int $y): bool

该函数有 4 个参数,即

  • width - width 也是一个整数值,存储切割区域的宽度。

  • height - Height' 是一个整数值,存储切割区域的高度

  • x - 切割区域的 x 坐标。

  • 切割区域的 Y − y 坐标。

例子

在下面的示例中,您将学习如何使用“chopImage()”函数。首先,创建一个 Imagick 对象并给出图像作为输入。

然后,将“chopImage()”应用到图像上,参数包括宽度、高度、x 坐标和 y 坐标。

<?php
   $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.jpeg");
   $image->chopImage (400, 40, 2, 2);
   $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/chopImage.png");
?>

假设以下是程序中的输入图像(image.jpeg) -

切割图像

输出

切割图像