|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.03.2013, 14:19 | #1 |
Пользователь
Регистрация: 14.03.2013
Сообщений: 30
|
Маска изображения
Объясните как работать с масками. Есть несколько спрайтов вывоводимых на форму с помощью функции BitBtl. Как сделать так чтобы фон на который они выводятся не затирался?
|
30.03.2013, 16:17 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Что-то связанное с альфа-каналом...
|
30.03.2013, 18:40 | #3 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Очевидно, не нужно его затирать.
Т.е. рисовать только те пиксели, которые принадлежат изображению. Конкретный способ зависит от того, в каком формате хранится изображение. Если в файле изображения есть альфа-канал, то нужно пользоваться им. Если нет - существует такое понятие как "прозрачный цвет", - пиксели этого цвета выводить не нужно. |
30.03.2013, 21:50 | #4 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Показывайте, как выводите. В первом приближении можно обойтись и TBitmap.Transparent и TBitmap.TransparentColor . Чтобы фон не затирался, надо либо его каждый раз перерисовывать, либо использовать буфер, в который рисовать текущую картинку, сперва заливая место где был спрайт вырезанным кусочком фона а потом рисуя спрайт на новом месте.
Пример http://programmersforum.ru/showpost....&postcount=628 |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
маска курсора | Julila | Помощь студентам | 2 | 22.12.2011 21:44 |
Маска в ADOTable | Stranger333 | БД в Delphi | 0 | 01.07.2010 18:18 |
маска | Serg12 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 07.11.2009 21:44 |
Маска изображения | MaGiCeYe | Мультимедиа в Delphi | 2 | 09.04.2007 08:29 |