Модератор: Brickgroup
AWPStar писал(а):4ю версию планируешь в обозримом будущем?
int GetDIBits(
HDC hdc, // дескриптор DC
HBITMAP hbmp, // дескриптор рисунка
UINT uStartScan, // первая устанавливаемая строка развертки
UINT cScanLines, // число копируемых строк развертки
LPVOID lpvBits, // массив для битов рисунка
LPBITMAPINFO lpbi, // буфер данных рисунка
UINT uUsage // индексы RGB или палитры
);
Don Leno писал(а):Она извлекает данные из рисунка в массив, но извлекает из дескриптора рисунка или из дескриптора контекста?? И что для чего нужно?? Как вообще она работает??? Ах, чуть не забыл, как из контекста вытащить в рисунок IPicture?
' // Create the bitmap with the contents of window
tmpDC = CreateCompatibleDC(Me.hdc)
oldBmp = SelectObject(tmpDC, bmpShadow)
PrintWindow hWnd, tmpDC, 0
SelectObject tmpDC, oldBmp
DeleteDC tmpDC
' // Move data from the bitmap to the texture
texture.LockRect 0, rect, ByVal 0&, 0
lpDat = lpBmpData
Public Sub LoadFromDC(ByVal hDC As Long)
Dim cDc As Long, cBmp As Long, nBmp As Long
cDc = CreateCompatibleDC(frmMain.hDC)
cBmp = CreateCompatibleBitmap(frmMain.hDC, meWidth, meHeight)
nBmp = SelectObject(cDc, cBmp)
BitBlt cDc, 0, 0, meWidth, meHeight, hDC, 0, 0, vbSrcCopy
GetDIBits cDc, cBmp, 0, meHeight, cBuf(0), bi32BitInfo, 0
SelectObject tDc, nBmp
DeleteDC tDc
DeleteObject cBmp
End Sub
Don Leno писал(а):просьба пните в верном направлении
PrintWindow Text1.hWnd, Pic1.hDC
Don Leno писал(а):за оптимизацию сабы LoadFromDC не пинайте - это пока набросок кода
Don Leno писал(а):А по самой сабе добавить/изменить ничего не подскажешь? Может оптимизировать как-нить?
Public Sub LoadFromWindow(ByVal hWnd As Long)
Dim cDC As Long, hDC As Long, Bmp As Long
Dim R As RECTL
hDC = GetDC(hWnd)
GetWindowRect hWnd, R
Init R.Right - R.Left, R.Bottom - R.Top
cDC = CreateCompatibleDC(hDC)
Bmp = CreateCompatibleBitmap(hDC, meWidth, meHeight)
SelectObject cDC, Bmp
BitBlt cDC, 0, 0, meWidth, meHeight, hDC, 0, 0, vbSrcCopy
GetDIBits cDC, Bmp, 0, meHeight, cBuf(0), bi32BitInfo, 0
DeleteObject Bmp
DeleteDC cDC
End Sub
Don Leno писал(а):как сделать альфа каналом все цвета кроме одного?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17