Путь разработчика    

Гамма-коррекция изображения в C#

eda2480d

Гамма-коррекция или просто гамма - это нелинейное изменение красных, зеленых и синих компонентов пикселей в изображении. Сообщение Используйте объект ImageAttributes для настроить яркость изображения на C# , объясняет, как использовать объекты ImageAttributes и ColorMatrix для настройки яркости изображения. Поскольку он масштабирует яркость каждого пикселя на один и тот же коэффициент, результат может сделать яркие области слишком яркими, а темные области слишком темными.

Например, предположим, что вы осветляете изображение. Яркие области изображения, вероятно, не нуждаются в таком ярком свете, как темные области. И наоборот, если вы затемняете изображение, темные области, вероятно, не нуждаются в таком темном, как яркие области.

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

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

Следующий метод AdjustGamma выполняет гамма-коррекцию изображения.

Python

Этот код создает объект ImageAttributes и использует его метод SetGamma для установки значения коррекции гаммы. Это значение должно быть больше 0,0. Типичные значения варьируются от 1 до 2.2.

После инициализации объекта ImageAttributes программа использует его для рисования исходного изображения в результате Bitmap и возвращает результат. См. Пример Использование объекта ImageAttributes для настройки яркости изображения на C# для получения дополнительной информации о том, как работает часть чертежа.

Источник: http://csharphelper.com/blog/2016/12/provide-gamma-correction-for-an-image-in-c/



Отзывы (через Facebook):

Оставить отзыв с помощью аккаунта FaceBook:

Среда разработки NetBeans

NetBeans – бесплатно распространяемая среда разработки для языков C, C++, Java, PHP, Javascript, Python и прочих. Этот проект разрабатывается независимой г...

26 11 2020 20:48:13

Что делает ключевое слово yield в Python?

Если компилятор определяет ключевое слово yield внутри функции, эта функция больше не возвращается через оператор return. Вместо этого он немедленно возвра...

25 11 2020 16:11:14

Циклы в Java Примеры и синтаксис

Существует много ситуаций, когда вы хотите выполнить блок утверждений несколько раз в ваших приложениях. Петли могут выполнять блок кода несколько раз. Цик...

24 11 2020 9:48:41

Разработка веб-приложений с помощью PHP и MySQL (Люк Веллинг, Лора Томсон)

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

23 11 2020 6:22:20

Нарисуйте цветное колесо в C#

В программе используется PathGradientBrush, чтобы заполнить цветовое колесо цветовыми образцами. Рисование колеса в основном автоматическое, но прикладывае...

22 11 2020 14:12:20

Введение в потоки Thread в Java

В чем разница между Reader и InputStream в Java Процесс представляет собой экземпляр выполняемой компьютерной программы. Процесс может выполняться процессо...

21 11 2020 21:44:16

Язык программирования Python (Д.С.Откидач)

Python является простым и, в то же время, мощным интерпретируемым объектно-ориентированным языком программирования. Он предоставляет структуры данных высок...

20 11 2020 9:29:22

Списки клонов и массивы объектов в C#

Это последнее сообщение, которое я напишу о клонах, по крайней мере на некоторое время. Некоторые классы коллекций уже могут создавать клоны. Например, мас...

19 11 2020 15:13:52

Класс FileWriter в Java

FileWriter - это представление символа Java.io. Это означает, что он может использоваться для написания символов. Он расширяет OutputStreamWriter, который...

18 11 2020 2:37:21

Масштабируйте рисунок, чтобы он соответствовал целевой области в C#

Многие программы рисования должны масштабировать чертеж, чтобы он соответствовал целевой области, либо с растяжкой, либо без нее. Следующий метод MapDrawin...

17 11 2020 5:20:15

Языки программирования для создания игр

Какие существуют языки программирования для создания игр? Одной из развитых и востребовательных в современном обществе сфер программирования является разработка игр и развлекательных приложений....

16 11 2020 3:39:28

Нарисуйте отмеченную круговую диаграмму в C#

Пример Нарисовать круговую диаграмму на C# показывает, как для рисования простой круговой диаграммы. Этот пример добавляет метки в срезы пирога. В этом при...

