IMAGICK从较大图片中裁剪图像后,边界半径变得疯狂

我用Imagick来处理所有操作。

$finalWHRatio = $finalW/$finalH;
    $im = new \imagick($srcfilePath);
    $im -> setResolution(300,300);
    $im -> setImageFormat('gif');

    $this->autoRotateImage($im);

    $geo = $im->getImageGeometry();
    $srcImgWidth = $geo['width'];
    $srcImgHeight = $geo['height'];
    $srcWHRatio = $srcImgWidth/$srcImgHeight;

    $resizedH = '';
    $redizedW = '';
    if($srcWHRatio > $finalWHRatio){
        $resizedH = $finalH;
        $resizedW = $srcWHRatio*$finalH;

        $im -> resizeImage($resizedW,$resizedH,\Imagick::FILTER_LANCZOS,1);

        $x_crop = $resizedW/2 - ($finalW/2);
        $y_crop = 0;
        $im -> cropImage($finalW,$finalH,$x_crop,$y_crop);
    }else{
        $resizedW = $finalH;
        $resizedH = $finalW/$srcWHRatio;

        $im -> resizeImage($resizedW,1);

        $x_crop = 0;
        $y_crop = $resizedH/2 - ($finalH/2);
        $im -> cropImage($finalW,$y_crop);
    }

现在裁剪和调整大小后,我有了-120x120像素的图像。但是当显示在个人资料页面上时,如果从“肖像”中裁剪出来,就会像这样

IMAGICK从较大图片中裁剪图像后,边界半径变得疯狂

如果图像是横向的,则图像边界失真是水平的。

我是否应该更改图像中编码的其他信息?还是CSS有问题?

yearf 回答:IMAGICK从较大图片中裁剪图像后,边界半径变得疯狂

我使用了$ im-> setImagePage($ finalW,$ finalH,0,0);现在一切正常

本文链接:https://www.f2er.com/2980869.html

大家都在问