PHP调整图像固定大小,但保持方向

时间:2010-03-31 13:56:31

标签: php resize gd rotation orientation

我需要使用GD将图像调整为固定尺寸,但保持方向(纵向/横向),这些是:

肖像:375 x 500px 风景:500 x 375px

我尝试的所有东西总是忽略了方向,使它们都成为风景。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

检查传入图像的宽度和高度。如果宽度比高度宽,请将目标尺寸设为500 x 375,否则使其为375 x 500.然后运行具有这些目标尺寸的调整大小代码。

答案 1 :(得分:1)

这是我使用的图像类的方法,它计算图像的缩放尺寸。它的工作原理是将图像拟合成方框。

您可以设置$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));
}

答案 2 :(得分:0)

这个问题在这里得到了正确回答:How to detect shot angle of photo, and auto rotate for website display like desktop apps do on viewing?

简短的回答是,您需要使用exif_read_data()功能获取照片的“方向”属性,然后您可以使用该值来确定是否需要旋转照片。上面的答案包含示例PHP代码,向您展示如何执行此操作。