PHP ImageMagick - 调整图像大小


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

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

自适应调整图像大小

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

句法

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

该方法的参数是列、行最佳拟合。

  • 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 允许我们使用“resizeImage()”方法在 PHP 中调整图像大小它将图像作为输入并根据所需的尺寸调整其大小并给出输出。

为了确保图像适合网站,必须将它们缩放到特定尺寸。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。

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

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

  • 模糊因子是浮点值。如果模糊因子大于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) -

将图像缩放至所需尺寸

输出

将图像缩放至所需尺寸