【问题标题】:Resize image to fit perfectly a determined box调整图像大小以完全适合确定的框
【发布时间】:2011-10-22 14:51:49
【问题描述】:

我想做以下事情:

  • 我需要调整图像大小以适应并完全填充 100x100 像素框
    并非所有图像都是完美的正方形,这就是我的问题
    1. 我想确定哪一边(宽度或高度)最小。
    2. 在缩小时将该边设为 100 像素;中后卫
    3. 裁剪两侧的溢出

我已经尝试了宽度/高度 :100% 的技术,但这并没有给出我想要的结果(它被拉伸且丑陋)。我也看到了一些方法,但在 C# 中......我需要在 PHP 中。

如果有任何建议、指示、输入或准备好的脚本,我将不胜感激... 谢谢

使用 PHP 5.3.0

【问题讨论】:

  • 第二步,你不是说最小的吗?如果降低最大尺寸,则无需裁剪任何内容,并且图像永远不会完全填满 100x100 容器,除非原始尺寸相等。
  • 我认为他的意思是将较大的边设置为 100,同时根据纵横比将另一边调整为 100 像素的一小部分。
  • 这是我在 c# 中的做法,只需从中获取逻辑即可。请参阅我对这篇文章的回答:stackoverflow.com/questions/18014365/…

标签: php resize crop fill


【解决方案1】:

您必须能够通过事先了解图像尺寸来计算纵横比。欲了解更多信息,请参阅getimagesize()

$width = 268;
$height = 300;
$MAX_SIZE = 100;
if($width > $MAX_SIZE || $height > $MAX_SIZE) {
    $aspect = $width / $height;
    if($width > $height) {
        $width = $MAX_SIZE;
        $height = intval($MAX_SIZE / $aspect);
    } else {
        $height = $MAX_SIZE;
        $width = intval($MAX_SIZE * $aspect);
    }
}

之后,缩小后的高度将在$height 中提供,缩小后的宽度将在$width 中提供。

【讨论】:

    猜你喜欢
    • 2015-03-26
    • 1970-01-01
    • 2011-09-30
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多