How to change color of Image at runtime

前端 未结 3 1899
情话喂你
情话喂你 2020-12-05 22:02

I would like to know is there any way by which we can change the Image color at runtime. for e.g lets say I am having a JPG bind to an Image control of ASP.Net. Next I am ha

相关标签:
3条回答
  • 2020-12-05 22:49

    I am also facing trouble to under this question. after that based on the some information. I wrote the code manually.Now it works well. If you want to check.you can use it.

    code for change the background image during runtime in C#.net

    you can use simply this code. That is, ==>

    string str; 
    OpenFileDialog od = new OpenFileDialog(); 
    if (od.ShowDialog() == DialogResult.OK) 
    { 
        str = od.FileName;
        this.BackgroundImage=Image.FromFile(str); 
    }
    
    0 讨论(0)
  • 2020-12-05 23:00

    You also try this for web (asp.net) , you can ignore the logic but can see what getpixel & setpixel doing

     public string FileUpload( HttpPostedFileBase file )
      {
         Bitmap bmp = new Bitmap(file.InputStream);
         string valid = "";
    
         for(int i = 0; i < bmp.Width; i++) {
            for(int j = 0; j < bmp.Height; j++) {
               if(bmp.GetPixel(i , j).B < 20) {
                  if(bmp.GetPixel(i , j).B == bmp.GetPixel(i , j).G &&
                     bmp.GetPixel(i , j).B == bmp.GetPixel(i , j).R) {
                     valid = valid + bmp.GetPixel(i , j). + "<br/>";
                     bmp.SetPixel(i , j , Color.DarkGreen);
                  }
               }
            }
         }
    
         SaveImage(bmp);
    
         return valid;
      }
    
      private void SaveImage( Bitmap newbmp )
      {
         string path = Path.Combine(Server.MapPath("~/Images") , "ScaledImage.jpeg");
         newbmp.Save(path , System.Drawing.Imaging.ImageFormat.Jpeg);
      }
    
    0 讨论(0)
  • 2020-12-05 23:01

    Here is a code sample that loads a JPEG, changes any red pixels in the image to blue, and then displays the bitmap in a picture box:

    Bitmap bmp = (Bitmap)Bitmap.FromFile("image.jpg");
    for (int x = 0; x < bmp.Width; x++)
    {
        for (int y = 0; y < bmp.Height; y++)
        {
            if (bmp.GetPixel(x, y) == Color.Red)
            {
                bmp.SetPixel(x, y, Color.Blue);
            }
        }
    }
    pictureBox1.Image = bmp;
    

    Warning: GetPixel and SetPixel are incredibly slow. If your images are large and/or performance is an issue, there is a much faster way to read and write pixels in .NET, but it's a little bit more work.

    0 讨论(0)
提交回复
热议问题