【问题标题】:PHP resize image fixed size but maintain orientationPHP调整图像大小固定大小但保持方向
【发布时间】:2010-03-31 13:56:31
【问题描述】:

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

肖像:375 x 500 像素 横向:500 x 375px

我尝试过的一切总是忽略方向,将它们全部变成横向。

谁能帮忙?

【问题讨论】:

    标签: php resize gd rotation orientation


    【解决方案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 代码,向您展示了如何做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-12
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多