答案 0 :(得分:1)
您可以使用iMagick方法cropImage()
来做到这一点:
<?php
// Load input image
$image = new Imagick('weather.png');
// Get width and height
$w= $image->getImageWidth();
$h= $image->getImageHeight();
// cropImage(width,height,startx,starty)
$image->cropImage($w-81,$h-81,0,81);
// Output result
$image->writeImage('result.png');
?>
您可以通过以下方法判断PHP中是否安装了Imagick模块:
php -i | grep magick
示例输出
/usr/local/etc/php/7.2/conf.d/ext-imagick.ini,
imagick
imagick module => enabled
imagick module version => 3.4.3
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
Imagick compiled with ImageMagick version => ImageMagick 7.0.7-35 Q16 x86_64 2018-05-25 https://www.imagemagick.org
Imagick using ImageMagick library version => ImageMagick 7.0.7-35 Q16 x86_64 2018-05-25 https://www.imagemagick.org
imagick.locale_fix => 0 => 0
imagick.progress_monitor => 0 => 0
imagick.skip_version_check => 0 => 0
或者,您可以使用GD
库执行相同的操作-documentation here:
<?php
// Load input image
$im = imagecreatefrompng('weather.png');
// Get width and height
$w = imagesx($im);
$h = imagesy($im);
// Crop
$im = imagecrop($im, ['x'=>0, 'y'=>81, 'width'=>$w-81, 'height'=>$h-81]);
imagepng($im, 'result.png');
?>
您可以通过以下方法判断PHP中是否安装了GD模块:
php -i | grep GD
示例输出
GD Support => enabled
GD Version => bundled (2.1.0 compatible)
答案 1 :(得分:0)
在Imagemagick中,另一种方法是简单地切掉顶部的81个像素和右侧的81个像素。所以
convert image -gravity north -chop 0x81 -gravity east -chop 81x0 result
我不知道Imagick,但chop命令位于http://us3.php.net/manual/en/imagick.chopimage.php。但是,那里的文档看起来不像Imagemagick那样工作,并且似乎没有使用重力。