CyberForum.ru - Форум программистов и сисадминов
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум программистов > Форум C++ > Форум Visual C++

Ответ Создать новую тему
 
Старый 04.02.2012, 11:51   #1
FredSPb
Новичок
 
Регистрация: 04.02.2012
Сообщений: 2
Репутация: 0 (0)
По умолчанию Загрузка bmp из ресурса

Помогите, пожалуйста. Задача вроде несложная, но чего-то не получается.
Пытался загрузить картинку bmp из ресурса в структуру:
Код C++
1
2
3
4
5
6
7
8
9
 
typedef struct BITMAP_FILE_TYPE
{
        BITMAPFILEHEADER bitmapfileheader; 
        BITMAPINFOHEADER bitmapinfoheader; 
        PALETTEENTRY     palette[256];     
        UCHAR            *buffer;          
} BITMAP_FILE, *BITMAP_FILE_PTR;
 
Может есть какой вариант решения при помощи стандартных библиотек?
FredSPb вне форума
Другие темы раздела
Visual C++ Не получается вывести перменную типа CString
Прошу вашей помощи, такое дело: visual c++ 2010 проект MFC имею void COneDlg::OnClickedNext() {. Не получается вывести перменную типа CString
Не обрабатывается WM_DESTROY Visual C++
Здравствуйте, вот случилось некоторое непонимание по поводу базовых функций окошек :) Вот основной цикл main() while(true) { if(PeekMessage(&msg, hWnd, 0, 0, PM_REMOVE)) { if(msg.message == WM_QUIT) break;. Не обрабатывается WM_DESTROY
Старый 04.02.2012, 12:06   #2
-=ЮрА=-
С/С++ advanced
Автор FAQ
 
Аватар для -=ЮрА=-
 
Регистрация: 08.08.2009
Адрес: Украина, Донецк
Сообщений: 5,630
Записей в блоге: 11
Репутация: 3323 (2146)
По умолчанию Re: Загрузка bmp из ресурса

FredSPb, вот проект по загрузке wav из ресурсов, проведи аналогии
Ошибка AfxGetResourceHandle
-=ЮрА=- вне форума
Старый 04.02.2012, 12:33  [ТС]   #3
FredSPb
Новичок
 
Регистрация: 04.02.2012
Сообщений: 2
Репутация: 0 (0)
По умолчанию Re: Загрузка bmp из ресурса

-=ЮрА=-, наверное, я неточно описал задачу, но цель не выполнить блиттинг картинки(воспроизвести wav, как в указанном проекте) прямо из ресурса(таких примеров в интернете очень много), а считать в определенную пользователем структуру, чтобы в дальнейшем с ней работать.
FredSPb вне форума
После регистрации реклама в сообщениях будет скрыта
Старый 04.02.2012, 12:50   #4
-=ЮрА=-
С/С++ advanced
Автор FAQ
 
Аватар для -=ЮрА=-
 
Регистрация: 08.08.2009
Адрес: Украина, Донецк
Сообщений: 5,630
Записей в блоге: 11
Репутация: 3323 (2146)
По умолчанию Re: Загрузка bmp из ресурса

Цитата Сообщение от FredSPb Посмотреть сообщение
=ЮрА=-, наверное, я неточно описал задачу, но цель не выполнить блиттинг картинки(воспроизвести wav, как в указанном проекте) прямо из ресурса(таких примеров в интернете очень много), а считать в определенную пользователем структуру, чтобы в дальнейшем с ней работать.
Код C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
if(!(fBMP = fopen(szSchemePath,"rb")))
            MessageBox(hConsole,"Ошибка загрузки файла схеммы",NULL,MB_OK);
        else
        {
            fread(&FileHeader,sizeof(BITMAPFILEHEADER),1,fBMP);
            if(FileHeader.bfType!=0x4d42)
                MessageBox(hConsole,"Некорректный формат файл схеммы",NULL,MB_OK);
            else
            {
                pInfoHeader = (BITMAPINFOHEADER *)malloc(sizeof(BITMAPINFOHEADER));
                fread(pInfoHeader,sizeof(BITMAPINFOHEADER),1,fBMP);
                NumColors=1<<pInfoHeader->biBitCount;
                if(pInfoHeader->biClrUsed) 
                    NumColors=pInfoHeader->biClrUsed;//Если biClrUsed равно нулю, значит используються все возможные цвета...
                if(pInfoHeader->biBitCount==24)
                    NumColors=0;
                //устанавливаем глобальные переменные XSize  и YSize;
                //XSize=pInfoHeader->biWidth;
                //YSize=pInfoHeader->biHeight;
 
                lpbi = (PBITMAPINFO)LocalAlloc(LPTR,sizeof(BITMAPINFOHEADER)+sizeof(RGBQUAD)*NumColors);
                memcpy(lpbi,pInfoHeader,sizeof(BITMAPINFOHEADER));
                if(pInfoHeader->biBitCount<=8)
                    fread(lpbi->bmiColors,sizeof(RGBQUAD)*NumColors,1,fBMP);//прочитали палитру bmp-шную
                fseek(fBMP,FileHeader.bfOffBits,SEEK_SET);
                lSize = FileHeader.bfSize - FileHeader.bfOffBits;
                if(!(pDIB = (char *)malloc((1 + lSize)*sizeof(char))))
                    MessageBox(hConsole,"Ошибка выделения памяти под буфер схеммы",NULL,MB_OK);
                else
                {
                    fread(pDIB,1,lSize,fBMP);
                    hBMP = CreateDIBitmap
                        (
                            hDC,
                            &(lpbi->bmiHeader),
                            CBM_INIT,
                            pDIB,
                            lpbi,
                            DIB_RGB_COLORS
                        );
 
- это часть кода, рисующего схемму в коносли http://www.cyberforum.ru/faq/thread4...ml#post2444225
-=ЮрА=- вне форума
Ответ Создать новую тему

Похожие темы
Тема Автор
C# для начинающих Загрузка курсора из ресурса
Проект C# Хочу загрузить курсор из ресурса. Загрузить примерно так: Cursor cur = new Cursor(global::PROJECT.Properties.Resources.CURSORNAME); Курсор в проект добавил solution explorer-ом. Господа корифеи, подскажите откуда взять CURSORNAME?
Кутя
C# для начинающих загрузка картинки из ресурса
Как мне на PictureBox-e нарисовать картинку, которая уже в ресурсах? Картинку в ресурсы добавил(через меню в правом верхнем углу пикчербокса), pictureBox.Image = Properties.Resources.ИМЯ_РЕСУРСА не работает
WST_Lucifer
.NET Windows Forms Загрузка курсора из файла ресурса
загрузить из файла я нашел как IntPtr colorCursorHandleNo = LoadCursorFromFile( Patch +"//NO.cur"); NoCurs.GetType().InvokeMember("handle", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetField, null, NoCurs, ...
wwowa
Visual Basic Загрузка иконки из файла ресурса
Добрый день всем! Вот такой вопрос: Помещаю иконку в файл ресурса. Про загрузке Set Image1.Picrure=LoadResPicrure(Id,vbResIcon) иконка отображается с искажением размера(увеличивается), хотя если Set Image1.Picrure=LoadPicrure("......ico")-все нормально. В чем может быть дело?
zpmax
.NET Загрузка курсора из Win32 ресурса
Дорогой All Есть проблема для которой не нашел решения. Суть в слудущем: так как .Net платформа не держивает цветные курсоры, гружу их через: using System.Runtime.InteropServices; public static extern int LoadCursorFromFile(String FileName);
tantal
Опции темы

Текущее время: 15:03. Часовой пояс GMT +4.

Компьютерный форум программистов и сисадминов
Powered by vBulletin® Version 3.8.7 PL2
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Рейтинг@Mail.ru