加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php – 调整大小图像,不失真保持宽高比,然后使用WideImage裁剪多余

发布时间:2020-05-25 09:45:42 所属栏目:PHP 来源:互联网
导读:我在一个网站上有一个我正在工作的区域,将显示一个从外部来源拉出的用户个人资料图像(因此无法控制其原始大小). 我想要做的是拍摄一张图像(在这个例子中为1000像素×800像素,并将其调整到200像素x 150像素).显然这与宽高比有所不同. 我想要做的是调整原始图像

我在一个网站上有一个我正在工作的区域,将显示一个从外部来源拉出的用户个人资料图像(因此无法控制其原始大小).

我想要做的是拍摄一张图像(在这个例子中为1000像素×800像素,并将其调整到200像素x 150像素).显然这与宽高比有所不同.

我想要做的是调整原始图像的大小,而不会失真,这在这种情况下会产生一个200px x 160px的图像.然后我想要做的是从边缘裁剪多余的图像,以产生正确的图像大小.所以在这种情况下,裁剪5px从顶部和底部的图像终于产生一个200px x 150px.

我现在有WideImage图书馆,并希望使用.我在SO上看到过几个类似的问题,但是没有什么可以说,我正在试图实现.

你可以尝试:
$img->resize(200,150,'outside')->crop('center','middle',200,150);

一些用户发布他们的计算版本…这里也是我的版本:

$sourceWidth = 1000;
$sourceHeight = 250;

$targetWidth = 200;
$targetHeight = 150;

$sourceRatio = $sourceWidth / $sourceHeight;
$targetRatio = $targetWidth / $targetHeight;

if ( $sourceRatio < $targetRatio ) {
    $scale = $sourceWidth / $targetWidth;
} else {
    $scale = $sourceHeight / $targetHeight;
}

$resizeWidth = (int)($sourceWidth / $scale);
$resizeHeight = (int)($sourceHeight / $scale);

$cropLeft = (int)(($resizeWidth - $targetWidth) / 2);
$cropTop = (int)(($resizeHeight - $targetHeight) / 2);

var_dump($resizeWidth,$resizeHeight,$cropLeft,$cropTop);

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读