📅  最后修改于: 2023-12-03 15:18:24.127000             🧑  作者: Mango
imagick::shaveimage()
函数是 imagick 模块中用来裁剪图像边缘的函数,它能够削掉一张图片的边缘像素,实现图片的缩小和裁剪。此函数能够支持削减任意边框宽度和形状。
public bool Imagick::shaveImage ( int $columns , int $rows , int $width , int $height )
成功时返回 true
,失败时返回 false
。
<?php
// 创建一个 500 x 500 的画布
$imagick = new \Imagick();
$imagick->newImage(500, 500, new \ImagickPixel('white'));
// 在画布上面画一个 300 x 300 大小的红色矩形
$draw = new \ImagickDraw();
$draw->setFillColor(new \ImagickPixel('red'));
$draw->rectangle(100, 100, 400, 400);
$imagick->drawImage($draw);
// 削减掉红色矩形的边框,留下中央部分
$imagick->shaveImage(100, 100, 0, 0);
header('Content-Type: image/png');
echo $imagick;
以下为示例代码运行前:
以下为示例代码运行后的结果图:
这里我们从左边和顶部各裁剪了 100 像素,留下了中央的红色矩形。在这个示例里,由于我们没有设置 $width 和 $height 参数,输出的图片实际上并不是等比缩放到了 300 x 300 的大小,而是保留了原始图片的大小,因此输出的图片具有 400 x 400 的大小。