Последние записи
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
- wprintf как напечатать кириллицу
- Взаимодействие через командную строку
- Сравнение языков на массивах. Часть 1
- Сравнение языков по скорости
- Чтение огромных xml-файлов
- Как в Python+Selenium webdriver открыть новую вкладку в уже открытом браузере?
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
23rd
Июн
Яркость, контраст, превратить изображение в ч/б
Posted by obzor under Delphi
Есть BitMap. Нужно
1. Сделать его ч/б
2. Изменить яркость
3. Изменить контраст
Для развлечения конечно можно реализовывать всё самому, но каждая функция самописного комбайна будет уступать аналогичной функции специализированной программы, разработанной целой командой. Упросить себе жизнь можно, используя готовые библиотеки или дергая из своей программы другие программы с требуемыми параметрами.
Всё элементарно решается простейшими формулами.
Например яркость:
-сканируем изображение построчно, определяем цвет каждого пикселя
-каждый пиксель раскладываем на RGB
-для увеличения яркости прибавляем одинаковое значение к каждому RGB
-для уменьшения яркости отнимаем одинаковое значение от каждого RGB
— собираем RGB обратно и записываем в то место изображения, откуда его взяли.
Для контраста чуть сложнее формула, псевдокод такой, выделяем r,g,b, значение контраста Amount:
rg=(Abs(127-r) * Amount)/ 255;
gg=(Abs(127-g) * Amount)/ 255;
bg=(Abs(127-b) * Amount)/ 255;
If r>127 : r=r+rg: Else : r=r-rg: EndIf ;
If g>127 : g=g+gg: Else : g=g-gg: EndIf;
If b>127 : b=b+bg: Else : b=b-bg: EndIf;
Ч.б. формула самая простая — разложили на r,g,b и вычислить среднее значение
col = (R+G+B)/3
собираем RGB обратно, используя для всех rgb одно и то же значение Col
r = col
g= col
b = col
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)