Страница: 1 |
Страница: 1 |
Вопрос: Загрузка картинки из файла
Добавлено: 03.02.09 15:19
Автор вопроса: AWP | Web-сайт:
Опять нужен хелп.
Есть файл, в нём архивом лежат кучу картинок.
Знаем начало картинки в файле, знаем размер.
Нужно загрузить её либо в pictureBox либо в DC.
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
fAndOrIn
Вопросов: 5
Ответов: 344
Профиль | | #1
Добавлено: 03.02.09 16:16
Вопрос почти полностью повторяет недавний от Леши - http://www.vbnet.ru/forum/show.aspx?id=182404
Я для начала бы вытащил эту порцию байтов в массив, записал в новый файл и загружал бы обычным образом.
Номер ответа: 2
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #2
Добавлено: 03.02.09 16:36
Для начала так и есть, но не очень хорошо.
Виртуальный файл в оперативке можно как-нибудь создать?
Номер ответа: 3
Автор ответа:
Kardinal
ICQ: 360041513
Вопросов: 1
Ответов: 164
Web-сайт:
Профиль | | #3
Добавлено: 03.02.09 17:48
А чем он будет отличаться от реального? Потому как в вб файл в оперативу не копируеться. Виртуальным файлом может быть и массив, как это верно подмечено.
Номер ответа: 4
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #4
Добавлено: 04.02.09 01:58
Ну как-то давно я видел пример создания вирт. файл, но как его повторить не знаю.
А массив не подходит. Ну сами понимаете, это картинка(может быть разный формат) + перепостроение картинки из массива по точечно...
Нужен либо вирт. файл либо загрузка из данных.
Номер ответа: 5
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #5
Добавлено: 05.02.09 09:22
Ну в общем алгоритм примерно следующий:
1. выделить память сколько требуется под файл.
2. скопировать в эту область содержимое графического файла.
3. выяснить тип файла картинки (по сигнатурам или по расширению).
4. создать битмэп из данных в памяти при помощи gdiplus и необходимого кодека.
5. отобразить битмэп в нужном контексте устройства
Номер ответа: 6
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #6
Добавлено: 07.02.09 20:34
Проблема решена!
Номер ответа: 7
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #7
Добавлено: 09.02.09 14:52
Молодец! Только через OleLoadPicture, если не ошибаюсь, загрузить png с альфа-каналом не получится. Я прав?
Номер ответа: 8
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #8
Добавлено: 11.02.09 00:04
Думаю да. Но нам 24 бит хватит)))
Номер ответа: 9
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #9
Добавлено: 13.02.09 10:37
а TGA оно умеет загружать, мм?
Номер ответа: 10
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #10
Добавлено: 15.02.09 23:38
Справочник API вам точнее скажет.
Но я уверен, что нет. Хотя это и не большая проблема, которую можно легко решить.
Номер ответа: 11
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #11
Добавлено: 16.02.09 09:21
Наверняка нет, проверил в MSDN. Можно подгрузить какую-нибудь стороннюю библиотеку по работе с графикой.