利用System.Drawing.Image.GetThumbnailImage创建缩略图

using System.Drawing;

public static Image GenerateThumbImage(Image originalImage, int limitedSize)

{

    if (limitedSize < 20)

    {

        throw new InvalidObjectException("limitedSize");

    }

    int height = originalImage.Height;

    int width = originalImage.Width;

    if (height > limitedSize || width > limitedSize)

    {

        int newHeight, newWidth;

        if (height > width)

        {

            newHeight = limitedSize;

            double tmp = (limitedSize / height) * width;

            newWidth = (int)Math.Round(tmp);

        }

        else

        {

            newWidth = limitedSize;

            double tmp = (limitedSize / width) * height;

            newHeight = (int)Math.Round(tmp);

      }

        return originalImage.GetThumbnailImage(newWidth, newHeight, nullIntPtr.Zero);

    }

    else

    {

        return originalImage;

    }

}

//这是一个设定长和宽最大值后,等比例缩略的方法
//其中,InvalidObjectException是我自定义的Exception
//而if (limitedSize < 20)这句,是我认为不该创建小于20px的缩略图。

//代码中Image 类是System.Drawing.Image 。

posted @ 2011-01-15 17:59  duanyong  阅读(864)  评论(0编辑  收藏  举报