Declare Function SetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает количество байт, использованных при установке бит растра
' Добавьте на форму рисунок 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"