Загрузка изображения с прозрачностью (Срочно)

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

Gemini
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 390
Зарегистрирован: 24.07.2002 (Ср) 14:15
Откуда: Ozersk

Загрузка изображения с прозрачностью (Срочно)

Сообщение Gemini » 20.01.2008 (Вс) 14:31

Добрый день уважаемые!

Мне надо загрузить фаил (png или лубой другой использующий прозрачность) на ДД поверхность* с сохранением прозрачности.
(Как уже говорил игру делаем двухмерную (не D3D))


Дело в том что при рисовании в фотожопе используется стиль рисования при котором цвета смешываются(Кисть и фон) и при рисовании на DDS* не получается вырезать корректно фон по одному цвету.

Или есть другой способ решения данной проблемы?
Подскажите пожалуйста!!! (Очень срочно, работу задерживаю :oops: )

P.S.
*-DirectDrawSurface
В нашем деле главное ЛОГИКА.

косил косой косой косой.

Gemini
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 390
Зарегистрирован: 24.07.2002 (Ср) 14:15
Откуда: Ozersk

Сообщение Gemini » 20.01.2008 (Вс) 18:06

Я тут подумал что можно написать длл на C++ или VC и которая будет загружать tga фаил на его основе будет создавать hdc и передовать его моей программе с а я в свою очередь буду его перерисовывать на DDS с заданным фоном.
Только во проблемма я не знаю не C не VC. (А изучать просто нет времени :cry: )

Делал загрузку tga на VB СЛИШКОМ дооолго прорисовывать по пиксельно (и поэтому я думаю что возможно на C или VC эта функция будет работать намного быстрее)
В нашем деле главное ЛОГИКА.

косил косой косой косой.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 21.01.2008 (Пн) 11:36

Gemini
В DD нет нормальной альфы.
Здесь есть пример загрузки TGA и вывод в 2D с альфой и другими эффектами:
http://bbs.vbstreets.ru/viewtopic.php?t=32517

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 21.01.2008 (Пн) 19:11

Mikle
В DD эффекты нормальной альфы легко и непринуждённо добавляются через IDirectDrawSurface::Lock. Кстати SetDIBitsToDevice медленнее, чем создание DIB Section и выбора её в качестве картинки для hDC.
Изображение

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 21.01.2008 (Пн) 19:46

keks-n
эффекты нормальной альфы легко и непринуждённо добавляются через IDirectDrawSurface::Lock

Вот тут и нужен какой-нибудь движок, например мой.
SetDIBitsToDevice медленнее, чем создание DIB Section и выбора её в качестве картинки для hDC

А в Висте как дело с этим обстоит? Я спрашиваю не потому, что спорю, а потому, что не знаю. :)

Gemini
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 390
Зарегистрирован: 24.07.2002 (Ср) 14:15
Откуда: Ozersk

Сообщение Gemini » 21.01.2008 (Пн) 20:30

Mikle
Спасибо!
Мы решили эту проблему по другому.
Художник нарисовал изображение с использованием смешиванием цветов (Фон/кисть) но на прозрачном фоне.(т.е. изображение было красивое, плавное) потом сохранили в формате gif с прозрачным фоном (без потери качества). Открыли мы этот фаил в паинте, и где был прозрачный фон там стал белый. И.... Заливаем белый фон нужным цветом... Ву аля обрезание картинки четко по контуру.


(Дело было до прочтения топика)
В нашем деле главное ЛОГИКА.

косил косой косой косой.

Gemini
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 390
Зарегистрирован: 24.07.2002 (Ср) 14:15
Откуда: Ozersk

Сообщение Gemini » 22.01.2008 (Вт) 17:16

Mikle
Круто!
Можно её использовать в своих проектах?
В нашем деле главное ЛОГИКА.

косил косой косой косой.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 22.01.2008 (Вт) 18:00

Gemini
Там же написано, полностью свободно. Все, что в "Кирпичах", свободно по определению.
Единственное ограничение - не переименовывать DLL.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 24.01.2008 (Чт) 16:04

DIBSection по определению более оптимизирован для прямой работы с битмапом. Это даже в CE так.
А ещё лучше использовать интерфейсы DirectDraw первой версии(есть везде, кроме Win95 без сервиспака) - Lock на основной сурфейс + клиппер
Изображение

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 24.01.2008 (Чт) 18:44

keks-n
"интерфейсы DirectDraw" пойдут на Висте без dx7vb.dll?
Что можно почитать про DIBSection (понятно, что имеется ввиду не MSDN), может какие-нибудь примеры есть?


Вернуться в Мультимедиа

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 33

    TopList