imagick - 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, $resizedH, \Imagick::FILTER_LANCZOS, 1);
$x_crop = 0;
$y_crop = $resizedH/2 - ($finalH/2);
$im -> cropImage($finalW, $finalH, $x_crop, $y_crop);
}
现在裁剪和调整大小后,我有 - 120x120 像素的图像。但是当出现在个人资料页面上时,如果从肖像中裁剪会出现这样的情况
如果图像是横向的,则图像边框失真是水平的。
是否有一些其他信息编码到图像中我应该改变?还是css的问题?
解决方案
我用 $im -> setImagePage($finalW, $finalH, 0, 0); 现在它工作正常
推荐阅读
- c# - 正则表达式用静态词替换找到的匹配项
- python - 在没有脚本文件的情况下将命令行参数传递给 python 解释器
- vue.js - Vuex 突变通过异步/等待操作更新具有动态属性名称的对象
- c# - 使用与本地机器不同的时间
- date - 如何在 Excel 中根据因子和当前日期为单元格着色?
- angularjs - 我第一次尝试 $http 代码但没有得到结果。我的代码有什么问题
- python - 在 Raspberry pi 上启动时启动 python 脚本有困难
- c# - 从收到的消息中呼叫桌面通知
- jboss-eap-6 - 如何在 JBoss EAP 6.4 中通过 Internet 远程访问管理控制台
- python - 使用 win32com 库从 python 脚本保存 Excel 文件