首页 > 解决方案 > 计算图片调整大小与可用空间的比较

问题描述

假设我有一张图片,我需要把它放到一个正方形中。但是在某些情况下,图片太大了,所以我需要改变它的大小,使它适合正方形。

该算法应该计算并返回我需要减少它的大小。该函数获取图片的高度、宽度、正方形高度和正方形宽度。它会返回一个数字,说明我需要减少多少,保持原来的宽高比。

这是我的解决方案,我不确定是否涵盖所有情况:

double CalcPicSize(double picWidth, double  picHeight, double  sqWidth, double  sqHeight )
{
    var widthRatio, heightRatio;
    if (picWidth <= 0 || picHeight <= 0 || sqWidth <= 0 || sqHeight <= 0)
        return -1;

    if (picWidth == null || picHeight == null || sqWidth == null || sqHeight == null)
        return -1;

    if(picWidth <= sqWidth && picHeight <= sqHeight)
        return 1;

    widthRatio = picWidth / sqWidth;
    heightRatio = picHeight / sqHeight;
    if(widthRatio > heightRatio)
        return widthRatio;
    return heightRatio;
}

标签: c#algorithm

解决方案


推荐阅读