• 大小: 7KB
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2021-05-25
  • 语言: C#
  • 标签: RGB565  

资源简介

C# 获取图片某像素点RGB565值 ScreenShot:http://blog.csdn.net/mostone/article/details/12353683

资源截图

代码片段和文件信息

// Image Color Picker
// by mostone@hotmail.com
// http://blog.csdn.net/mostone
// 2013-10-06

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace mostone
{
    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 zoom

评论

共有 条评论