在 .NET 中将图像缩放到固定大小的画布

发布于 2024-11-26 17:14:35 字数 111 浏览 1 评论 0原文

我有一个固定大小的画布(例如演示幻灯片)。需要将图片嵌入其中而没有任何质量失真。如果图像小于画布,则必须居中。如果它较大,则必须缩小以适应。

是否存在任何可靠的算法,或者我必须从头开始创建它?

I have a fixed-size canvas (e.g. presentation slide). Need to embed a picture into it without any quality distortion. If the image is smaller than the canvas, it must be centered. If it's larger, it has to be scaled down to fit.

Does any reliable algorithm exist or I have to create it from scratch?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

倒带 2024-12-03 17:14:35

您需要的缩放比例很简单,

scale = desired size / actual size

为了避免变形,您对高度和宽度应用相同的比例。

为了确保获得正确的尺寸,您可以使用它找到最长的尺寸和比例,以便您的代码变为:

if (height > width)
{
    scale = desiredHeight / actualHeight;
}
else
{
    scale = desiredWidth / actualWidth;
}

确保您已将高度和宽度转换为 double 值以避免整数算术。

The scaling you need is simply

scale = desired size / actual size

To avoid distortion you apply the same scale to both the height and width.

To ensure you get the right size you find the longest dimension and scale using that so your code becomes:

if (height > width)
{
    scale = desiredHeight / actualHeight;
}
else
{
    scale = desiredWidth / actualWidth;
}

Make sure you've converted the height and width to double values to avoid integer arithmetic.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文