#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2012
    Posts
    16
    Rep Power
    0

    Display average pixel values


    Hi.
    I have a project which opens an image in PictureBox1, no problem. But the Public Static Color method at the bottom of the code is not working. I was hoping it would display the average value of the pixels in the image. Can anybody help me to understand why it is not working please? Thank you.

    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing.Imaging;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    
    namespace imageAlign
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private void button1_Click(object sender, EventArgs e)
            {
                Bitmap myImage1 = (Bitmap)pictureBox1.Image;
                OpenFileDialog ofd1 = new OpenFileDialog();
                if (ofd1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    pictureBox1.Image = Image.FromFile(ofd1.FileName);
                    Image k = Image.FromFile(ofd1.FileName);
                    Graphics g = Graphics.FromImage(k);
                    g.FillRectangle(Brushes.White, 155, 235, 120, 70);
                    g.DrawRectangle(Pens.YellowGreen, 155, 235, 120, 70);
                    StringFormat sf = (StringFormat)StringFormat.GenericTypographic.Clone();
                    sf.Alignment = StringAlignment.Center;
                    sf.LineAlignment = StringAlignment.Center;
    
                    g.DrawString(DateTime.Now.ToShortDateString(), new
                    Font("Arial", 14, GraphicsUnit.Point), Brushes.Black, new RectangleF(157, 237, 114, 65), sf);
    
                    g.Dispose();
                    k.Save("C:\\testimage.jpeg", ImageFormat.Jpeg);
    
    
    
                    Image image_rect = Image.FromFile("C:\\testimage.jpeg");
                    pictureBox3.Image = image_rect;
                    //pictureBox3.Height = image_rect.Height;
                    //pictureBox3.Width = image_rect.Width;
    
                    k.Dispose();
                }
            }
    
                 public static Color getDominantColor(Bitmap myImage1)
                 {
                      //Used for tally
                int i = 0;
                int j = 0;
                int r = 0;
                int g = 0;
                int b = 0;
    
                int total = 0;
    
                for (i = 0; i < myImage1.Width; i++)
                {
                    for (j = 0; j < myImage1.Height; j++)
                    {
                        Color clr = myImage1.GetPixel(i, j);
    
                        r += clr.R;
                        g += clr.G;
                        b += clr.B;
    
                        total++;
                    }
                }
    
                //Calculate average
                r /= total;
                g /= total;
                b /= total;
    
                
                Console.WriteLine(j.ToString() + " " + i.ToString());
                return Color.FromArgb(r, g, b);
                }
        
    
    
               
            private void button2_Click(object sender, EventArgs e)
            {
                Bitmap myImage2 = (Bitmap)pictureBox2.Image;
                OpenFileDialog ofd2 = new OpenFileDialog();
                if (ofd2.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    pictureBox2.Image = Image.FromFile(ofd2.FileName);
                }
            }
     
        }
    
    }
  2. #2
  3. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jan 2013
    Posts
    7
    Rep Power
    0
    Would I be correct in understanding that this is C# code?

    Please define "not working". How is it not working?
    Is the code compiling? If not, then what are the compile errors (it might also be helpful to state what compiler you are using)? If it does compile then please describe what is happening.
  4. #3
  5. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Oct 2012
    Posts
    187
    Rep Power
    82
    Well, one obvious problem is that your getDominantColor method is not being executed by any event subroutine etc. Thus, it is "not working".

    Edit. If you're using Visual Studio, you can view the output by opening the Output Window from the Debug->Window->Output menu option.
    Last edited by BobS0327; February 5th, 2013 at 03:23 PM.

IMN logo majestic logo threadwatch logo seochat tools logo