Project Source Download: http://download.csdn.net/detail/mostone/6360007
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); // zoom to 8x 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; // get pixel color color = bmpSrc.GetPixel(x, y); // draw zoom block 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://blog.csdn.net/mostone 2013-10-06", "About..."); } }}