Ваша задача состоит в том, чтобы взять sRGB-изображение размером 24 BPP и вывести одно и то же изображение с 3-кратным увеличением в красный, зеленый и синий подпиксели. Полученное изображение будет полностью сделано из чисто черного, красного, зеленого и синего пикселей.
Каждый пиксель из исходного изображения при увеличении создает компоновку из 9 субпикселей, которые могут быть либо включены, либо выключены (т.е. их соответствующий цвет или черный). Конкретное расположение использует три столбца красного, зеленого и синего в следующем порядке:
(Обратите внимание, что границы этих «пикселей» предназначены только для демонстрации.)
Поскольку каждый из девяти субпикселей может быть только включен или выключен, вам придется квантовать входное изображение и использовать разные шаблоны субпикселей для достижения 3 уровней яркости.
Для каждого субпикселя в изображении:
- Для уровней цвета 0-74 все подпиксели должны быть черными.
- Для уровней цвета 75-134 средний подпиксель должен быть соответствующего цвета, а два других должны быть черного цвета.
- Для уровней цвета 135-179 средний подпиксель должен быть черным, а два других должны быть соответствующего цвета
- Для уровней цвета 180-255 все три подпикселя должны иметь свой соответствующий цвет
Я выбрал эти диапазоны уровней, потому что они выглядели хорошо
Примените это преобразование к каждому пикселю изображения и выведите изображение с субпиксельным увеличением.
Однопиксельные примеры
RGB (40, 130, 175) будет производить этот шаблон:
RGB (160, 240, 100) будет производить этот шаблон:
Примеры полного изображения
Изображения получены из Википедии
Правила и примечания
- Вход и выход могут быть в любом удобном формате, будь то фактические файлы изображений или (возможно, вложенные) списки значений RGB.
- Вы можете предположить, что пиксели находятся в цветовом пространстве sRGB с 24BPP.
Удачного игры в гольф!