Извлечение файлов из ресурсов + их использование.

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

Извлечение файлов из ресурсов + их использование.

Сообщение jr13 » 23.11.2009 (Пн) 19:28

Привет всем, кто на форуме.

Все наверное сталкивались с файлами, в которых запакованы другие файлы(ресурсы).
Вопрос заключается в том, как из этого файла извлечь ресурсы и использовать их, например, в игре, при условии, что ресурсы не будут сохранены в отдельный файлы?
Ну текст я думаю можно как нибуть конвертировать и потом использовать, а как вот с рисунками?
Я так думаю нужно преобразовать массив байт(рисунка) в переменную типа IPictureDisp или IPictureStd, но как, не знаю?
Кто знает - пишите...

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

Re: Извлечение файлов из ресурсов + их использование.

Сообщение alibek » 23.11.2009 (Пн) 19:44

Для начала, обоснуй публикацию топика в этом разделе.
Lasciate ogni speranza, voi ch'entrate.

jr13
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 03.03.2009 (Вт) 19:55

Re: Извлечение файлов из ресурсов + их использование.

Сообщение jr13 » 23.11.2009 (Пн) 19:53

Хотя я и опытный программист, всё же не считаю созданную тему простой.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Извлечение файлов из ресурсов + их использование.

Сообщение Хакер » 23.11.2009 (Пн) 20:36

Здесь есть какая-то проблема, которую ты не можешь решить самостоятельно? Какая-то сложная проблема?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Re: Извлечение файлов из ресурсов + их использование.

Сообщение alibek » 23.11.2009 (Пн) 22:13

jr13 писал(а):Хотя я и опытный программист, всё же не считаю созданную тему простой.

Если ты опытный программист, то почему ты не поискал на форуме пример того, как из байтового массива получить IPictureDisp?
Lasciate ogni speranza, voi ch'entrate.

jr13
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 03.03.2009 (Вт) 19:55

Re: Извлечение файлов из ресурсов + их использование.

Сообщение jr13 » 24.11.2009 (Вт) 14:45

Хакер писал(а):Здесь есть какая-то проблема, которую ты не можешь решить самостоятельно? Какая-то сложная проблема?


Да. Я считаю, что это проблема сложная и просто так её не решить.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Извлечение файлов из ресурсов + их использование.

Сообщение Antonariy » 24.11.2009 (Вт) 14:57

Это проблема только для тех, кого забанили во всех поисковиках.
Лучший способ понять что-то самому — объяснить это другому.

jr13
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 03.03.2009 (Вт) 19:55

Re: Извлечение файлов из ресурсов + их использование.

Сообщение jr13 » 24.11.2009 (Вт) 15:03

Antonariy, я честно скажу - тогда я не искал, но вот сейчас тоже никак не могу найти подходящего...

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Извлечение файлов из ресурсов + их использование.

Сообщение Antonariy » 24.11.2009 (Вт) 15:13

Что ищешь? Кейворды в студию.
Лучший способ понять что-то самому — объяснить это другому.

jr13
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 03.03.2009 (Вт) 19:55

Re: Извлечение файлов из ресурсов + их использование.

Сообщение jr13 » 24.11.2009 (Вт) 15:17

Я ищу: как бы мне преобразовать массив байт в картинку или IPictureDisp.

jr13
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 03.03.2009 (Вт) 19:55

Re: Извлечение файлов из ресурсов + их использование.

Сообщение jr13 » 24.11.2009 (Вт) 15:32

Я нашел какой-то пример, но он не очень, да и API там на каждом шагу. Неужели нельзя как-нибудь простенько преобразовать массив байт в картинку? Напишите кто-нибудь простенький примерчик пожалуйста, да хоть не простенький. Все только посылают и говорят, что что я тут забыл, а сами помочь не могут.
Я конечно не хочу нарываться на неприятности или предупреждения, но давайте по нормальному решим этот вопрос.

А если в архиве будет запакована не картинка, а какой-нибудь меш модели в формате .x , то я могу получить только массив байт этого файла .x и мне нужно будет преобразовать этот массив в переменную, которую будет юзать DirectX...

jr13
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 03.03.2009 (Вт) 19:55

Re: Извлечение файлов из ресурсов + их использование.

Сообщение jr13 » 24.11.2009 (Вт) 16:01

