|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.01.2012, 00:33 | #1 |
Пользователь
Регистрация: 13.09.2010
Сообщений: 65
|
Загрузка графических файлов из ресурсов
Есть один из способов загрузки файлов изображений из ресурсов при помощи библиотеки GDI+
Загружаешь файл в ресурсы. В файле "rsrc.rc" делаешь запись: Код:
Код:
Код:
Этот метод загрузки битмапа из потока работает нормально со всеми популярными файлами (Jpg Gif Png Bmp). Только если захотите обьединить эти функции в одну функцию то переменные лучше сделать глобальные а то с локальными иногда будет работать не корректно. Вроде бы всё хорошо всё работает но несколько смущает слишком большой набор функций для такой операции. Интересно что в GDI+ есть ещё одна функция GdipCreateBitmapFromResource описание функции: 1 - Дескриптор экземпляра модуля. 2 - Указатель на завершающуюся нулем Unicode строку, которая определяет путь и имя ресурса растрового изображения должны быть загружены. Кроме того, этот параметр может состоять из идентификатора ресурса в младшем слове и ноль в старшем слове. 3 - Указатель на DWORD переменную, которая указатель на Bitmap объекта. По идее вроде бы должно работать так: Код:
И вместо "addr gifType" ставил просто "2001" всё равно функция не срабатывает и в переменной hBitmap чистый ноль. Честно говоря не пойму почему. Подозреваю только что всё таки со вторым параметром у меня ошибка. В поиске нашёл один сайт где показаны как работают некоторые функции GDI+ И в частности эта функция GdipCreateBitmapFromResource http://www.jose.it-berater.org/smffo...p?topic=1800.0 Там чисто показано что эта функция (всего одна) из ресурсов загружает битмам без проблем. Я подумал что именно эта функция не хочет работать с таким форматом как Gif и попробывал загрузить в ресурсы формат Bmp но результат тот же в hBitmap чистый ноль. Честно говоря не понятно. Ведь если почитать описание этих функций invoke GdipCreateBitmapFromStream, pIStream,addr hBitmap и invoke GdipCreateBitmapFromResource,hInsta nce,addr Unicod,addr hBitmap У всех в переменную hBitmap загружается битмап картинки, только одна берёт данные из потока а другая (могу конечно ошибатся) работает вроде бы напрямую с ресурсами. Может кто знает в чём проблемма? Последний раз редактировалось assch; 19.01.2012 в 03:28. |
20.01.2012, 14:44 | #2 | |
Форумчанин
Регистрация: 11.01.2012
Сообщений: 177
|
посмотри какой код возвращает функция GdipCreateBitmapFromResource, правильно ли MultiByteToWideChar конвертирует текст к юникод, убедись в отладчие что все параметры указываются правильно и т.д.
а вообще http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx Цитата:
progromore.i2p - первый русскоязычный портал программистов в скрытосети
Последний раз редактировалось Rock-n-Rolla; 20.01.2012 в 14:47. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Эскизы графических файлов в OpenPictureDialog | Loveb | Компоненты Delphi | 4 | 22.11.2010 11:03 |
Загрузка иконки из ресурсов. | Flippp | Общие вопросы C/C++ | 3 | 02.06.2010 15:58 |
Загрузка текстового файла из ресурсов | SolovejK | Общие вопросы Delphi | 1 | 22.05.2010 20:18 |
Лента графических файлов | бел | Помощь студентам | 1 | 13.04.2009 10:15 |
Открытия графических файлов | Kocapb | Общие вопросы C/C++ | 3 | 01.12.2007 19:11 |