我有一个固定大小的画布(例如演示幻灯片)。需要在没有任何质量失真的情况下将图片嵌入其中。如果图像小于画布,则必须居中。如果它更大,则必须按比例缩小以适应。
是否存在任何可靠的算法,或者我必须从头开始创建它?
答案 0 :(得分:0)
您需要的缩放只是
scale = desired size / actual size
为避免扭曲,您可以对高度和宽度应用相同的比例。
为了确保您获得正确的尺寸,您可以使用它找到最长的尺寸和比例,以便您的代码成为:
if (height > width)
{
scale = desiredHeight / actualHeight;
}
else
{
scale = desiredWidth / actualWidth;
}
确保已将高度和宽度转换为double
值以避免整数运算。