Работа с изображением и его маской

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Stoker
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 9
Зарегистрирован: 28.09.2004 (Вт) 21:27

Работа с изображением и его маской

Сообщение Stoker » 28.09.2004 (Вт) 21:49

искал в архиве форума...но ничего подобного не нашлось..

Описание проблемы:
создание анимации из последовательности картинок, просчитывать контуры изображения по заданной маске..

ПОМОГИТЕ, пожалуйсто

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 28.09.2004 (Вт) 21:53

где будет отображаться анимация? и где она хранится?
Изображение

Stoker
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 9
Зарегистрирован: 28.09.2004 (Вт) 21:27

Сообщение Stoker » 29.09.2004 (Ср) 20:05

tyomitch писал(а):где будет отображаться анимация? и где она хранится?


Желательно хранить анимацию в 1 файле("вбить" в него последовательность графических файлов) + из файла (mask.dat) извлекать маску для каждого графического файла...то есть по ней будут "обводиться" контуры..

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 29.09.2004 (Ср) 20:28

Хы... А анимированные гифы не подходят? Для них готовые контролы есть...
Изображение

Stoker
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 9
Зарегистрирован: 28.09.2004 (Вт) 21:27

Сообщение Stoker » 29.09.2004 (Ср) 20:45

..неа : )) если бы это было так я бы не парился..
блин..
ну чё ребят, никак? :)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 29.09.2004 (Ср) 21:37

Да просто расскажи поподробнее, что за задача и почему не подходят гифы...
А мы попытаемся помочь :-)
Изображение

Stoker
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 9
Зарегистрирован: 28.09.2004 (Вт) 21:27

Сообщение Stoker » 29.09.2004 (Ср) 22:39

Цель:создание анимации для игры(многопользовательской RPG)
Почему не подходят гифы трудно объяснить...в общем с ними тяжело будет работаться в будущем...

Представте себе bmp файл с атрибутами 32х32...теперь нарисуем изображение А в первом квадрате, далее +32 - 64х32 то есть в два раза больше длина..во втором квадрате рисуем ещё одно изображение..по этой схеме делам допустим 10 "кадров"
получаем примерно 1024х32(к примеру)
Далее в PictureBox грузим этот bmp файл. Размер окна 32х32 так чтобы видеть "1 кадр"..далее начинаем "двигать" для анимации всю линию, то есть показываем каждый следущий кадр с определённой скоростью. Проигрывается анимация в квадрате...А теперь вопрос знатокам:
Как вышеуказанным способом проигрывая картинки заставить показывать наш PictureBox загруженные картинки не в виде квадрата, а ввиде скажем буквы "А", то есть как то заранее определить маску..причём для каждого последующего кадра своя маска..

надеюсь понятно изложил суть проблемы..

Кто играл в Diablo...знаю тупой вопрос :) представте, что вся анимация персонажа записана в bmp файле с какими нить невероятными атрибутами..
жмём кнопку атаки и проигрывается анимация допустим с 1024 по 4048..(как говорилось выше)
на каждое его движение должна быть своя маска..
помоити, пожалуйсто!!! :roll:

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 29.09.2004 (Ср) 23:31

Stoker писал(а):надеюсь понятно изложил суть проблемы..

Тогда всё очень просто.
1) создаёшь UserControl;
2) BackStyle выставляешь в 0 - Transparent;
3) задаёшь нужные MaskColor и MaskPicture;
4) кладёшь на него PictureBox и дальше работаешь так же, как сейчас.
Получившийся контрол затем кладёшь на форму.
HTH
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 30.09.2004 (Чт) 8:58

tyomitch, а теперь представь это все в RPG, да притом фрэймов таких будет не один, а несколько. Будут тормоза.
Stoker, тебе нужен DirectX (DirectDraw), он умеет все, что тебе нужно -- и прозрачности, и вывод фреймов (они называются спрайты), и куча всего другого, и все это быстро. Вот только примера не дам, ибо с DX не дружу.
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 30.09.2004 (Чт) 21:20

alibek писал(а):Вот только примера не дам, ибо с DX не дружу.

Вот это имхо самое главное. DX нуждается в освоении, а с юзерконтролом всё легко и быстро :-)
Изображение

Stoker
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 9
Зарегистрирован: 28.09.2004 (Вт) 21:27

Сообщение Stoker » 30.09.2004 (Чт) 21:21

Да я бы с радостью сделал всё через DX...только опыта работы с ним у меня совсем нет..я даже не представляю себе что и как... :(

может посоветуете инфу "как научиться кодить на VB под DX для чайников" ? :)

Stoker
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 9
Зарегистрирован: 28.09.2004 (Вт) 21:27

Сообщение Stoker » 01.10.2004 (Пт) 18:21

Может я не в тот раздел пушу? :(

Stoker
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 9
Зарегистрирован: 28.09.2004 (Вт) 21:27

Сообщение Stoker » 06.10.2004 (Ср) 20:16

тема опустилась вниз..народ ау? вымерли все что ли? :)
может я бред написал, может это невозможно? кто что посоветует? :roll:

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 06.10.2004 (Ср) 20:21

Хм... Можно и без DirectDraw, а просто с использованием TransparentBlt... Смотри описание в Api-Guide... Делаешь длинную картинку со всеми поворотами объекта и, скажем, чёрным фоном. Потом фон при вызове TransparentBlt станет прозрачным (см. описание)... Дальше разберётесь? Могу посоветовать поискать в Яндексе "TransparentBlt". Должно найтись много интересного :)

Stoker
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 9
Зарегистрирован: 28.09.2004 (Вт) 21:27

Сообщение Stoker » 07.10.2004 (Чт) 20:10

Спастбо!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.10.2004 (Чт) 20:26

Отмечу, что если ты сделаешь чёрный фон, то все чёрные пикселы в изображении тоже станут прозрачными ;-)
Так что я бы остановился на идее с маской (напр., через MaskBlt)
Изображение

Prickly
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 07.10.2004 (Чт) 18:44
Откуда: From Russia

Работа с изображением и его маской

Сообщение Prickly » 07.10.2004 (Чт) 20:54

Stoker не ленись, выучи сначала DX. Без DX ничего стоящего написать практически не возможно. Сам пробовал, так и ничего не вышло, пришлось сесть за DX.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 0

    TopList  
cron