Доступ к BitMapу по частям

Тема в разделе "WASM.BEGINNERS", создана пользователем neyro, 31 дек 2007.

  1. neyro

    neyro New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2007
    Сообщения:
    18
    С Новым годом всех!
    Когда отгуляете и проспитесь может кто сможет ответить, как получить доступ
    не ко всему BitMapу, а только к его части. использовать его как массив, а его
    хендл как смещение в сегменте? И как вообще получить его адрес?
     
  2. roman_pro

    roman_pro New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    291
    С Новым годом!

    Собственно вот функция, которая необходима:

    int GetDIBits(
    HDC hdc, // handle to DC
    HBITMAP hbmp, // handle to bitmap
    UINT uStartScan, // first scan line to set
    UINT cScanLines, // number of scan lines to copy
    LPVOID lpvBits, // array for bitmap bits
    LPBITMAPINFO lpbi, // bitmap data buffer
    UINT uUsage // RGB or palette index
    );

    uStartScan - параметр, определяющий с какой линии получать содержимое битмапа
    lpvBits - здесь передать адрес куда будет помещено содержимое битмапа, начиная с линии uStartScan.
    Вообщем, MSDN рулит =)
     
  3. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    neyro
    Ну есть ф-ии GetDIBits/SetDIBits. А в GDI+ можно еще воспользоваться GdipCreateBitmapFromHBITMAP.
    roman_pro
    P.S. Поздно. :)
     
  4. neyro

    neyro New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2007
    Сообщения:
    18
    roman_pro,l_inc
    Спасибо, ить и правду, работает!