📜  PHP | imagick的chopImage()函数(1)

📅  最后修改于: 2023-12-03 15:03:38.712000             🧑  作者: Mango

PHP | imagick的chopImage()函数

简介

chopImage()函数是PHP imagick扩展中的图像处理函数,它可用于从当前ImageMagick对象中裁剪指定宽度和高度的矩形,从而减少图像的尺寸。

该函数定义如下:

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

参数说明:

  • $width:裁剪后的图像宽度;
  • $height:裁剪后的图像高度;
  • $x:裁剪区域的左上角 x 坐标;
  • $y:裁剪区域的左上角 y 坐标。

注意:chopImage()函数会修改原始图像对象,所以使用前应该先备份原始图像对象。

示例

下面我们通过一个实例来演示如何使用chopImage()函数:

<?php
// 创建 Imagick 对象
$imagick = new Imagick('example.jpg');

// 获取原始图片尺寸
$originalWidth = $imagick->getImageWidth();
$originalHeight = $imagick->getImageHeight();

// 进行裁剪
$imagick->chopImage($originalWidth / 2, $originalHeight / 2, $originalWidth / 4, $originalHeight / 4);

// 输出处理后的图片
header("Content-Type: image/jpg");
echo $imagick;

上面的代码将原始图片按照宽度和高度的一半进行裁剪,裁剪区域的左上角坐标为原始尺寸的1/4。如果原始图片是400x400的,则会将其裁剪为200x200。

注意事项
  1. chopImage()函数只是简单地删除图像中的一块区域,并不会改变原始图像的宽高比。如果想要改变尺寸比例,应该使用scaleImage()等其他函数;
  2. chopImage()函数只裁剪一个矩形,不能裁剪非矩形区域;
  3. $x$y参数表示裁剪区域左上角坐标,如果超出图像范围,函数将不会执行任何操作;
  4. 如果传入的参数有非整数,chopImage()函数会自动向下取整。