Click here to Skip to main content
15,890,438 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi, Actually I wish to round corner the Image and then display it in updatePanel...
Without roundcorner functions it's working fine...But when I run the functions for round corner image, its giving File Not Found Error()

My Codes
HTML
protected void Timer1_Tick(object sender, EventArgs e)
       {
           NameValueCollection MyImgList = new NameValueCollection();
           MyImgList.Add("Img1", "~/MyImages/Picture1.jpg");
           MyImgList.Add("Img2", "~/MyImages/Picture2.jpg");
           MyImgList.Add("img3", "~/MyImages/Picture3.jpg");
           Random Rnd = new Random();
           int Indx = Rnd.Next(0, 4);
           path = MyImgList[Indx].ToString();
           //LtrImg.Text = "<img src='" + Page.ResolveUrl(path) + "' alt=''/>";
           using (System.Drawing.Image imgin = System.Drawing.Image.FromFile(path))
           {
               System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(imgin.Width, imgin.Height);
               Graphics g = Graphics.FromImage(bitmap);
               g.Clear(Color.White);
               Brush brush = new System.Drawing.TextureBrush(imgin);
               FillRoundedRectangle(g, new Rectangle(0, 0, imgin.Width, imgin.Height), roundedDia, brush);
               // done with drawing dispose graphics object.
               g.Dispose();
               // Stream Image to client.
               Response.Clear();
               Response.ContentType = "image/pjpeg";
               bitmap.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
               Response.End();
               // dispose bitmap object.
               bitmap.Dispose();   /* May be Here */
           }
           LtrImg.Text = "<img src='" + Page.ResolveUrl(path) + "' alt=''/>";
     }

Thanks for the guidances..
Posted
Comments
Mahesh Bailwal 25-Aug-13 4:56am    
at which line number are you getting this error?

Please refer below link regarding "Serving Dynamic Content with HTTP Handlers".
Section - Creating the ImageHandler HTTP Handler

http://msdn.microsoft.com/en-us/library/ms972953.aspx[^]

Hope this might be helpful to solve this problem.
 
Share this answer
 
v2
Anyhow I succeeded by the following way..

C#
protected void Timer1_Tick(object sender, EventArgs e)
        {   NameValueCollection MyImgList = new NameValueCollection();
            MyImgList.Add("MyImage1", "~/MyImages/Picture1.jpg");
            MyImgList.Add("MyImage2", "~/MyImages/Picture2.jpg");
            MyImgList.Add("MyImage3", "~/MyImages/Picture3.jpg");
            Random Rnd = new Random();
            int Indx = Rnd.Next(0, 4);
            Session["ImgId"] = Indx.ToString();
            Image1.ImageUrl = "ImgWebForm.aspx?ImgId="+Indx.ToString().Trim(); 
         }


and then
HTML
ImgWebForm.aspx Page_Load()
{
string ImgFileId = Session["ImgId"].ToString();
            switch (ImgFileId)
            {
                case "1":
                    path = Server.MapPath("~/MyImages/Picture1.jpg");
                    break;
                case "2":
                    path = Server.MapPath("~/MyImages/Picture2.jpg");
                    break;
                case "3":
                    path = Server.MapPath("~/MyImages/Picture3.jpg");
                    break;
            }
            int roundedDia = 50;
            using (System.Drawing.Image imgin = System.Drawing.Image.FromFile(path))
            {
                System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(imgin.Width, imgin.Height);
                Graphics g = Graphics.FromImage(bitmap);
                g.Clear(Color.White);
                Brush brush = new System.Drawing.TextureBrush(imgin);
                FillRoundedRectangle(g, new Rectangle(0, 0, imgin.Width, imgin.Height), roundedDia, brush);
                // done with drawing dispose graphics object.
                g.Dispose();
                // Stream Image to client.
                Response.Clear();
                Response.ContentType = "image/pjpeg";
                bitmap.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
                Response.End();
                // dispose bitmap object.
                bitmap.Dispose();
            }
public static void FillRoundedRectangle(Graphics g, Rectangle r, int d, Brush b)
        {
            // anti alias distorts fill so remove it.
            System.Drawing.Drawing2D.SmoothingMode mode = g.SmoothingMode;
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighSpeed;
            g.FillPie(b, r.X, r.Y, d, d, 180, 90);
            g.FillPie(b, r.X + r.Width - d, r.Y, d, d, 270, 90);
            g.FillPie(b, r.X, r.Y + r.Height - d, d, d, 90, 90);
            g.FillPie(b, r.X + r.Width - d, r.Y + r.Height - d, d, d, 0, 90);
            g.FillRectangle(b, r.X + d / 2, r.Y, r.Width - d, d / 2);
            g.FillRectangle(b, r.X, r.Y + d / 2, r.Width, r.Height - d);
            g.FillRectangle(b, r.X + d / 2, r.Y + r.Height - d / 2, r.Width - d, d / 2);
            g.SmoothingMode = mode;
        }


Let it be useful to someoneelse like me..
Thankyou ...
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month


CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900