Ну картинку то можно как нибудь через RGB записать, а что на счёт DirectX?

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Извлечение файлов из ресурсов + их использование.

Сообщение iGrok » 24.11.2009 (Вт) 19:02

jr13 писал(а):... да и API там на каждом шагу ...

И вот после этого ты называешь себя профессионалом, и создаёшь тему в этом разделе?
С такими условиями у тебя остаётся только вариант извлекать файлы, и работать уже с ними. Иначе - добро пожаловать в богатый и разнообразный мир WinAPI.

Примеры:
viewtopic.php?f=1&t=40753
и
viewtopic.php?f=1&t=40547

З.Ы. Насчёт DX - не знаю, не пользовался. Думаю что-то похожее есть.
Последний раз редактировалось iGrok 24.11.2009 (Вт) 19:18, всего редактировалось 1 раз.
label:
cli
jmp label

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Извлечение файлов из ресурсов + их использование.

Сообщение Viper » 24.11.2009 (Вт) 19:08

Перенес. Нечего с таким вопросом делать в разделе для профессионалов.
Весь мир матрица, а мы в нем потоки байтов!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Извлечение файлов из ресурсов + их использование.

Сообщение Хакер » 24.11.2009 (Вт) 20:06

jr13 писал(а):Я ищу: как бы мне преобразовать массив байт в картинку или IPictureDisp.

Ну кто же так ищет. Надо вежило у поисковика спрашивать. Уважаемый Яндекс. Не подскажешь ли ты, любезный, мне, рабу твоему, как... ну и так далее. А на такие фамильярные запросы поисковики конечно не реагируют.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Извлечение файлов из ресурсов + их использование.

Сообщение Хакер » 24.11.2009 (Вт) 20:46

jr13 писал(а):Я нашел какой-то пример, но он не очень, да и API там на каждом шагу. Неужели нельзя как-нибудь простенько преобразовать массив байт в картинку? Напишите кто-нибудь простенький примерчик пожалуйста, да хоть не простенький. Все только посылают и говорят, что что я тут забыл, а сами помочь не могут.

Надо просто взять и сказать себе: я никчёмность, я ничтожество, потому что я хочу делать игры, но не хочу правильно прямолинейно мыслить.
Я объясню сейчас.
Во-первых, API это единственное, что дано программисту, чтобы взаимодействовать со внешней средой. Программист, который допускает мысли вроде "ой, там много API", это всё равно, что рыба с аллергией на воду. Программист должен просто решать проблемы, а не придумывать себе задачу и искать способ её решения. Если есть задача, её нужно самому решать, а не искать информацию о том, как её решить. Ты не можешь решить свою задачу, потому что ты просто не сформулировал себе её ясно.

Твоя задача "преобразовать массив байт в картинку" либо не сформулирована четко, либо она уже по своей природе решена. Массив байтов уже является картинкой. Твой массив байтов уже содержит всю исчерпывающую информацию о картинке. Что ты хочешь? Что ты спрашиваешь? Как преобразовать информацию о картинке в картинку? Что в данном случае случае означает последнее слово? Что означает слово "картинка"? Она означает информацию о картинке или совокупность светящихся точек на экране? Если первое, то твой вопрос звучит так: "Как преобразовать информацию о картинке в информацию о картинке?". Вообще никакой проблемы нет. Как из слона сделать слона. Если второе, то вопрос в нормальном виде будет звучать так: "Есть информация о картинке в массиве байт, как нарисовать эту картинку?". И ответить на этот вопрос предельно просто, зная две вещи: в каком виде в массиве байт находится информация о картинке и, какими средствами нужно пользоваться для отображения картинки (gdi, dx, opengl).

В прочем, я понимаю, что тебе хочется чего то другого. Наверное задача звучит всё же иначе: есть массив байт, содержащий информацию о картинке, нужно получить IPictureDisp-переменную. Позиция неудачника в данном случае: какать. "Как это сделать? Как, как, как?". Правильная позиция состоит в том, чтобы сначала определиться, зачем это надо, потому что вполне может оказаться, что и не надо вовсе (например, чтобы рисовать картинку, никакой IPictureDisp не обязателен). Если всё-таки надо, то правильная позиция состоит в том, чтобы просто взять и разобраться, что такое IPictureDisp. Когда ты сможешь дать мне, себе, кому угодно исчерпывающий ответ на вопрос "Что такое IPicture?", ты просто не будешь видеть перед собой проблему. Если твоя жизненная позиция заключается в том, чтобы насильно не знать, что такое IPicture, если тебе нравится, что IPicture для тебя является черным ящиком, которым ты вроде бы кое-как где-то пользуешься, но не понимаешь, что это такое, то я могу сказать только одно: мучайся дальше, желаю неудачи.

