我尝试裁剪然后将gif中的帧重新调整为小型结果 - 160x160和200x200。但并非所有的框架都被裁剪掉了。这是我的代码:
$dstImage->setImageFormat('gif');
$srcImage = $srcImage->coalesceImages();
$dstImage = $dstImage->coalesceImages();
while ($srcImage->hasNextImage())
{
$srcImage->cropImage($srcImageW, $srcImageH, $srcImageX, $srcImageY);
$srcImage->resizeImage($dstImageW, $dstImageH, Imagick::FILTER_LANCZOS, 1);
$dstImage->compositeImage($srcImage, Imagick::COMPOSITE_COPYOPACITY, $dstImageX, $dstImageY);
$dstImage->compositeImage($srcImage, Imagick::COMPOSITE_OVERLAY, $dstImageX, $dstImageY);
$dstImage->compositeImage($srcImage, Imagick::COMPOSITE_OVER, $dstImageX, $dstImageY);
$dstImage->addImage($srcImage);
$dstImage->setImageDelay(10);
$srcImage->nextImage();
$dstImage->nextImage();
}
$srcImage = $srcImage->deconstructImages();
$srcImage = $srcImage->deconstructImages();
$dstImage->writeImages($osDstPath, true);