2013-02-10 3 views
0

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

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

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

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

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

Нравится?

+0

просто любопытно, какая разница в реализации методов? – bas

+0

Ничего. Они оба должны получать значения пикселей в изображениях, но для двух разных изображений –

+0

, если методы идентичны, почему вы объявляете дублирующий метод? просто вызовите один и тот же метод дважды, один раз с изображением1 и один раз с параметром image2 в качестве параметра. Если я неправильно понимаю, что вы говорите: мои искренние извинения. Не стесняйтесь добавить еще один код в свой вопрос, чтобы уточнить – bas

ответ

0

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

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

0

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

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** 
     } 
    } 
} 
+0

ahh ok! Круто. Спасибо –

+0

продолжение с GetPixels - я хотел бы получить значения пикселей jpeg-изображения и суммировать их в одно целое значение. Но изображение jpeg имеет красный, зеленый и синий каналы, верно? Я открыл его в окне изображения в виде растрового изображения. Итак, мне нужно будет пропустить все 3 канала каждого пикселя или просто получить одно значение каждого пикселя? –

+0

[code] private Цвет [,] GetPixels_1 (string filename) { Bitmap myImage1 = (Растровое изображение) pictureBox1.Image; // Bitmap bmp = (Bitmap) Bitmap.FromFile (имя файла); Цвет [,] results = new Цвет [myImage1.Width, myImage1.Высота]; для (Int у = 0, Y

Смежные вопросы