У меня есть растровое изображение, фон которого необходимо заменить на часть другого растрового изображения. Все работает нормально, пока не включу ClearFont на моем Windows XP.
Чтобы лучше объяснить мою проблему, давайте пометим первую битовую карту как bmpDestination
а второй как bmpSource
,
Вот как bmpSource
похоже :
Вот как bmpDestination
похоже :
когда ClearType Вот как выглядит правильный результат:
И вот неверный результат их объединения, когда ClearType находится на:
ClearType изменяет некоторые части цвета фона текста, чтобы они больше не были белыми ( RGB( 255, 255, 255 )
) но сочетание белого и цветного текста.
я использую BitBlt()
и монохромное растровое изображение для создания маски и имитации прозрачности. Я пытался использовать TransparentBlt()
тоже, но получил тот же результат.
Как я могу совместить bmpSource
а также bmpDestination
, когда ClearType включен, чтобы я мог создать правильный результат, как указано выше?
Спасибо за помощь.
С наилучшими пожеланиями.
Представьте treeview с черным текстом на белом фоне. Используйте шрифт с оттенками серого. Не используйте сглаживание ClearType. Я умеренно уверен, что вы можете достичь этого с одним из fdwQuality
параметры для CreateFont
Но я бы не стал клясться в этом.
Каждый пиксель будет иметь оттенок серого между белым и черным. Вы можете интерпретировать это как прозрачность. Белый полностью прозрачен; черный полностью непрозрачен. Используйте эту информацию для создания растрового изображения с прозрачностью. Рендеринг этого прозрачного растрового изображения на ваш разноцветный фон.