GetPixel方法未找到(GetPixel method is not found)

2019-10-18 02:26发布

我有一个简单的程序,以及香港专业教育学院包括System.Drawing中,我没有使用getPixel()方法的能力。 它说,它没有找到。 可能是什么原因呢?

using System.Drawing;

namespace isolatepixels
{
    class Program
    {
        static void Main(string[] args)
        {

            System.Drawing.Image image1 = System.Drawing.Image.FromFile(@"C:\1.jpg");

            int x, y;

            // Loop through the images pixels to reset color. 
            for (x = 0; x < image1.Width; x++)
            {
                for (y = 0; y < image1.Height; y++)
                {
                    Color pixelColor = image1.GetPixel(x, y);
                    Color newColor = Color.FromArgb(pixelColor.R, 0, 0);
                    image1.SetPixel(x, y, newColor);
                }
            }



        }
    }
}

Answer 1:

[编辑]正如汉斯在他的评论中说上面,你可以跳过Image.FromFile()并直接通过文件名的Bitmap ,如果你使用的不是图像本身的任何地方构造。

一个Image对象不包含这些方法和也不一个Graphics对象,而是一个Bitmap对象一样。 因此,关键是创建一个Bitmap的图像,采用new Bitmap(image) ,像这样:

// Don't need this: Image image1 = Image.FromFile(@"C:\1.jpg");
Bitmap bitmap = new Bitmap(@"C:\1.jpg");

// Save the image in JPEG format.
bitmap.Save(@"C:\test.bmp", System.Drawing.Imaging.ImageFormat.Bmp);

int x, y;

// Loop through the images pixels to reset color. 

for (x = 0; x < bitmap.Width; x++)
{
    for (y = 0; y < bitmap.Height; y++)
    {
        Color pixelColor = bitmap.GetPixel(x, y);
        Color newColor = Color.FromArgb(pixelColor.R, 0, 0);
        bitmap.SetPixel(x, y, newColor);
    }
}

需要注意的是Bitmap派生自System.Drawing.Image

认为 ,应该工作。



文章来源: GetPixel method is not found