none
Робота с графикой C#(WindowsForms Application) RRS feed

  • Вопрос

  • Добрый вечер.
    Вообщем,нужна помощь,в работе с графикой в С#.
    В частности:Есть форма-родитель,из которой,я рисую изображение,в одном дочернем окне,и затем при выборе пункта "Гистограмма " (из контекстного меню  формы-родителя),  в новом дочернем окне надо построить гистограмму яркости пикселей изображения .Насчёт,загрузки изображения,я разобрался,а вот с гистограммой никак.Может,ли кто-нибудь написать пример функции рисующей гистограмму яркости пикселей изображения,,и как её вызвать и собственно отобразить(желательно-бы за-комментировать самые ключевые моменты). 

Ответы

  • Здравствуйте. Графика в Windows Forms реализуется посредством классов из пространства System.Drawing. Эти классы, по сути, являются управляемой оболочкой API GDI+. Здесь подробности.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

  • Алгоритм построения гистограммы известен. Вы можете написать такую функцию самостоятельно.

    Что касается реализации, учтите следующее. Для получения цвета отдельных пикселов нужно использовать не метод Bitmap.GetPixel (как может показаться на первый взгляд), а преобразовывать изображение в массив байтов с помощью вызова Bitmap.LockBits, и работать элементами массива. GetPixel работает слишком медленно. 

Все ответы

  • Здравствуйте. Графика в Windows Forms реализуется посредством классов из пространства System.Drawing. Эти классы, по сути, являются управляемой оболочкой API GDI+. Здесь подробности.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

  • Алгоритм построения гистограммы известен. Вы можете написать такую функцию самостоятельно.

    Что касается реализации, учтите следующее. Для получения цвета отдельных пикселов нужно использовать не метод Bitmap.GetPixel (как может показаться на первый взгляд), а преобразовывать изображение в массив байтов с помощью вызова Bitmap.LockBits, и работать элементами массива. GetPixel работает слишком медленно.