gpt4 book ai didi

php - "Crop"图像适合容器尽可能接近所需的大小而不损失比例

转载 作者:太空宇宙 更新时间:2023-11-04 15:35:20 25 4
gpt4 key购买 nike

这是我的困境。我有一个 315x210px 的盒子,以及一堆各种大小的图像,一些具有疯狂的宽度/高度比,例如 210:1,而另一些则具有 2:3 等的比例。

我正在尝试将这些图像嵌入框中,并让它们尽可能接近 315x210 像素,而不会弄乱纵横比。

我也不想使用缩略图,所以我嵌入了原始图像,并使用 php 计算宽度/高度并使用 css overflow hidden 。

我的问题是我碰壁了,想不出更有效的方法来做到这一点。我当前的方法一开始并不十分有效,因此我们将不胜感激。

第一个 if/while 在一定程度上工作正常,但是我在制作第二个 if/while 时意识到我所做的将导致服务器崩溃死循环。因此,第二个 if 从未真正完成,所以我不希望它起作用。它只是为了展示我的概念。

我对全新的想法持开放态度,但我只要求不管它是什么都不涉及创建和缩略图。我希望原始图像成为嵌入的图像。

    if($width_orig <= 315 && $height_orig <= 210){
while($newWidth <= 315 || $newHeight <= 210){
$newWidth = round($newWidth*1.2);
$newHeight = round($newHeight*1.2);
}
}
//This one was never intended to work. It's just for example.
else if($width_orig >= 315 && $height_orig >= 210){
while($newWidth >= 315 || $newHeight >= 210){
$newWidth = round($newWidth*1.2);
$newHeight = round($newHeight*1.2);
}
}
else
{
$newWidth = 315;
$newHeight = 210;
}

最佳答案

你可以试试

$imageHeight = 500;
$imageWidth = 600;

$maxHeight = 315;
$maxWidth = 210;

$max = ($maxWidth > $maxHeight) ? $maxWidth : $maxHeight;
$ratio = max($imageWidth, $imageHeight) / $max;

$ratio = max($ratio, 1.0);

$newHeight = ceil($maxHeight / $ratio);
$newWidth = ceil($imageWidth / $ratio);

var_dump("Height From: $imageHeight -> $newHeight", "Width From : $imageWidth -> $newWidth " );

输出

string 'Height From: 500 -> 166' (length=18)
string 'Width From: 600 -> 315' (length=20)

关于php - "Crop"图像适合容器尽可能接近所需的大小而不损失比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12869109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com