Tom*_*len 2 scaling resize image-processing
鉴于图像:
maxWidth = 400;
maxHeight = 200;
width = photo.Width;
height = photo.Height;
Run Code Online (Sandbox Code Playgroud)
如果任一维度超过最大属性,我将如何缩放图像?
以下是一些测试用例:
300x300 : Too tall, but width ok.
500x200 : Too wide, but height ok.
650x300 : Too tall and too wide
300x190 : Fine, don't resize
Run Code Online (Sandbox Code Playgroud)
我无法想象数学,对不起,如果它太简单了!给我带来最多麻烦的案例是两个尺寸都超过允许的最大值.
Mar*_*tos 11
单独计算所需的垂直和水平缩放,然后选择两者中较小的一个并将结果钳位到最大值1.在代码中:
scale = min(1, min(maxWidth/photo.Width, maxHeight/photo.Height))
Run Code Online (Sandbox Code Playgroud)
确保除法运算使用浮点运算.如何做到这一点因语言而异.在C/Java/C#及其同类中,将其中一个操作数转换为float.
| 归档时间: |
|
| 查看次数: |
1140 次 |
| 最近记录: |