1

很长一段时间以来,我在管理高度或宽度异常长的图像时遇到了问题。

如果我固定它们的高度和宽度,它们会显得拉长吗?

如果我固定了它们的宽度,并且如果图像的高度很长,那么它也会弄乱整个网站。

如果我固定了它们的高度,并且如果图像的宽度很长,那么它也会弄乱整个网站。

我保存在本地驱动器中的图像保存保持比例?假设用户决定上传图像 1(height)*32(width)。当他上传这张图片时,脚本将用户上传的图片调整为高度:1000px(只是一个例子)

所以得到的图像是 1000px(height)*32000(widht),你现在看到图像异常大。

现在在一个 1000px * 1000px 的框中显示此图像时,显示此图像的最佳方式是什么?

4

5 回答 5

3

如果您尝试调整 32x1 图像的大小以使其适合 1000x1000 框,则不应将高度调整为 1000。相反,您应该将宽度调整为 1000,将高度调整为 1000/32。

一些示例代码可能是:

define(MAX_WIDTH, 1000);
define(MAX_HEIGHT, 1000);

if ($cur_width / MAX_WIDTH > $cur_height / MAX_HEIGHT)
{
   $new_width = MAX_WIDTH;
   $new_height = (int) ($cur_height * MAX_WIDTH / $cur_width);
}
else
{
   $new_width = (int) ($cur_width * MAX_HEIGHT / $cur_height);
   $new_height = MAX_HEIGHT;
}

这会检查哪个尺寸相对于盒子的尺寸“更大”,并适当地设置 $new_width 和 $new_height。确保处理其中一个尺寸向下舍入为 0 的奇怪情况(即 10000x1 图像可能最终为 1000x0)。

于 2010-05-17T08:41:07.650 回答
0

如果我固定它们的高度和宽度,它们会显得拉长吗?

如果你改变比例,它们会被扭曲,如果你改变大小,它们会被拉伸。

如果我固定了它们的宽度,并且如果图像的高度很长,那么它也会弄乱整个网站。

图像将缩放,保持其原始 xy 比率。这是否“搞砸了网站”取决于上下文。

如果我固定了它们的高度,并且如果图像的宽度很长,那么它也会弄乱整个网站。

同上

解决此问题的最佳方法是什么?

这取决于许多因素,其中最重要的是图像的目的是什么。是的,我们又回到了上下文。

如果我对你想要达到的目标做出一些假设,你基本上有两个选择:

  • 裁剪图像(可能在缩放之后)
  • 计算图像的 xy 比率,将其与要放入的空间的 xy 比率进行比较,使用它来决定是否将其缩放(同时保持纵横比)到空间的宽度或高度空间。
于 2010-05-17T08:07:47.923 回答
0

尝试将输出图像适合(保持纵横比)特定矩形怎么样?

于 2010-05-17T08:08:24.253 回答
0

如果我理解正确,你想保持这个比例。那么为什么不使用一些图像库来缩放图像的高度或宽度并保持比例。

于 2010-05-17T08:09:03.270 回答
0

您可以使用divwith overflow: hidden;

于 2010-05-17T08:11:21.543 回答