191просмотров
13 января 2026 г.
📷 ФотоScore: 210
Лечим смещение на полпикселя в GDI+ Проблема Есть такая проблема, что GDI+ считает координату (0,0) центром пикселя, а не его углом. Смотрим правый рисунок - узлы сетки ровно в середине пикселя. Последствия (центральный рисунок): - Смещение на полпикселя - изображение сдвинуто относительно GDI и D2D; - Размытие линий - горизонтальная линия толщиной 1px в точке y=0 размывается на два ряда пикселей (по 50%); - Несовпадение координат - прямоугольник (0,0,100,100) в GDI+ занимает другую область, чем в GDI. Решение Раньше борол это тем, что вычитал полпикселя из координат. И относительно недавно узнал, что можно это решить всего лишь одной строкой: var Graphics: TGPGraphics; ... Graphics.SetPixelOffsetMode( PixelOffsetModeHalf); Причины GDI+ создавался как “улучшенный GDI” с акцентом на сглаживание и качество. Центрирование координат на пикселях даёт более симметричный антиалиасинг для векторных фигур. Но для работы с растровыми изображениями и совместимости с другими API это делает головную боль.
191
просмотров
1015
символов
Нет
эмодзи
Да
медиа

Другие посты @ip76ru

Все посты канала →