调整图像大小以完全适合确定的框

时间:2011-08-08 17:58:55

标签: php resize crop fill

我想做以下事情:

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

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

我很感激任何建议,指示,输入或准备好的脚本...... 感谢

使用PHP 5.3.0

1 个答案:

答案 0 :(得分:3)

您必须能够通过事先了解图像尺寸来计算纵横比。有关详细信息,请参阅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中提供。