15 11 2020 7:20:10

В чем разница между JDK и JRE?

JDK является акронимом для Java Development Kit. Это набор программных компонентов, который используется для разработки приложений на основе Java, включает...

14 11 2020 13:44:20

Нарисуйте круговую диаграмму в C#

В этом примере показано, как рисовать круговую диаграмму, используя методы, описанные в сообщении Залить и нарисовать кусочки пирога в C# . В этом примере...

13 11 2020 10:36:25

Что такое сборщик мусора в Java?

Для многих программистов управление памятью Java является одной из наиболее привлекательных функций, потому что Java-программисту никогда не приходится име...

12 11 2020 9:20:14

Получить операционную систему компьютера в C#

В этом примере используется следующий код для отображения версии операционной системы при ее запуске. Этот пример просто получает объект System.Environment...

11 11 2020 12:32:30

Форматировать текст в RichTextBox в C#

В этом примере используется следующий код для форматирования трех фрагментов текста в первом RichTextBox. Чтобы упростить форматирование, следующий метод S...

10 11 2020 21:43:50

Нарисуйте текст на кривой в C#

Пример Нарисуйте текст в сегменте линии в C# показывает, как рисовать текст, следующий за сегментом линии. В этом примере этот код используется для рисован...

09 11 2020 6:45:31

Нарисуйте кривую с более четко очерченными цветами в C#

В сообщении Нарисуйте кривую с резким оговоренные цвета в C# . Я упомянул, что вы можете достичь еще более резких цветов, если используете TextureBrush. Ес...

08 11 2020 20:53:34

Как нарисовать нумерованные кнопки и сохранить их в файлах на C#

Этот пример очень похож на предыдущий Нарисуйте пронумерованные круги и сохраните их в файлах на C# , за исключением того, что рисует круги, чтобы они выгл...

07 11 2020 9:42:48

Отобразить диалоговые формы многократного использования в C#

Пример Сделать диалог со стандартным диалогом функции на C# показывают наиболее распространенный подход к созданию диалогов. Всякий раз, когда ему нужно от...

06 11 2020 18:59:41

Операции Java LinkedList

Связанные списки относятся к простейшим и наиболее распространенным структурам данных. Массивы и связанные списки аналогичны, так как они хранят коллекции...

05 11 2020 13:59:52

Прочитайте значения реестра (чтобы получить размер значка на рабочем столе) в C#

Чтобы упростить использование методов реестра, в этом примере определяется класс RegistryTools, который содержит статические методы взаимодействия с реестр...

04 11 2020 3:19:42

Как удалить контекстное меню элемента управления TextBox в C#

Обычно элемент управления TextBox имеет контекстное меню, которое появляется при щелчке правой кнопкой мыши по нему, но что, если вы не хотите этого контек...

03 11 2020 2:11:44

Инициализировать двумерные массивы в C#

Пример Инициализация массивов, списков и экземпляров классов в C# объясняется, как инициализировать одномерный массив. Вы можете использовать аналогичный с...

02 11 2020 6:26:26

Список USB-устройств в C#

Эта программа использует WMI (инструментарий управления Windows) для запроса на устройства USB. Чтобы использовать WMI, добавьте ссылки на System.Managemen...

01 11 2020 22:28:55

Преобразование типа Python

Python имеет пять стандартных типов данных. Иногда необходимо преобразовывать значения из одного типа в другой. Python определяет функции преобразования ти...

31 10 2020 17:56:51

Использование лямбда-выражений в C#

Пример Использование лямбда-выражений в C# показало, как использовать лямбда выражения для сжатого создания анонимного метода, который принимает параметры...

30 10 2020 6:19:34

Использование полос прокрутки для выбора цветов RGB и HLS в C#

Пример Преобразование между цветами RGB и HLS модели в C# объясняют, как преобразовать цветные модели RGB и HLS. В этом примере используется аналогичный ко...

29 10 2020 11:58:34


Parse error: syntax error, unexpected ',' in /home/users/9/9165884745/domains/flash-mx.ru/lessons/926.php on line 69