大家好,欢迎来到IT知识分享网。
等比例缩放公式
(缩放后的宽度/原始宽度)*原始高度=等比例缩放后的高
例如:
一张图片是 1000宽*100高
画布100宽*10高
等比例缩放图片到画布上
带入上面公式
(100/1000)*100=10
图片宽度缩放成100,高度是10
公式解释:
以上面的例子参考
画布的宽是100,
先算出100里面有多少个1000;也就是1000变成100缩放了多少倍;
然后,再乘以图片的原始高度;
也就是我们知道了宽缩放了多少倍,
让这个倍数再乘以“原始高”,那么“高”和“宽”就等于一起缩放了。
c# 代码示例
最后返回,“高度”小于“最大高度”,“宽度”小于“最大宽度”的数值
#region 等比例缩放 /// <summary> /// 等比例缩放-最后返回,“高度”小于“最大高度”,“宽度”小于“最大宽度”的数值 /// </summary> /// <param name="MaxWidth">最大宽</param> /// <param name="MaxHeight">最大高</param> /// <param name="width">宽</param> /// <param name="height">高</param> /// <param name="subtract">递减量</param> public static void EqualScaleScaling(Double MaxWidth, Double MaxHeight, ref Double width, ref Double height,int subtract=0) { //等比例缩放后的高 Double h = ((((MaxWidth - subtract) * 1.0f) / width) * height) * 1.0; width = MaxWidth; height = h; //递归遍历,触发递归后,图片会一直缩小,直至高度小于最大高度 if (height > MaxHeight) { subtract = subtract + 1; EqualScaleScaling(MaxWidth, MaxHeight, ref width, ref height, subtract); } } #endregion
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/122244.html