Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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.031 c
4-1096778093
XProger
2004-10-03 08:34
2004.11.07
MDI на Win API


1-1098376029
iat
2004-10-21 20:27
2004.11.07
как получить мин и макс значение по оси Х при увеличении


14-1098369580
programmer
2004-10-21 18:39
2004.11.07
Документация исходника


6-1093885434
Zahar
2004-08-30 21:03
2004.11.07
Как сохранить attachement в файл ???


14-1098301751
Maxi_L
2004-10-20 23:49
2004.11.07
нужна помощь





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский