Visual C++ Bmp Из Буфера

Тема в разделе "MS Visual C++", создана пользователем Antuan, 4 мар 2012.

  1. Antuan

    Antuan Гость

    Дайте пожалуйста код функции, которая выводит в окно картинку BMP из буфера
    unsigned char* pDispBuffer;
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    В pDispBuffer BMP-картинка с заголовком или только изображение NxN ?
     
  3. Anjei

    Anjei Гость

    Даю код функции , где ... все понятно


    BYTE *pBuffer;

    int dwLength - размер картинки
    pBuffer - указатель на Ваш буфер.

    HBITMAP phBitmap;

    HWND hWnd_Wnd;
    hWnd_Wnd=GetDlgItem(IDS_FOTO)->m_hWnd; // окно в диалоговом окне
    CRect Rect_Wnd;
    ::GetWindowRect(hWnd_Wnd,&Rect_Wnd);
    int R_X=Rect_Wnd.right-Rect_Wnd.left;
    int R_Y=Rect_Wnd.bottom-Rect_Wnd.top;
    ///////////////////////////////////////////////////
    PAINTSTRUCT paintstruct;
    BITMAP bitmap;
    HDC hdc = ::BeginPaint(hWnd_Wnd, &paintstruct);
    HDC hdcMemory = CreateCompatibleDC(hdc);
    phBitmap=LoadBitmapFromMemory(pBuffer,hdc);
    HGDIOBJ oldBitmap = SelectObject(hdcMemory, phBitmap);
    GetObject(phBitmap, sizeof(bitmap), &bitmap);

    StretchBlt(hdc,0,0,R_X,R_Y,hdcMemory,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY)
    ;
    SelectObject(hdcMemory, oldBitmap);
    DeleteDC(hdcMemory);
    ::EndPaint(hWnd_Wnd, &paintstruct);
    ////////////////////////////////
    free (pBuffer);pBuffer=NULL;
    DeleteObject(phBitmap);
    DeleteDC(hdcMemory);
     
Загрузка...

Поделиться этой страницей