var
vHdc : HDC;
vbitmap : TBitmap;
pt : TRect;
begin
vHDC := GetDC(0);
GetWindowRect(Form2.Handle,pt);
vbitmap := TBitmap.Create;
try
vbitmap.Width :=Form2.Width;
vbitmap.Height := Form2.Height;
BitBlt(vbitmap.Canvas.Handle,0,0,Form2.Width,Form2.Height,vHdc,pt.Left,pt.top,SRCCOPY);
cxImage1.Picture.bitmap:=vbitmap;
//放到image去显示
vbitmap.Assign(Image1.Picture.Bitmap);
Self.ImageList1.Add(vbitmap,vbitmap);
finally
ReleaseDC(0,vHdc);
FreeAndNil(vbitmap);
end;小弟我用如上的代码抓取了一个Form2的图片(Form2在运行时大小可以调整),所以抓出来的图片有大有小,那么怎么将抓好的bmp统一将尺寸修改为128*128呢?就是看起来像一个缩略图一样。谢谢
128, vbitmap.Canvas.Handle, 0, 0, vbitmap.Width,
vbitmap.Height, SRCCOPY);
128, vHdc, 0, 0, Form2.Width,Form2.Height, SRCCOPY);上边参数搞错了
你试一下
第一种:
BitBlt(vbitmap.Canvas.Handle,0,0,Form2.Width,Form2.Height,vHdc,pt.Left,pt.top,SRCCOPY);
改为
BitBlt(vbitmap.Canvas.Handle,0,0,128,128,vHdc,pt.Left,pt.top,SRCCOPY);
第二种:
Image1.Stretch:=True;
Image1.Width:=128;
Image1.Height:=128;