C
coao
Unregistered / Unconfirmed
GUEST, unregistred user!
使用WebBrower浏览ASP,抓取WebBrower内指定大小的内容,设WebBrower.Visible:=False,应该如何做?
以下代码抓出的BMP不对.
GetMem(bytesBuffer,BitSize);
fillChar(BytesBuffer^,BitSize,0);
hDC1:=GetDC(0);
MemBitmap:=CreateCompatibleBitmap(hDC1,iWidth,iHeight);
ShowBitMap:=CreateCompatibleBitmap(hDC1,iWidth,iHeight);
ReleaseDC(0, hDC1);
MemDC:=CreateCompatibleDC(0);
SelectObject(MemDC,MemBitMap);
hDC2:=CreateCompatibleDC(0);
SelectObject(hDC2,ShowBitMap);
SendMessage(wbBrow.Handle,WM_PRINT,MemDC,PRF_OWNED);
SetStretchBltMode(hDC2,STRETCH_HALFTONE);
StretchBlt(hDC2,0,0,iWidth*2,iHeight*2,MemDC,0,0,Width,Height,SrcCopy);
DeleteDC(MemDC);
DeleteObject(MemBitmap);
with SrcbmHeader do begin
biSize:=SizeOf(TBitmapInfoHeader);
biWidth:=iWidth;
biHeight:=iHeight;
biPlanes:=1;
biBitCount:=24;
biCompression:=BI_RGB;
end;
bi.bmiHeader:=SrcbmHeader;
if GetDIBits(hDC2,ShowBitMap,0,iHeight,BytesBuffer,bi,DIB_RGB_COLORS)=0 then
begin
showmessage('错误抓图'+inttostr(GetLastError));
end
else
begin
DeleteDC(hDC2);
DeleteObject(ShowBitMap);
MemFile:=TMemoryStream.Create;
MemFile.Write(BytesBuffer^,BitSize);
MemFile.SaveToFile('D:/a.bmp');
MemFile.Free;
end;
以下代码抓出的BMP不对.
GetMem(bytesBuffer,BitSize);
fillChar(BytesBuffer^,BitSize,0);
hDC1:=GetDC(0);
MemBitmap:=CreateCompatibleBitmap(hDC1,iWidth,iHeight);
ShowBitMap:=CreateCompatibleBitmap(hDC1,iWidth,iHeight);
ReleaseDC(0, hDC1);
MemDC:=CreateCompatibleDC(0);
SelectObject(MemDC,MemBitMap);
hDC2:=CreateCompatibleDC(0);
SelectObject(hDC2,ShowBitMap);
SendMessage(wbBrow.Handle,WM_PRINT,MemDC,PRF_OWNED);
SetStretchBltMode(hDC2,STRETCH_HALFTONE);
StretchBlt(hDC2,0,0,iWidth*2,iHeight*2,MemDC,0,0,Width,Height,SrcCopy);
DeleteDC(MemDC);
DeleteObject(MemBitmap);
with SrcbmHeader do begin
biSize:=SizeOf(TBitmapInfoHeader);
biWidth:=iWidth;
biHeight:=iHeight;
biPlanes:=1;
biBitCount:=24;
biCompression:=BI_RGB;
end;
bi.bmiHeader:=SrcbmHeader;
if GetDIBits(hDC2,ShowBitMap,0,iHeight,BytesBuffer,bi,DIB_RGB_COLORS)=0 then
begin
showmessage('错误抓图'+inttostr(GetLastError));
end
else
begin
DeleteDC(hDC2);
DeleteObject(ShowBitMap);
MemFile:=TMemoryStream.Create;
MemFile.Write(BytesBuffer^,BitSize);
MemFile.SaveToFile('D:/a.bmp');
MemFile.Free;
end;