PHP调整图像大小固定大小但保持方向
Posted
技术标签:
【中文标题】PHP调整图像大小固定大小但保持方向【英文标题】:PHP resize image fixed size but maintain orientation 【发布时间】:2010-03-31 13:56:31 【问题描述】:我需要使用 GD 将 php 中的图像大小调整为固定大小但保持方向(纵向/横向),这些是:
肖像:375 x 500 像素 横向:500 x 375px
我尝试过的一切总是忽略方向,将它们全部变成横向。
谁能帮忙?
【问题讨论】:
【参考方案1】:检查传入图像的宽度和高度。如果宽度大于高度,则将目标尺寸设为 500 x 375,否则设为 375 x 500。然后使用这些目标尺寸运行调整大小代码。
【讨论】:
因为你已经有一个 gd 图片资源,你可以使用 imagesx() 和 imagesy() 来获取宽度和高度。【参考方案2】:这是我使用的图像类中的一种方法,用于计算图像的缩放尺寸。它的工作原理是将图像拟合到一个方形框中。
您可以设置$box = 500
,然后传递您尝试调整大小的图像的$x
和$y
,它将始终返回正确调整大小的尺寸,并保持纵横比。
public static function fit_box($box = 200, $x = 100, $y = 100)
$scale = min($box / $x, $box / $y, 1);
return array(round($x * $scale, 0), round($y * $scale, 0));
【讨论】:
嗯,问题不是缩放,而是如何确定图像是纵向(高度>=宽度)还是横向(宽度>=高度)方向。 我假设他想在调整图像大小的同时保持纵横比和方向,这就是我的功能要做的事情。该函数将始终将较大尺寸保持在 500 像素,同时匹配较短尺寸而无需知道方向。【参考方案3】:这个问题在这里得到了正确的回答:How to detect shot angle of photo, and auto rotate for website display like desktop apps do on viewing?
简短的回答是,您需要使用exif_read_data()
函数来获取照片的“方向”属性,然后您可以使用该值来确定是否需要旋转照片。上面的答案包含示例 PHP 代码,向您展示了如何做到这一点。
【讨论】:
以上是关于PHP调整图像大小固定大小但保持方向的主要内容,如果未能解决你的问题,请参考以下文章