如何根据不同尺寸的最大宽度和高度计算图像的比例因子

How To Calculate Scale Factor Of Image Based On Max Width and Height Of Different Sizes

我正在尝试进行一个简单的计算来计算比例因子,以便图像可以完美地适合容器大小而无需拉伸。这意味着原始图像可能要溢出它需要容纳的容器,这没关系。

问题是图像可以是任何大小,它可以在 W 和 H 中都比容器大,在 W 中大,在 H 中大或在任何这些情况下都小。

例如,我们有以下包含框:

500x500 500x1000 1000x500 300x300 200x50 50x200

并且我想要一张 500x500 的图像以适应它们,但保持它自己的比例;所以它会在某些方向溢出其中一些容器,但不会在其他方向溢出。

代码使用什么语言并不重要,我现在正在使用 JS,我正在努力解决的只是它背后的计算。如果只有一种尺寸的容器,问题不大,但我正在努力寻找一种适合所有尺寸的配方。

根据评论,解决方案可以改写为:

  • 步骤1如果图片高度小于容器高度,放大以适应。
  • 步骤2如果图片宽度小于容器宽度,进一步放大以适应。
  • 第 3 步 如果第 1 步和第 2 步中的任何一个为真,转到第 5 步
  • 第4步取(图片高度-容器高度)和(图片宽度-容器宽度)中的最小值。缩小比例。
  • 第 5 步 裁剪过剩

完成

请注意,总共应该进行 0 或 1 次放大或缩小,并保持原始比率。