PHP ImageMagick - 图片裁剪



图片裁剪是指剪裁图片的一部分或通过修剪不必要的部位来减小图片尺寸。这使您可以专注于图片中的重要元素,同时丢弃任何不必要的元素。

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

在本节中,您将学习如何使用 ImageMagick 库提供的内置函数来裁剪图片。

图片裁剪

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

语法

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

参数

此方法接受四个参数:宽度、高度、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) -

Image-Cropping

输出

Image-Cropping

创建裁剪的缩略图

缩略图是以较小图像形式表示的较大图像。它旨在更容易、更快地查看或管理一组较大的图像。ImageMagick 通过提供 **‘cropThumbnailImage()’** 方法来帮助我们创建裁剪的缩略图。

语法

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

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

此方法接受两个参数,宽度和高度。它们分别指定缩略图的宽度和高度。

示例

在下面的示例中,创建了 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) -

Creating a Cropped Thumbnail

输出

Creating a Cropped Thumbnail

图像切割

有时,在选择图像时,不需要整个图像。在您只需要图像的一部分或图像的特定区域的情况下,**‘chopImage()’** 函数可以帮助我们。此函数帮助我们去除图像的区域并根据用户的规范修剪图像。

语法

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

此函数接受四个参数:

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

  • 高度 - ‘高度’ 是一个整数,存储被切割区域的高度。

  • 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) -

Chopping Images

输出

Chopping Images
广告