PHP ImageMagick - 调整图像大小

在本章中,您将学习使用 Imagemagick 提供的各种内置函数自适应地调整图像大小并按特定尺寸缩放图像。

使用 ImageMagick 调整图像大小时,您可以通过缩放或裁剪两种不同的方式来实现。 缩放将导致尺寸按比例增加或减小,而裁剪将根据用户设置的特定参数剪掉原始图像的部分内容。

自适应调整图像大小

在很多情况下,我们希望将图像稍微缩小到较小的"网页尺寸"。 为此,Imagemagick 提供了一个方法"adaptiveResizeImage()",它有助于自适应地调整图像大小。 这也避免了急剧的颜色变化造成的模糊。

语法

public Imagick::adaptiveResizeImage(int $columns, int $rows, bool $bestfit = false, bool $legacy = false): bool

此方法的参数是columns, rowsbestfit。

  • columns 指定缩放图像中的列数。

  • rows 表示缩放后图像的行数

  • bestfit 指定是否使图像适合边界框。

示例

下面通过例子来演示如何在PHP中实现该功能。 首先创建一个新的 Imagick 对象并获取输入图像。 然后,对该输入图像应用 'adaptiveResizeImage()' 方法。 最后,将输出图像保存为'adaptiveResizeImage.png'。

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

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

自适应调整图像大小

输出

自适应调整图像大小

将图像缩放至所需尺寸

为了使图像适合网站,必须有一些所需的尺寸。 将图像缩放到这些尺寸将删除不必要的像素或创建或添加新的像素细节。 ImageMagick 允许我们使用 PHP 中的方法 'resizeImage()' 来调整图像的大小。它将图像作为输入,根据所需的尺寸调整其大小并给出输出。

为了确保图像适合网站,必须将它们缩放到特定尺寸。 ImageMagick 的 'resizeImage()' 方法允许我们在 PHP 中执行此操作,它将图像作为输入并根据所需的尺寸调整其大小并返回结果图像。

语法

public Imagick::resizeImage(int $columns, int $rows, int $filter, float $blur, bool $bestfit=false, bool $legacy=false):bool

resizeImage()方法的参数是columns、rows、filter、blur和bestfit。

  • columnsrows是分别指定图像宽度和高度的整数值。

  • filter 是一个整数值,引用过滤器常量列表,如filter_point、filter_box、filter_triangle 等。

  • blur 模糊因子是浮点值。 模糊因子大于1则模糊,小于1则锐利。

  • bestfit 是可选的拟合参数。

示例

以下是使用 PHP 调整图像大小的示例。 在这里我们创建一个新的 Imagick 对象和一个空图像(用于输入)。 然后,对创建的图像调用 'resizeImage()' 方法。 输出将为 PNG 格式并命名为 'resizeImage'。

<?php
   $img=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.jpg");
   $img->resizeImage(200, 300, null, null, null, null);
   $img->writeImage($_SERVER['DOCUMENT_ROOT']."/test/newimage.png");
?>

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

将图像缩放至所需尺寸

输出

将图像缩放至所需尺寸