Конференция "Media" » Альфа канал [WinXP]
 
  • Darkmoon (23.04.08 20:22) [0]
    Всем привет
    Вот такая проблема: есть 32 битный битмап на него надо нарисовать текст, шрифтом tahoma, размер шрифта 8, (естественно у этого шрифта альфа канала нет). Так как шрифт без альфа канала на битмапе альфа канал в том месте где рисуется текст становится равным нулю. Как этого избежать?
  • tesseract © (24.04.08 11:58) [1]
    Brush:=bsClear ?
  • antonn © (25.04.08 08:52) [2]

    > Brush:=bsClear ?

    речь об альфе. Вроде бы все gdi функции обрабатывают только первых три байта, альфа затирается, как на фоне, так и на "нефоне".

    я делал промежуточный битмап, на который копировал альфу с исходного изображения, рисовал белым текст (нужно было при любой прозрачности альфы всегда непрозрачный текст, хотя это может и не нужно), рисовал textout() на исходном текст и восстанавливал альфу обратно. Гемор, но что поделаешь, привязывать себя к лишней библиотеке типа gdi+ совершенно не хочется...
  • Darkmoon (27.04.08 14:31) [3]
    наверное так и придётся...
    кстате gdi+ точно также рисует.В Висьте кстате этого глюка нет.
  • Игорь Шевченко © (27.04.08 17:26) [4]
    Нарисуй на другом битмапе, установи нужное значение альфа-канала, скопируй битмап с учетом прозрачности. Я б так и сделал
  • Darkmoon (01.05.08 16:56) [5]
    немного непонятно что вы имели виду, но также надо учитывать и то что текст может быть как с альфа каналом так и без него.
  • antonn © (01.05.08 20:32) [6]
    "текс" не может быть "с альфаканалом", он просто рисуется без альфы. Если нужен и "альф" для текста можно выпендриться :) сделать два буферных битмапа, на оба скопировать кусок исходного изображения (только на один "видимый спектр" - RGB, а на второй альфу (и забить ее вмнесто каналов rgb - будет картинка альфы в градациях серого)). далее на первом рисуешь текст как он должен быть видимым, а второй по тем же координатам этот же текст, но белым цветом - будет альфа текста. Потом "собираешь" оба этих битмапа в один 32 битный и все :)
  • AutoBOT (21.04.09 05:51) [7]
    Удалено модератором
    Примечание: Нефиг поднимать чужие ветки.
  • antonn © (21.04.09 09:20) [8]
  • antonn © (21.04.09 09:20) [9]
  • antonn © (21.04.09 22:24) [10]
    ну и чего я как дурак со своими ссылками, если вопрос был удален? :)
  • AutoBOT (24.04.09 20:34) [11]
    Удалено модератором
 
Конференция "Media" » Альфа канал [WinXP]
Есть новые Нет новых   [134465   +63][b:0][p:0]