gpt4 book ai didi

c# - 确定缩放图像的适当尺寸的代码

转载 作者:行者123 更新时间:2023-11-30 17:18:52 25 4
gpt4 key购买 nike

我连完整的部分都没看懂。任何人都可以向我描述他们想要什么以及如何实现。

你能指导我吗。

最佳答案

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

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

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

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

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

最后,您需要检查像素数,其计算方式为 height * width。如果高度和宽度都为 1,000 或更小,您的像素数可能仍高达一百万。

如果超过 500,000,您将缩放高度和宽度,使像素数低于该值。因为它是一个二维值,所以您可以按 500,000/(高度 * 宽度)平方根 进行缩放。

因此,就伪代码而言,您看到的是:

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 x 700,给出 560,000 像素)检查代码的第三部分会产生以下结果:

  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.

关于c# - 确定缩放图像的适当尺寸的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25561058/

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