The GetThumbnailImage method of the Bitmap class in GDI+ and C# is used to create a small thumbnail image of a lange image. The following code snippet/page shows how to create an image thumbnail using Bitmap.GetThumbnailImage method.
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
using System.IO;
using System.Text;
using System.Net.Mail;
using System.Text.RegularExpressions;
using System.Threading;
public partial class _Default : System.Web.UI.Page
{
private string Finalimagename = "";
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnUpload1_Click(object sender, EventArgs e)
{
ImageUpload();
}
private void ImageUpload()
{
/* this code used to make directory name RealImage */
Directory.CreateDirectory(Server.MapPath("RealImage\\"));
HtmlInputFile htmlFile = (HtmlInputFile)BrowseImage0;
if (htmlFile.PostedFile.ContentLength > 0)
{
string sFormat = String.Format("{0:#.##}", (float)htmlFile.PostedFile.ContentLength / 2048);
if (float.Parse(sFormat) < float.Parse("2048"))
{
if (htmlFile.PostedFile != null)
{
ViewState["ImageName"] = htmlFile.PostedFile.FileName.Substring(htmlFile.PostedFile.FileName.LastIndexOf("\\") + 1);//browseImagePath[0];
}
else
{
ViewState["ImageName"] = "";
}
}
else
{
lblError1.Visible = true;
lblError1.Text = "Image Size is Large, please resize it !!";
}
}
else
{
ViewState["ImageName"] = "";
if (ViewState["ImageName"].ToString() == "")
{
lblError1.Visible = true;
lblError1.Text = "Attach an image to upload";
}
return;
}
//This function is used to make image thumbnail
MakeThumbnail();
}
//Return thumbnail callback
public bool ThumbnailCallback()
{
return true;
}
//For image thumbnial
private void MakeThumbnail()
{
System.Drawing.Image myThumbnail150;
object obj = new object();
obj = BrowseImage0;
System.Drawing.Image.GetThumbnailImageAbort myCallback = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
HtmlInputFile hFile = (HtmlInputFile)obj;
if (hFile.PostedFile != null && hFile.PostedFile.ContentLength > 0)
{
//this code used to remove some symbols between image name and replace with space
string imgname1 = hFile.PostedFile.FileName.Replace('%', ' ').Substring(hFile.PostedFile.FileName.LastIndexOf("\\") + 1);
string imgname2 = imgname1.Replace('#', ' ').Substring(imgname1.LastIndexOf("\\") + 1);
string imgname3 = imgname2.Replace('@', ' ').Substring(imgname1.LastIndexOf("\\") + 1);
string imgname4 = imgname3.Replace(',', ' ').Substring(imgname1.LastIndexOf("\\") + 1);
string imgname5 = imgname4.Replace('&', ' ').Substring(imgname1.LastIndexOf("\\") + 1);
Finalimagename = imgname5.ToString();
string imgname = hFile.PostedFile.FileName.Substring(hFile.PostedFile.FileName.LastIndexOf("\\") + 1);
string sExtension = imgname.Substring(imgname.LastIndexOf(".") + 1);
//this code is used to check image extension
if (sExtension.ToLower() == "jpg" || sExtension.ToLower() == "gif" || sExtension.ToLower() == "bmp" || sExtension.ToLower() == "jpeg")
{
if (!File.Exists(MapPath("RealImage\\" + Finalimagename)))
{
hFile.PostedFile.SaveAs(ResolveUrl(Server.MapPath("RealImage\\" + Finalimagename)));
System.Drawing.Image imagesize = System.Drawing.Image.FromFile(ResolveUrl(Server.MapPath("RealImage\\" + Finalimagename)));
Bitmap bitmapNew = new Bitmap(imagesize);
if (imagesize.Width < imagesize.Height)
{
myThumbnail150 = bitmapNew.GetThumbnailImage(150 * imagesize.Width / imagesize.Height, 150, myCallback, IntPtr.Zero);
}
else
{
myThumbnail150 = bitmapNew.GetThumbnailImage(150, imagesize.Height * 150 / imagesize.Width, myCallback, IntPtr.Zero);
}
//Create a new directory name ThumbnailImage
Directory.CreateDirectory(Server.MapPath("ThumbnailImage"));
//Save image in TumbnailImage folder
myThumbnail150.Save(ResolveUrl(Server.MapPath("ThumbnailImage\\")) + Finalimagename,
System.Drawing.Imaging.ImageFormat.Jpeg);
MessageLabel.Text = "Successfully uploaded"
}
}
else
{
lblError1.Visible = true;
lblError1.Text = "Check image extension";
}
}
}
}
Output :
First of all upload image.
Figure1.
This is real image.
Figure2.
This is thumbnail image.
Figure3.
For more information download attached file.