Функция SetBitmapBits

Declare Function SetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
SetBitmapBits устанавливает биты графических данных растра в заданные значения. Функция устарела и оставлена для совместимости со старыми версиями Windows. Используйте функцию SetDIBits

Возвращаемое значение

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает количество байт, использованных при установке бит растра

Параметры

hBitmap
Дескриптор растра
dwCount
Количество копируемых байт, определенных в lpBits
lpBits
Массив байт, содержащих графические данные заданного растра

Пример

' Добавьте на форму рисунок PictureBox
' Установите ScaleMode формы в 3-Pixel
Const PALETTE_WHITE = 255
Const PALETTE_BLACK = 0

Dim pixels() As Byte   ' 1 = черный, 0 = белый
Dim bytes() As Byte     ' новый растр
Dim wid As Integer
Dim hgt As Integer
Dim i As Integer
Dim j As Integer

' Создаем тестовые данные
wid = 100
hgt = 100
ReDim pixels(0 To wid - 1, 0 To hgt - 1)
For i = 0 To wid - 1
  pixels(wid - 1 - i, i) = 1
  pixels(i, i) = 1
Next i
    
' Меняем размер картинки и байтового массива
Picture1.Width = wid + Picture1.Width - Picture1.ScaleWidth
Picture1.Height = hgt + Picture1.Height - Picture1.ScaleHeight
ReDim bytes(0 To wid - 1, 0 To hgt - 1)
    
' Копируем пикселы в новый растр
For i = 0 To wid - 1
   For j = 0 To wid - 1
        If pixels(i, j) = 1 Then
             bytes(i, j) = PALETTE_WHITE
         Else
             bytes(i, j) = PALETTE_BLACK
        End If
    Next j
Next i
    
' Теперь PictureBox использует новый растр
SetBitmapBits Picture1.Image, wid * hgt, bytes(0, 0)
    
' Выводим картинку
Picture1.Refresh
    
Picture1.Picture = Picture1.Image
    
' Сохраняем картинку в файле
SavePicture Picture1.Picture, "xxx.bmp"

Смотри также

GetBitmapBits, SetDIBits

Категория

Графика