Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.07;
Скачать: CL | DM;

Вниз

Создание программной маски?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.05 c
14-1097743259
Игорь Шевченко
2004-10-14 12:40
2004.11.07
Существует ли программа, показывающая сетевые соединения


6-1094038614
MadHead
2004-09-01 15:36
2004.11.07
как запустить/закрыть сторонее приложение на удаленном компе в ло


14-1097666622
}|{yk
2004-10-13 15:23
2004.11.07
Какие художественные книги вы прочитали за этот год?


14-1098004825
QuasiLamo
2004-10-17 13:20
2004.11.07
Вот, чиста маё мнение


14-1097821651
П7
2004-10-15 10:27
2004.11.07
Души умерших файлов