jr13 писал(а):А если в архиве будет запакована не картинка, а какой-нибудь меш модели в формате .x , то я могу получить только массив байт этого файла .x и мне нужно будет преобразовать этот массив в переменную, которую будет юзать DirectX...

Я видел не так много серьёзных игр, но не видел ни одной, которая бы использовала x-файлы. Это заставляет подумать, что X-файлы не обязательный и не единственный способ хранения и использования информации о геометрических телах. Это если рассуждать как человек, далёкий о DX. Но если ты, как ты говоришь, опытный программист, если ты делаешь игры, то надо думать, что ты хорошо знаешь DX. И в этом случае, ты наверное должен знать, что есть вертексный буфер и что он тебе доступен?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

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

Re: Извлечение файлов из ресурсов + их использование.

Сообщение alibek » 24.11.2009 (Вт) 22:32

jr13 писал(а):Я ищу: как бы мне преобразовать массив байт в картинку или IPictureDisp.

А достаточно было всего лишь поискать по словам IPictureDisp или StdPicture.
Уже на втором слове ты бы нашел искомое.
Lasciate ogni speranza, voi ch'entrate.

jr13
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 03.03.2009 (Вт) 19:55

Re: Извлечение файлов из ресурсов + их использование.

Сообщение jr13 » 30.11.2009 (Пн) 15:47

Хакер, я принимаю твои слова. Незнаю, может быть ты просто меня не так понимаешь...
Я отвечу...

1) Что касается "преобразования информации о картинке в картинку". Здесь вся суть в том,

что вот, например, имеется у меня bmp файл, содержащий информацию о картинке. Я беру этот

bmp и преобразовываю его в массив байт, используя функции Open.... For Binary As #1,

затем Get #1, и т.д. У меня выходит массив байт, содержащий информацию о картинке в

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

например, в Picturebox? Вот в чём был весь вопрос.
Я нашёл разумное решение. Так как речь зашла о запакованных архивах, а что если мне

представить информацию картинке в виде пикселей с RGB + разрешение картинки + [имя

картинки]?

Основа:
Т.е. нужно просто взять считать RGB пикселя и записать с помощию функции Put #1...
Выглядеть должно примерно так:
'Берём пиксель с координатами x,y
'Считываем RGB

Записываем информацию о рисунке так:
Bt = R
Put #1,,Bt

Bt = G
Put #1,,Bt

Bt = B
Put #1,,Bt

В итоге получается новый файл, который содержит понятную для меня информацию о картинке.
И потом при преобразовании останется только считать, перерисовать с помощью функции

Pset(x,y), RGB(R,G,B).
Вот и всё... и никаких API не надо ;)

2) Что касается создания игр...
Я не хочу создавать игры. Мне просто интересно из чего состоит игровой движок. И я решил

изучить систему запакованных данных для игр. Просто, как берутся от туда данные и потом

переправляются в игру?... А что касается DirectX - я сам пока что не очень изучил его

систему.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Извлечение файлов из ресурсов + их использование.

Сообщение Хакер » 30.11.2009 (Пн) 16:01

У меня выходит массив байт, содержащий информацию о картинке в

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

например, в Picturebox? Вот в чём был весь вопрос.


О! В непонятном виде говоришь... в непонятном для тебя виде. Решение: идти и читать о формате bmp. А то что ты придумал (хранить в файле цвета точек и разрешение картинки), это твоя попытка заново изобрести bmp. Только bmp давно придуман и продуман, а твой формат нов и убог.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Извлечение файлов из ресурсов + их использование.

Сообщение Денис » 01.12.2009 (Вт) 15:02

Вы знаете, может я и ошибаюсь, прошу меня извинить если так, но вы знаете, jr13 очень похож на тролля. Предлагаю последить за его дальнейшими действиями.
Рыбак рыбака видит издалека, как говорится Изображение
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.


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

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

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

    TopList