![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
gost |
|
|||
Unregistered |
Расскажите пожалуйста как подгрузить бмп-картинку. То есть надо на форме вывести бмпху с использованием АПИ-функций.
|
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
В чистом API нет функций типа LoadBitmap (bmp-file) или ShowBitmap.
Формат простой, вот все, что нужно знать:
Ну и все остальное тоже есть в MSDN, по ключевому слову bitmaps. Добавлено @ 14:29 Для вывода на экран смотри StretchDIBits. -------------------- ... |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Если тебе ничего особо не надо от bitmap'ов (прямого и быстрого доступа к битам, работы с очень большими растрами и т.д.), посмотри функции\классы GDI+.
-------------------- ... |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 2 Всего: 110 |
есть функция LoadImage, которая в том числе может и bmp-шки загружать... ну а если картинка загружена и есть ее HBITMAP то показать ее несложно: сделать memory dc, выбрать в нем bitmap и выполнить операцию BitBlt... Добавлено @ 16:54 только там есть один момент, который мне не понравился, а прояснить мне его было тогда лень/не нужно ![]() как-то загружал я картинку с помощью этой функции и заметил, что несколько младших бит (по-моему, 3) оказались нулевыми, подумал, что это картинка такая, но нет, у нее все биты использовались... может, это я что-то тогда напутал, может, нет в любом случае, если будет использоваться эта функция, я бы посоветовал обратить на это внимание... -------------------- qqq |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Да, точно, LoadImage умеет загружать не только из ресурсов, это я пропустила.
2maxim1000 Ведь LoadImage возвращает надо полагать HBITMAP, и прямого доступа к битам нет. Их специально нужно запрашивать в свой буфер. Что ты имел в виду, говоря, что младшие биты оказались нулевыми? Как узнал, то есть. Может выравнивание? Действительно существует тонкость: в bmp-файле, так же как в DIB выравнивание на 4 байта, а в BITMAP - на 2. -------------------- ... |
|||
|
||||
maxim1000 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 2 Всего: 110 |
упс... виноват... немного некорректно описал ситуацию дело было как тут где-то даже была тема - люди пытались сжать картинку ну и я взял, да и скачал ее (bmp-шка была) сделал LoadImage начал простенький анализ с помощью GetPixel (о скорости задумываться рановато было) так вот он выдавал все числа, кратные 8 я даже в тему написал, что сжать очень просто - там по 3 бита на кажый байт гуляет потом понял, что, как обычно, поспешил ![]() посмотрел напрямую коды в картинке - нормально, никакие биты не гуляли только вот было это кучу месяцев назад так что:
а некорректность предыдущего описания ситуации в том, что тут еще падает подозрение и на GetPixel и на сам контекст устройства (мало с чем он совместимый был)... -------------------- qqq |
||||
|
|||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 2 Всего: 110 |
хм... да, похоже, я что-то тогда напутал
потому что проверил только что - все нормально, все биты в порядке... -------------------- qqq |
|||
|
||||
Helicopterr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 355 Регистрация: 20.8.2005 Где: Stavropol Репутация: нет Всего: 3 |
Пользуясь темой хочу спросить...
Как правильно организовать вывод BITMAP при закрузке программы? -------------------- people can fly |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 1 Всего: 99 |
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Helicopterr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 355 Регистрация: 20.8.2005 Где: Stavropol Репутация: нет Всего: 3 |
cardinal много не спорю...
у меня при создании дочернего окна скажем в метке case WM_CREATE: затем не получается загрузить в него рисунок: LoadBitmap (hwnd_child, MAKEINTRESOURCE(IDB_BITMAP1)); //загружаем BMP То есть дочернее окно есть но без рисунка. Вот и хотел узнать как это опытные товарищи делают... Это сообщение отредактировал(а) Helicopterr - 4.11.2005, 22:42 -------------------- people can fly |
|||
|
||||
Quadri |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 29.12.2004 Репутация: нет Всего: нет |
а если надо? Это сообщение отредактировал(а) Quadri - 6.11.2005, 14:27 |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Тогда CreateDIBSection и дальше ручками.
-------------------- ... |
|||
|
||||
lnk |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.11.2005 Где: Берег Слоновой Ко сти Репутация: 1 Всего: 1 |
Если кому еще надо, могу скинуть пару класов для работы с DIB/DDB недавно писал такое.
Там загрузка,сохранение из файла без LoadImage, вывод на екран, преоразование, etc.... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |