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); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |