Monday, January 26, 2009

Resizing image on the fly!


public partial class Thumbnail : System.Web.UI.Page
{
const string Q_IMG = "img";
const string Q_WIDTH = "w";
const string Q_HEIGHT = "h";

const int DEFAULT_WIDTH = 120;
const int DEFAULT_HEIGHT = 118;

int Thumbnail_Width
{
get
{
if (Request.QueryString[Q_WIDTH] != null)
return Convert.ToInt32(Request.QueryString[Q_WIDTH]);
else
return DEFAULT_WIDTH;
}
}

int Thumbnail_Height
{
get
{
if (Request.QueryString[Q_HEIGHT] != null)
return Convert.ToInt32(Request.QueryString[Q_HEIGHT]);
else
return DEFAULT_HEIGHT;
}
}

///
/// just a dummy delegate for the required GetThumbnailImageAbort delegate
///
///
public bool ImgAbort_Callback()
{
return false;
}


protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request.QueryString[Q_IMG] != null)
{
try
{
using (System.Drawing.Image img = System.Drawing.Image.FromFile(Server.MapPath(Request.QueryString[Q_IMG])))
{
using (System.Drawing.Image thumb = img.GetThumbnailImage(
this.Thumbnail_Width,
this.Thumbnail_Height,
new System.Drawing.Image.GetThumbnailImageAbort(ImgAbort_Callback),
IntPtr.Zero))
{
Response.ContentType = "image/jpeg";
thumb.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
}
catch { }
}
}
}
}


Share/Save/Bookmark

No comments:

Post a Comment