protected static Bitmap CreateThumbnail(string filePath, int widthOrHeight)
{
try
{
if (File.Exists(filePath))
{
using (Bitmap original = new Bitmap(filePath))
{
if (original.Width < widthOrHeight && original.Height < widthOrHeight) return original;
Rectangle srcRect = new Rectangle(0, 0, original.Width, original.Height);
Rectangle destRect = (original.Width > original.Height)
? new Rectangle(0, 0, widthOrHeight, widthOrHeight * original.Height / original.Width)
: new Rectangle(0, 0, widthOrHeight * original.Width / original.Height, widthOrHeight);
Bitmap thumbnail = new Bitmap(destRect.Width, destRect.Height);
using (Graphics graphics = Graphics.FromImage(thumbnail))
{
using (Brush brush = new SolidBrush(Color.White))
{
graphics.FillRectangle(brush, 0, 0, destRect.Width, destRect.Height);
graphics.DrawImage(original, destRect, srcRect, GraphicsUnit.Pixel);
}
}
return thumbnail;
}
}
}
catch (Exception ex)
{
Log.Exception("Media.CreateThumbnail", "Exception: {0}", ex.Message);
}
return null;
}