Субпиксельная растеризация на непрозрачных фонах

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

Проблема в смешивании. Каждый фактически визуализированный пиксель также влияет на уровни интенсивности его соседей из-за техники фильтрации нижних частот (я использую 5-отводную пихту — 1/9, 2/9, 3/9 и т. Д.), А также альфа-уровни пиксель для визуализации. Затем этот результат должен быть округлен до целевого изображения, где и возникает проблема …

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

Как это должно быть сделано? Единственное решение, которое я могу себе представить, будет работать: визуализировать отдельное изображение с альфа-каналами для каждого цвета, затем какой-нибудь сложный алгоритм наложения и, наконец, добавить его к месту назначения. Каким-то образом.

Тем не менее, я не смог найти никаких ресурсов о том, как на самом деле это сделать — кроме основных концепций рендеринга субпикселей lcd и красивых изображений крупным планом пикселей монитора. Если кто-нибудь может помочь мне по пути, я был бы очень благодарен.

0

Решение

Сегодня вечером я проснулся и больше не мог заснуть.
Я не мог позволить потратить всю эту энергию мозга и наткнулся на точно такую ​​же проблему.

Я придумал два разных решения, оба без проверки.

  • Вы должны использовать трехканальную альфа-маску, по одной для каждого субпикселя, смешивая каждый цвет со своей собственной альфа.
  • Вы можете использовать цветовые каналы каждый в качестве альфа-маски, если вы визуализируете только серый / черно-белый шрифт (1-color_value, если вы рисуете темный текст на светлом фоне), снова применяя каждый цвет по отдельности. Само значение цвета должно рассматриваться как 1 в этом случае.

Надеюсь, это немного поможет, я наполнил это ~ 2ч бессонницей.

Январь

0

Другие решения


По вопросам рекламы [email protected]