public static Bitmap
GetThumbnail(Bitmap b, int destHeight,int destWidth)
{
System.Drawing.Image
imgSource = b;
System.Drawing.Imaging.ImageFormat
thisFormat = imgSource.RawFormat;
int sW
= 0, sH = 0;
int sWidth
= imgSource.Width;
int sHeight
= imgSource.Height;
if (sHeight
> destHeight || sWidth > destWidth)
{
if ((sWidth
* destHeight) > (sHeight * destWidth))
{
sW
= destWidth;
sH
= (destWidth * sHeight) / sWidth;
}
else
{
sH
= destHeight;
sW
= (sWidth * destHeight) / sHeight;
}
}
else
{
sW
= sWidth;
sH
= sHeight;
}
Bitmap
outBmp = new Bitmap(destWidth,
destHeight);
Graphics
g = Graphics.FromImage(outBmp);
g.Clear(Color.Transparent);
g.CompositingQuality
= CompositingQuality.HighQuality;
g.SmoothingMode
= SmoothingMode.HighQuality;
g.InterpolationMode
= InterpolationMode.HighQualityBicubic;
g.DrawImage(imgSource,new Rectangle((destWidth
- sW) / 2, (destHeight - sH) / 2, sW, sH), 0, 0, imgSource.Width, imgSource.Height, GraphicsUnit.Pixel);
g.Dispose();
EncoderParameters
encoderParams = new EncoderParameters();
long[]
quality = new long[1];
quality[0]
= 100;
EncoderParameter
encoderParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality,
quality);
encoderParams.Param[0]
= encoderParam;
imgSource.Dispose();
return outBmp;
}