![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Альфа канал [WinXP]
Darkmoon © (2008-04-23 20:22:00)Всем привет
Вот такая проблема: есть 32 битный битмап на него надо нарисовать текст, шрифтом tahoma, размер шрифта 8, (естественно у этого шрифта альфа канала нет). Так как шрифт без альфа канала на битмапе альфа канал в том месте где рисуется текст становится равным нулю. Как этого избежать?
AutoBOT (2009-04-24 20:34:00) [1]Удалено модератором
antonn (2009-04-21 22:24:00) [2]ну и чего я как дурак со своими ссылками, если вопрос был удален? :)
antonn (2009-04-21 09:20:00) [3]http://desksoft.ru/index.php?forum=13&th=47
http://desksoft.ru/index.php?forum=13&th=216
antonn (2009-04-21 09:20:00) [4]с текстом - http://desksoft.ru/index.php?forum=13&th=187
AutoBOT (2009-04-21 05:51:00) [5]Удалено модератором
Примечание: Нефиг поднимать чужие ветки.
antonn (2008-05-01 20:32:00) [6]"текс" не может быть "с альфаканалом", он просто рисуется без альфы. Если нужен и "альф" для текста можно выпендриться :) сделать два буферных битмапа, на оба скопировать кусок исходного изображения (только на один "видимый спектр" - RGB, а на второй альфу (и забить ее вмнесто каналов rgb - будет картинка альфы в градациях серого)). далее на первом рисуешь текст как он должен быть видимым, а второй по тем же координатам этот же текст, но белым цветом - будет альфа текста. Потом "собираешь" оба этих битмапа в один 32 битный и все :)
Darkmoon (2008-05-01 16:56:00) [7]немного непонятно что вы имели виду, но также надо учитывать и то что текст может быть как с альфа каналом так и без него.
Игорь Шевченко (2008-04-27 17:26:00) [8]Нарисуй на другом битмапе, установи нужное значение альфа-канала, скопируй битмап с учетом прозрачности. Я б так и сделал
Darkmoon (2008-04-27 14:31:00) [9]наверное так и придётся...
кстате gdi+ точно также рисует.В Висьте кстате этого глюка нет.
antonn (2008-04-25 08:52:00) [10]
> Brush:=bsClear ?
речь об альфе. Вроде бы все gdi функции обрабатывают только первых три байта, альфа затирается, как на фоне, так и на "нефоне".
я делал промежуточный битмап, на который копировал альфу с исходного изображения, рисовал белым текст (нужно было при любой прозрачности альфы всегда непрозрачный текст, хотя это может и не нужно), рисовал textout() на исходном текст и восстанавливал альфу обратно. Гемор, но что поделаешь, привязывать себя к лишней библиотеке типа gdi+ совершенно не хочется...
tesseract (2008-04-24 11:58:00) [11]Brush:=bsClear ?