Как получить заголовок Bitmap и его размер в памяти?! - VB

Узнай цену своей работы

Формулировка задачи:

Есть загруженный битмапа в памяти, они находятся в контексте (DC). Как мне получить заголовок BITMAPINFOHEADER для этого битмап?! Как правильно посчитать размер занимаемый им в памяти?! Вот приблизительный код, то есть ради примера о битмапах которые создаю и загружаю: (Внимание код написан только для примера!!)
Один битмап создается с помощью CreateCompitableBitmap, а второй грузится через LoadPicture. Мне необходимо посчитать размер для каждого из них. Как правильно это сделать?!

Решение задачи: «Как получить заголовок Bitmap и его размер в памяти?!»

textual
Листинг программы
Option Explicit
 
Private Type BITMAPINFOHEADER
    biSize              As Long
    biWidth             As Long
    biHeight            As Long
    biPlanes            As Integer
    biBitCount          As Integer
    biCompression       As Long
    biSizeImage         As Long
    biXPelsPerMeter     As Long
    biYPelsPerMeter     As Long
    biClrUsed           As Long
    biClrImportant      As Long
End Type
Private Type BITMAP
    bmType              As Long
    bmWidth             As Long
    bmHeight            As Long
    bmWidthBytes        As Long
    bmPlanes            As Integer
    bmBitsPixel         As Integer
    bmBits              As Long
End Type
Private Type DIBSECTION
    dsBm                As BITMAP
    dsBmih              As BITMAPINFOHEADER
    dsBitfields(2)      As Long
    dshSection          As Long
    dsOffset            As Long
End Type
 
Private Declare Function GetObject Lib "gdi32" _
                         Alias "GetObjectA" ( _
                         ByVal hObject As Long, _
                         ByVal nCount As Long, _
                         ByRef lpObject As Any) As Long
 
Private Sub Form_Load()
    Dim tBitmap As BITMAP
    Dim tDib As DIBSECTION
    
    GetObject Picture1.Picture.Handle, Len(tBitmap), tBitmap
    GetObject Picture1.Picture.Handle, Len(tDib), tDib
    
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.5 из 5
Похожие ответы