Форум: "Игры";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
ВнизСоздание программной маски? Найти похожие ветки
← →
Proger (2004-06-30 11:41) [0]Какие есть способы создания прог. маски?
← →
ПсихЪ_клон (2004-06-30 12:07) [1]Программной маски чего? Карновального костюма? (: Я так понимаю, что тебе нужно просто создать TBitmap, установить необходимый тебе размер и закрасить пиксели нужными цветами...
Ты бы поподробнее спросил, глядиш и желающих тебе помочь будет больше.
← →
Delirium © (2004-06-30 12:43) [2]http://www.delphimaster.ru/nuts/nuts.html
← →
Proger (2004-06-30 19:37) [3]2 ПсихЪ_клон.Правильно понимаешь.
P.S Попиксельно ScanLine"ом непредлагать
← →
Огромное Кулясищще © (2004-06-30 20:40) [4]>P.S Попиксельно ScanLine"ом непредлагать
Другого способа, кроме как попиксельно, НЕТ. Так или иначе, будет попиксельно.
← →
Proger (2004-06-30 22:05) [5]2 Огромное Кулясищще ©.Ошибаешься, в докозательство зайди хотябы
на DelphiGFX, там есть библ MediaLib 1.9.В ней есть процедурка,
которая одними БитБлитами создаёт маску.Но она не просто создаёт
маску, а теми же BitBlt выводит её на DestBitmap.Короче пробовал
выдирать оттуда исходники, но нечего не получилось.
← →
Огромное Кулясищще © (2004-06-30 23:21) [6]Понятно. Такая же функция есть в модуле Graphic (TransparentStretchBlt). Используй TBitmap.Mask или см. исходники CopyBitmapAsMask.
← →
Огромное Кулясищще © (2004-06-30 23:47) [7]Про маски и прозрачный вывод:
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnargdi/html/msdn_transblt.asp
P.S.: BitBlt работает по-пиксельно (или лучше - по битам), просто очень хорошо оптимизирована (http://dic.h11.ru/index.php?art=b2507 про bit-block trasfer). Примерно той же скорости можно добиться при создании маски путём быстрого доступа к пикселам (scanline, а лучше другие средства).
← →
ПсихЪ_клон (2004-07-01 13:28) [8]Если масок не много, то проще создать маски вручную и заранее... Иначе, делать всё без масок.
← →
Proger (2004-07-01 14:45) [9]2 Огромное Кулясищще ©.Спасибо за советы, попрубую ScanLine"ом.
← →
Proger (2004-07-02 21:17) [10]Ещё один вопросик появился: Почему когда выводится спрайт
прозрачная область спрайта должна быть белой, а соответствующая
облать в маске чёрного цвета?Пробовал наоборот, но спрайт
выводится с прозрачной областью.Как быть если в спрайте(помимо
прозрачной области) имеется белый цвет?
← →
Огромное Кулясищще © (2004-07-02 22:02) [11]Делая через BitBlt ты создаёшь монохромную маску, поэтому маска получается чёрно-белой. Прозрачный же цвет спрайта может быть и не белым (см. как он задаётся в примерах).
← →
Proger (2004-07-02 22:06) [12]Огромное Кулясищще ©.Насчет монохромности масок я знаю.Короче я
так понял что прозрачный цвет спрайта может быть любой цвет, а
соответствующая область в маске всегда должна быть чёрной?
← →
Огромное Кулясищще © (2004-07-02 22:21) [13]Да, правильно понял.
← →
Proger (2004-07-03 12:46) [14]2 Огромное Кулясищще ©.Опять ты ошибаешься.Попробовал сделал
прозрачный цвет спрайта красным, соответствующая область в
маске чёрная, дык у меня спрайт спрайт выводится с красной
областью, только полупрозрачной ИМХО Blending.
← →
Огромное Кулясищще © (2004-07-03 13:57) [15]Слухай, мне это уже начинает надоедать. Какие-то озарения, переделки. Ты можешь сделать то, что тебе надо - создать маску и вывести спрайт? Если да, то остальные вопросы ни к чему. Откуда я знаю, что ты там творишь и какие функции используешь?
В этой статье
http://delphigfx.mastak.ru/2d/001/2d_1.htm
непрозрачная область на маске обозначена чёрным. Я же привык наоборот, потому что grayscale маска в альфа-канале 32-битного битмапа обозначена по-другому. Ну и пофиг, надо просто поэксперементировать, как будет если так, а как если по-другому.
Каким образом можно сделать блендинг при помощи BitBlt - для меня остаётся загадкой, но думается, что невозможно.
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.052 c