ASPX code:
<div style="overflow:hidden;position:relative;width:250px;height:200px;">
<asp:Image ID="img" runat="server" />
</div>
<asp:FileUpload ID="fileUploadCtrl" runat="server"/>
<asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="btnUpload_OnClick" />
ASPX.CS code:
protected void btnUpload_OnClick(object sender, EventArgs e)
<div style="overflow:hidden;position:relative;width:250px;height:200px;">
<asp:Image ID="img" runat="server" />
</div>
<asp:FileUpload ID="fileUploadCtrl" runat="server"/>
<asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="btnUpload_OnClick" />
ASPX.CS code:
protected void btnUpload_OnClick(object sender, EventArgs e)
{
if (fileUploadCtrl.HasFile)
{
HttpPostedFile PostedImg = fileUploadCtrl.PostedFile;
string ftype = PostedImg.ContentType;
string fname = PostedImg.FileName;
string ext = fname.ToString().Substring(fname.LastIndexOf("."), fname.Length - fname.LastIndexOf("."));
if (ext == ".jpg" || ext == ".bmp" || ext == ".gif" || ext == ".png")
{
string ImgName = "Image1" + ext;//Your Image name
#region Original Size
fileUploadCtrl.SaveAs(Server.MapPath("~/images/original/" + ImgName));
#endregion
Bitmap originalBMP = new Bitmap(fileUploadCtrl.PostedFile.InputStream);
#region Required Size
string ImgStyle = "";//Required Size Width=250;Height=200
int resizeheight = 1, resizewidth = 1;
if (originalBMP.Width > originalBMP.Height)
{
double ratio = (double)200 / originalBMP.Height;
double width = (double)originalBMP.Width * ratio;
resizewidth = (int)width;
resizeheight = 200;
}
else if (originalBMP.Width <= originalBMP.Height)
{
double ratio = (double)250 / originalBMP.Width;
double height = (double)originalBMP.Height * ratio;
resizewidth = 250;
resizeheight = (int)height;
}
Bitmap newBMP = new Bitmap(originalBMP, resizewidth, resizeheight);
Graphics oGraphics = Graphics.FromImage(newBMP);
oGraphics.SmoothingMode = SmoothingMode.AntiAlias;
oGraphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
oGraphics.DrawImage(originalBMP, 0, 0, resizewidth, resizeheight);
newBMP.Save(Server.MapPath("~/images/" + ImgName));
if (originalBMP.Width > originalBMP.Height)
{
int margin = FindHeightOrWidth(ImgName, false) - 250;
int left = margin / 2;
ImgStyle = "left:" + (-left).ToString() + "px";
}
else if (originalBMP.Width <= originalBMP.Height)
{
int margin = FindHeightOrWidth(ImgName, true) - 200;
int top = margin / 2;
ImgStyle = "top:" + (-top).ToString() + "px";
}
originalBMP.Dispose();
newBMP.Dispose();
oGraphics.Dispose();
#endregion
//Save the ImgName and ImgStyle in database when ever want to show the image the do these things
img.ImageUrl = "~/images/" + ImgName;
if (ImgStyle.Contains("top:"))
img.Style.Add("top", ImgStyle.Replace("top:", ""));
else
img.Style.Add("left", ImgStyle.Replace("left:", ""));
#region To Delete the uploaded images
File.Delete(Server.MapPath("~/images/original/" + ImgName));
File.Delete(Server.MapPath("~/images/" + ImgName));
#endregion
}
}
}
public int FindHeightOrWidth(string filename, Boolean ReturnHeightWidth)
{
FileStream fs = new FileStream(MapPath("~/images/" + filename), FileMode.Open, FileAccess.Read, FileShare.Read);
System.Drawing.Image image = System.Drawing.Image.FromStream(fs);
int fileWidth = 1, fileHeight = 1;
try
{
fileWidth = image.Width;
fileHeight = image.Height;
}
catch (Exception ex) { }
return ReturnHeightWidth ? fileHeight : fileWidth;
}Tag: Implementing image aspect ratio in asp.net, Resizing uploaded images in ASP.Net
No comments:
Post a Comment