Перевод части кода C++ Builder в C# - работа с изображением

Узнай цену своей работы

Формулировка задачи:

Подскажите, пожалуйста, как эти 3 строчки написанные в Builder записать в C#. Особенно не понятен Canvas. // Непосредственно в следующей строке происходит считывание значения яркости //canvas (холст) - стандартная функция Builder'а для работы с изображениями. Canvas — это поверхность формы или компонента image, на которой соответствующие методы могут вычерчивать графические примитивы. //Pixels[x][y] - представляющее собой двумерный массив, элементы которого содержат информацию о цвете точек холста.
       crColor=(COLORREF)ImageSource->Canvas->Pixels[x][y];
       R=GetRValue(crColor);       // Значения яркости текущего пикселя заносим в R,
       PixIn[x][y]=R;       // Заносим значения яркости текущего пикселя в массив PixIn по соответствующему адресу.
Ну это записано в циклах for (int x=0;x<=maxH-1;x++) // По столбцам от 0 до максимальной высоты for (int y=0;y<=maxW-1;y++) // По строкам от 0 до максимальной ширины { ... } В C# это:
           for (int i = 0; i <= maxH - 1; i++) // По столбцам от 0 до максимальной высоты
               {
                   for (int j = 0; j <= maxW - 1; j++) // По строкам от 0 до максимальной ширины
                   {
                   ...  //Те самые 3 строчки
                   }
               }
А массив PixIn это:
int PixIn[1024][1024]  или в C# int[,] PixIn = new int [1024, 1024];
// PixIn - в этот массив будут записаны значения яркости ВСЕЙ пикселей изображения

Решение задачи: «Перевод части кода C++ Builder в C# - работа с изображением»

textual
Листинг программы
fftw inmas, outmas;
             inmas = (...)fftw.malloc(N*N*sizeof(...));  // на входе, до БПФ,
            outmas = (...)fftw.malloc(N*N*sizeof (...));  // на выходе, после БПФ.
 
            for (int i = 0; i <= N - 1; i++)
            {
                for (int j = 0; j <= N - 1; j++)
                {
                    //Рассматривается только действительная часть, мнимая часть равна 0
                    // in[a][b] - a может принимать любое значение от 0, 
                    //b - может принимать 2 значения: 0 для действительной части числа и 1 для мнимой.
                    inmas[j + i*N, 1] = 0;
                    inmas[j + i*N, 0] = PixIn[i + i1, j + j1];
                }
            }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5
Похожие ответы