gpt4 book ai didi

c# - 对于任何给定的最大宽度和最大高度,根据纵横比计算宽度和高度

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:13 26 4
gpt4 key购买 nike

我被要求将任何图片的大小调整为其等效缩略图,同时尊重图片的原始纵横比。

到目前为止,我只在通过最大值的情况下设法完成了此操作。宽度,如下所示:

public static Size GetSizeAdjustedToAspectRatio(int sourceWidth, int sourceHeight, int dWidth, int dHeight)
{
bool isLandscape = sourceWidth > sourceHeight;
int fixedSize = dWidth;

double aspectRatio = (double)sourceWidth / (double)sourceHeight; ;

if (isLandscape)
return new Size(fixedSize, (int)((fixedSize / aspectRatio) + 0.5));
else
return new Size((int)((fixedSize * aspectRatio) + 0.5), fixedSize);
}

我已经尝试了几种计算方法,以便它可以接受任何给定的最大值。高度和最大值宽度,以便在最终结果图片上保持原始纵横比。

最佳答案

这里:

public static Size GetSizeAdjustedToAspectRatio(int sourceWidth, int sourceHeight, int dWidth, int dHeight) {
bool isLandscape = sourceWidth > sourceHeight;

int newHeight;
int newWidth;
if (isLandscape) {
newHeight = dWidth * sourceHeight / sourceWidth;
newWidth = dWidth;
}
else {
newWidth = dHeight * sourceWidth / sourceHeight;
newHeight = dHeight;
}

return new Size(newWidth, newHeight);
}

在横向模式下,您将缩略图宽度设置为目标框的宽度,高度按三的规则找到。在纵向模式下,您将缩略图高度设置为目标框高度并计算宽度。

关于c# - 对于任何给定的最大宽度和最大高度,根据纵横比计算宽度和高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32996195/

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