在 .NET 中将图像缩放到固定大小的画布
我有一个固定大小的画布(例如演示幻灯片)。需要将图片嵌入其中而没有任何质量失真。如果图像小于画布,则必须居中。如果它较大,则必须缩小以适应。
是否存在任何可靠的算法,或者我必须从头开始创建它?
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要的缩放比例很简单,
为了避免变形,您对高度和宽度应用相同的比例。
为了确保获得正确的尺寸,您可以使用它找到最长的尺寸和比例,以便您的代码变为:
确保您已将高度和宽度转换为
double
值以避免整数算术。The scaling you need is simply
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:
Make sure you've converted the height and width to
double
values to avoid integer arithmetic.