📜  c# 从位图单击获取像素 - C# (1)

📅  最后修改于: 2023-12-03 15:13:50.247000             🧑  作者: Mango

C# 从位图单击获取像素

当我们需要从一个图像中获取像素数据时,C# 提供了一个方便的方法。我们可以使用 Bitmap 类来加载图像,并使用其 GetPixel() 方法获取每个像素的值。在本文中,我们将介绍如何从位图单击获取像素数据。

步骤 1 - 加载图像

我们需要先加载一个图像以供处理。我们可以使用 OpenFileDialog 类选择一个图像文件,然后使用 Bitmap 类从文件中加载图像。以下是加载图像的代码片段:

using System.Drawing;
using System.Windows.Forms;

// ...

private void LoadImage()
{
    OpenFileDialog openFileDialog = new OpenFileDialog();

    if (openFileDialog.ShowDialog() == DialogResult.OK)
    {
        Bitmap bitmap = new Bitmap(openFileDialog.FileName);

        // Do something with the bitmap...
    }
}
步骤 2 - 获取像素

一旦我们加载了图像,我们可以使用 GetPixel() 方法来获取图像中单个像素的 RGB 值。以下是获取像素的代码片段:

private void imagePictureBox_MouseClick(object sender, MouseEventArgs e)
{
    Bitmap bitmap = (Bitmap)imagePictureBox.Image;

    if (bitmap != null)
    {
        Color pixel = bitmap.GetPixel(e.X, e.Y);

        // Do something with the pixel...
    }
}

在这个示例中,我们在单击 imagePictureBox 控件时获取图像的 RGB 值。注意,我们使用 (Bitmap)imagePictureBox.Image 将控件中的图像转换为 Bitmap 对象。然后,我们使用 GetPixel(e.X, e.Y) 方法来获取鼠标单击位置的像素值。

完整代码
using System.Drawing;
using System.Windows.Forms;

namespace BitmapPixel
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void LoadImage()
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                Bitmap bitmap = new Bitmap(openFileDialog.FileName);

                // Do something with the bitmap...
            }
        }

        private void imagePictureBox_MouseClick(object sender, MouseEventArgs e)
        {
            Bitmap bitmap = (Bitmap)imagePictureBox.Image;

            if (bitmap != null)
            {
                Color pixel = bitmap.GetPixel(e.X, e.Y);

                // Do something with the pixel...
            }
        }
    }
}

以上是从位图单击获取像素的示例代码。如果你需要更多的位图处理操作,可以阅读 System.Drawing 命名空间的文档。