边界半径在通过IMAGICK从较大图片获得的裁切图像后变得疯狂

问题描述 投票:0回答:1

我使用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, $resizedH, \Imagick::FILTER_LANCZOS, 1);

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

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

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLmltZ3VyLmNvbS91Wk1MYVo2LnBuZyJ9” alt =“ img”>

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

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

imagick
1个回答
0
投票

我使用$ im-> setImagePage($ finalW,$ finalH,0,0);现在工作正常

© www.soinside.com 2019 - 2024. All rights reserved.