Поддержка сайта

Высокие позиции в поисковой системе, на прямую зависят от развития вашего сайта.

Продвижение сайтов

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

Создание сайтов

Мы делаем сайты быстро, недорого и профессионально. От работы с нами, у вас останутся только положительные эмоции.

Конвертация цветного изображения в черно-белое

.

Конвертация цветного изображения в черно-белое

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

Сначала мы вызовем getlmageData (0, 0, 200, 200), чтобы получить доступ ко всему холсту. Затем нам нужно будет получить значения всех каналов каждого пиксела:

Конвертация цветного изображения в черно-белое

Обратите внимание, что в нашем цикле инкремент равен 4, а не привычной единице. Это связано с тем, что каждому элементу изображения сопоставлены четыре значения в массиве данных — по одному для каждого канала (R, G, В и А).

Затем нам нужно определить значение серого, соответствующего этой точке. Для этого есть специальная формула: значение каждого из каналов цветов умножается на соответствующий коэффициент, и все значения складываются:

Конвертация цветного изображения в черно-белое

Теперь, когда у нас есть правильное значение по шкале оттенков серого, мы собираемся обновить данные в массиве:

Конвертация цветного изображения в черно-белое

Что теперь? Вывести модифицированные данные обратно на холст, используя метод putlmageData. Этот метод делает ровно то, что вы от него ожидаете: берет данные из массива и записывает на холст. Вот как это выглядит:

Конвертация цветного изображения в черно-белое

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


.

Читайте так же:
Not found