два имени метода getpixel одинаковы

Я пытаюсь открыть и прочитать значения пикселей для двух отдельных изображений в одной и той же форме в С#. Я получаю сообщение об ошибке следующего содержания:

Ошибка 1 Тип «imageAlign.Form1» уже определяет элемент с именем «GetPixels» с теми же типами параметров C:\Users\jason\Documents\Visual Studio 2010\Projects\imageAlign\imageAlign\Form1.cs 81 26 imageAlign

Я думаю, это означает, что у меня есть два метода с одинаковым названием — GetPixels.

Если это просто имя, могу ли я просто переименовать их, чтобы решить проблему — это не повлияет на функциональность GetPixel?

private Color[,] GetPixels1(string filename)
private Color[,] GetPixels2(string filename)

Как это?


person Jason Moore    schedule 10.02.2013    source источник
comment
просто любопытно, какая разница в реализации методов?   -  person bas    schedule 10.02.2013
comment
Ничего такого. Оба они предназначены для получения значений пикселей в изображениях, но для двух разных изображений.   -  person Jason Moore    schedule 10.02.2013
comment
если методы идентичны, зачем объявлять повторяющийся метод? просто вызовите один и тот же метод дважды, один раз с изображением1 и один раз с изображением2 в качестве параметра. Если я неправильно понимаю, что вы говорите: мои искренние извинения. Не стесняйтесь добавить еще немного кода в свой вопрос, чтобы уточнить   -  person bas    schedule 10.02.2013


Ответы (2)


Это означает, что у вас уже есть метод с таким же именем и такими же параметрами. Вы должны либо переименовать свои методы, чтобы отразить их назначение, либо метод перегрузки (путем изменения параметров).

Кажется, что эти методы делают почти одно и то же (таким образом, одно и то же имя и параметры), поэтому я предлагаю реорганизовать их, но по-другому, чем просто переименовать их в GetPixel1 и GetPixel2.

person Zbigniew    schedule 10.02.2013

Я бы просто использовал два разных пространства имен для этих двух классов и НЕ пытался переименовывать методы - для этого, наконец, существуют пространства имен... Похоже,

myFirstNamecpace.GetPixels(..)
mySecondNamespace.GetPixels(...)

[ОТРЕДАКТИРОВАНО - Вопрос ОП]

продолжая 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** 
        }
    }
} 
person Leo Chapiro    schedule 10.02.2013
comment
продолжая GetPixels - я хотел бы получить значения пикселей изображения jpeg и суммировать их в одно целочисленное значение. Но у jpeg-изображения есть красный, зеленый и синий каналы, верно? Я открыл его в окне изображения как растровое изображение. Итак, мне нужно будет перебрать все 3 канала каждого пикселя или просто получить одно значение каждого пикселя? - person Jason Moore; 10.02.2013
comment
[код] private Color[,] GetPixels_1(string filename) { Bitmap myImage1 = (Bitmap)pictureBox1.Image; //Bitmap bmp = (Bitmap)Bitmap.FromFile(filename); Цвет [,] результаты = новый цвет [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); } } вернуть результаты; }[/код] - person Jason Moore; 10.02.2013
comment
кто-нибудь знает, как я могу разместить код здесь? Я пробовал 'code' '/code' и эти [], но без радости - person Jason Moore; 10.02.2013