我用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像素的图像。但是当显示在个人资料页面上时,如果从“肖像”中裁剪出来,就会像这样
如果图像是横向的,则图像边界失真是水平的。
我是否应该更改图像中编码的其他信息?还是CSS有问题?