两个getpixel方法的名称相同
本文关键字:getpixel 方法 两个 | 更新日期: 2023-09-27 17:58:27
我正在尝试打开并读取c#中同一表单上两个单独图像的像素值。我在阅读以下内容时出错:
错误1类型"imageAlign.Form1"已定义名为的成员具有相同参数的"GetPixels"类型C:''Users''jason''Documents''Visual Studio2010''Projects''imageAlign ''imageAlign '' Form1.cs 81 26 imageAlign
我想这意味着我有两个同名的方法——GetPixels。
如果这只是一个名称,我可以重命名它们来解决问题吗?这不会影响GetPixel功能?
private Color[,] GetPixels1(string filename)
private Color[,] GetPixels2(string filename)
像那样?
这意味着您已经有了具有相同名称和参数的方法。您必须重命名方法以反映其用途,或者重载方法(通过更改参数)。
这些方法似乎在做几乎相同的事情(因此名称和参数相同),所以,我建议重构它们,但方式不同于将它们重命名为GetPixel1
和GetPixel2
。
我只会为这两个类使用两个不同的名称空间,而不会尝试重命名方法-因此名称空间最终是。。。看起来像
myFirstNamecpace.GetPixels(..)
mySecondNamespace.GetPixels(...)
[编辑-OP问题]
继续GetPixels-我想获得jpeg图像的像素值,并将它们相加为一个整数值。但是jpeg图像有红色、绿色和蓝色通道,对吧?我已经把它作为位图在图片框中打开了。那么,我需要遍历每个像素的所有3个通道,还是只获得每个像素的一个值?
private Color[,] GetPixels_1(string filename)
{
Bitmap myImage1 = (Bitmap)pictureBox1.Image;
//Bitmap bmp = (Bitmap)Bitmap.FromFile(filename);
Color[,] results = new Color[myImage1.Width, myImage1.Height];
for (int y = 0; y < myImage1.Height; y++)
{
for (int x = 0; x < myImage1.Width; x++)
{
results[x, y] = myImage1.GetPixel(x, y);
}
}
return results;
}
[已编辑-答案]若要粘贴代码,请使用上面编辑器的{}。所以,我找到了这个,HTH:https://stackoverflow.com/a/10128284/1758762
using System.Drawing;
Bitmap img = new Bitmap("*imagePath*");
for (int i = 0; i < img.GetWidth; i++)
{
for (int i = 0; i < img.GetWidth; i++)
{
Color pixel = img.GetPixel(i,j);
if (pixel == *somecondition*)
{
**Store pixel here in a array or list or whatever**
}
}
}