将确定缩放图像的适当尺寸的代码

本文关键字:代码 缩放 图像 | 更新日期: 2023-09-27 18:20:00

我甚至不理解整个部分。有人能描述一下他们想要什么以及如何做到吗。

你能指导我做这件事吗。

将确定缩放图像的适当尺寸的代码

如果必须保持纵横比,这意味着您需要按完全相同的量缩放高度和宽度。这是一个相当容易满足的要求——你只需计算出所需的比例,并将其应用于两个维度。

为了确保图像只缩小您只检查是否超过上限,并在这些情况下进行缩放。例如,如果高度和宽度都小于1001,像素数小于500000,则根本不需要缩放。

检查其他要求的上限如下:

首先,如果高度大于1000,只需按1000/height缩放高度和宽度即可。这将高度降低到1000,并相应地调整宽度。

然后,如果宽度大于1000,则只需将高度和宽度(可能由于高度的原因已经缩放)缩放1000/width。这将宽度降低到1000,并再次通过将高度缩小相同的量来保持纵横比。

最后,您需要检查像素计数,该计数计算为height * width。如果高度和宽度都小于或等于1000,则像素数可能仍高达一百万。

如果超过500000,则缩放高度和宽度,使像素数低于该值。因为它是二维值,所以可以按500,000 / (height * width)平方根缩放。

所以,就伪代码而言,你看到的是这样的东西:

if h > 1,000:
    scale = 1,000 / h
    h = h * scale       # will be 1,000
    w = w * scale
if w > 1,000:
    scale = 1,000 / w
    h = h * scale
    w = w * scale       # will be 1,000
if h * w > 500,000:
    scale = sqrt (500,000 / (h * w))
    h = h * scale
    w = w * scale

检查代码的第三部分是否有一些样本值(800乘700,给出560000像素),得到以下结果:

  800 * sqrt (500K/560K) -> 755
  700 * sqrt (500K/560K) -> 611
  755 * 611 -> 499,055 pixels, so scaled down okay.
  Ratio of 755/611 is same (roughly) as 800/700.