Canvas.TextOut и истинный цвет

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
TrUsTeR
незнакомец
Сообщения: 4
Зарегистрирован: 02.11.2008 23:18:41

Canvas.TextOut и истинный цвет

Сообщение TrUsTeR »

Здравствуйте всем!

Наткнулся на следущую траблу, погуглил-поискал - безрезультатно.
Создаю Bitmap, на него рисую строку текста определенного цвета (отличного от фона, например красный). Больше ничего не рисую.
После этого проверяю RGB получившегося изображения.
Под win32 получаю:

Код: Выделить всё

куча 255.255.255 (белый)
кое где 255.0.0 (красный)

То есть всё нормально, два цвета в картинке.
Под linux получаю:

Код: Выделить всё

куча 255.255.255 есстественно белый
255.40.18
255.187.227
266.42.136 и т.д.

в итоге получаем совсем другое. В картинке получается порядка 30 оттенков.
Настройки алиасинга, цвета шрифта, и т.п. рыл - не помогает. Вроде всё просто, но не выходит. :(

Кто что подскажет? ;)

Добавлено: имею данный глюк только под Linux/gtk2; под Win32/gtk2 и Linux/gtk1 всё нормально.

added: Lazarus svn17967, fpc 2.2.3
Павел Ишенин
постоялец
Сообщения: 475
Зарегистрирован: 24.03.2007 09:16:52

Сообщение Павел Ишенин »

Значит используется антиалиасинг, который к сожалению через библиотеку pango (что используется в gtk2) никак не устанавливается.
TrUsTeR
незнакомец
Сообщения: 4
Зарегистрирован: 02.11.2008 23:18:41

Сообщение TrUsTeR »

Спасибо за ответ. :) Значит придется опять костыли мудрить... (
P.S. хотя есть подозрения, ведь под win32/Gtk2 такого не происходит.
Павел Ишенин
постоялец
Сообщения: 475
Зарегистрирован: 24.03.2007 09:16:52

Сообщение Павел Ишенин »

Посмотрите на код библиотеки pango. Там для win32 выбирается антиалисинг если в системе включена какая-то опция.
Ответить