例如,如果我需要填充宽度为100px,高度为50px的边界框,则以下输入图像将具有以下行为:
200w x 200h缩小50%,25%从顶部和底部切断.
200w x 100h缩小50%,没有裁剪.
100w x 200h得分未缩放,但75px从顶部和底部切断.
这似乎是一个常见的调整大小功能,但我无法追踪算法的一个例子.
将接受任何语言的答案,包括伪代码.带答案的页面链接也很棒!
你要求的是非常容易的.计算宽度和高度的不同比例因子,然后选择较大的比例因子作为实际比例因子.将您的输入大小乘以比例,然后裁剪出来的任何一个太大.
scale = max(maxwidth/oldwidth, maxheight/oldheight) scaledwidth = oldwidth * scale scaledheight = oldheight * scale if scaledheight > maxheight: croptop = (scaledheight - maxheight) / 2 cropbottom = (scaledheight - maxheight) - croptop if scaledwidth > maxwidth: cropleft = (scaledwidth - maxwidth) / 2 cropright = (scaledwidth - maxwidth) - cropleft