ClearType разрушает прозрачность

У меня есть растровое изображение, фон которого необходимо заменить на часть другого растрового изображения. Все работает нормально, пока не включу ClearFont на моем Windows XP.

Чтобы лучше объяснить мою проблему, давайте пометим первую битовую карту как bmpDestination а второй как bmpSource,

Вот как bmpSource похоже :

введите описание изображения здесь

Вот как bmpDestination похоже :

введите описание изображения здесь

когда ClearType Вот как выглядит правильный результат:

введите описание изображения здесь

И вот неверный результат их объединения, когда ClearType находится на:

введите описание изображения здесь

ClearType изменяет некоторые части цвета фона текста, чтобы они больше не были белыми ( RGB( 255, 255, 255 ) ) но сочетание белого и цветного текста.

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

Как я могу совместить bmpSource а также bmpDestination, когда ClearType включен, чтобы я мог создать правильный результат, как указано выше?

Спасибо за помощь.

С наилучшими пожеланиями.

1

Решение

Представьте treeview с черным текстом на белом фоне. Используйте шрифт с оттенками серого. Не используйте сглаживание ClearType. Я умеренно уверен, что вы можете достичь этого с одним из fdwQuality параметры для CreateFontНо я бы не стал клясться в этом.

Каждый пиксель будет иметь оттенок серого между белым и черным. Вы можете интерпретировать это как прозрачность. Белый полностью прозрачен; черный полностью непрозрачен. Используйте эту информацию для создания растрового изображения с прозрачностью. Рендеринг этого прозрачного растрового изображения на ваш разноцветный фон.

2

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