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.
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);
}
}
}
}