Project Source Download: http://download.csdn.net/detail/mostone/6360007
![](//img-blog.csdn.net/20131006173759218?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbW9zdG9uZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
-
public partial class FormMain : Form
-
{
-
-
Bitmap bmpZoom = null;
-
Bitmap bmpSrc = null;
-
-
public FormMain()
-
{
-
InitializeComponent();
-
}
-
-
private void button1_Click(object sender, EventArgs e)
-
{
-
try
-
{
-
DialogResult isDone = openFileDialog1.ShowDialog();
-
if (isDone == DialogResult.OK)
-
{
-
pictureBox1.Image = null;
-
pictureBox2.Image = null;
-
bmpSrc = null;
-
bmpZoom = null;
-
-
Image img = Bitmap.FromFile(openFileDialog1.FileName);
-
pictureBox1.Image = img;
-
bmpSrc = new Bitmap(img);
-
}
-
}
-
catch (Exception ex)
-
{
-
pictureBox1.Image = null;
-
bmpSrc = null;
-
MessageBox.Show(ex.Message);
-
}
-
-
}
-
-
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
-
{
-
const int zoomSize = 8;
-
if (this.bmpSrc == null)
-
{
-
return;
-
}
-
-
bmpZoom = null;
-
bmpZoom = new Bitmap(pictureBox2.Width, pictureBox2.Height);
-
Graphics grpDst = Graphics.FromImage(bmpZoom);
-
-
-
int width = pictureBox2.Width / zoomSize;
-
int height = pictureBox2.Height / zoomSize;
-
-
int offsetX = width / 2;
-
int offsetY = height / 2;
-
-
int x = e.X - offsetX;
-
int y = e.Y - offsetY;
-
if (offsetX + e.X >= bmpSrc.Width)
-
{
-
x = bmpSrc.Width - offsetX * 2;
-
}
-
else if (x < 0)
-
{
-
x = 0;
-
}
-
-
if (offsetY + e.Y >= bmpSrc.Height)
-
{
-
y = bmpSrc.Height - offsetY * 2;
-
}
-
else if (y < 0)
-
{
-
y = 0;
-
}
-
-
Color color;
-
int oriX = x;
-
for (int row = 0; row < pictureBox2.Height; row += zoomSize)
-
{
-
if (y >= bmpSrc.Height) break;
-
-
for (int col = 0; col < pictureBox2.Width; col += zoomSize)
-
{
-
if (x >= bmpSrc.Width) break;
-
-
-
color = bmpSrc.GetPixel(x, y);
-
-
grpDst.FillRectangle(new SolidBrush(color), col, row, zoomSize, zoomSize);
-
x++;
-
}
-
x = oriX;
-
y++;
-
}
-
-
pictureBox2.Image = bmpZoom;
-
-
}
-
-
private void pictureBox2_MouseClick(object sender, MouseEventArgs e)
-
{
-
if (bmpZoom == null) return;
-
-
Color color = bmpZoom.GetPixel(e.X, e.Y);
-
labelColor.BackColor = color;
-
String val = color.ToArgb().ToString("X");
-
textBox1.Text = "#" + val.Substring(2);
-
textBox2.Text = "#" + rgb565FromColor(color).ToString("X");
-
textBox3.Text = "#" + rgb565PFromColor(color).ToString("X");
-
}
-
-
private int rgb565FromColor(Color color)
-
{
-
int val = color.B >> 3 << 11;
-
val |= color.G >> 2 << 5;
-
val |= color.R >> 3;
-
-
return val;
-
}
-
-
private int rgb565PFromColor(Color color)
-
{
-
int val = color.R >> 3 << 11;
-
val |= color.G >> 2 << 5;
-
val |= color.B >> 3;
-
-
return val;
-
}
-
-
private void button2_Click(object sender, EventArgs e)
-
{
-
MessageBox.Show(@"Image Color Picker
-
-
by mostone@hotmail.com
-
http:
-
2013-10-06", "About...");
-
}
-
}