Как получить заголовок 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д