遠端控制篇:抓取遠端螢幕影像 (轉)
控制篇:抓取遠端螢幕影像
{抓螢幕影像,儲存為流--BMP流,BMP流,JPG流,以及使用流}
{在中傳送BMP流和JPG流的速度沒測試過}
{BMP流的壓縮是無失真壓縮}
{
全域性變數
memoryStream:TMemoryStream;
memoryStream:=TMemoryStream.create;
}
var
image:Timage;
jpgstream:TJPEGImage;
ss:tcanvas;
begin
ss:=tcanvas.Create;
ss.Handle:=getdc(0);
image:=timage.Create(self);
image.width:=Screen.width;
image.Height:=screen.Height ;
image.picture.bitmap.PixelFormat:= pf16bit;
bitblt(image.canvas.handle,0,0,image.width,image.height,ss.handle,0,0,srccopy);
{大大的原始BMP流
image.picture.bitmap.SaveToStream(memoryStream);
}
{無失真壓縮BMP流 uses .pas
{先定義變數count,DestStream,Stream}
image.picture.bitmap.SaveToStream(memoryStream);
Count:=memoryStream.Size;
DestStream:=TMemoryStream.Create;
{壓縮方式:clnone,clfastest,cldefault,clmax}
SourceStream:=TCompressionStream.Create(cldefault, DestStream);
try
memoryStream.SaveToStream(SourceStream);
SourceStream.Free;
memoryStream.Clear;
memoryStream.WriteBuffer(Count, SizeOf(Count));
memoryStream.CopyFrom(DestStream, 0);
finally
DestStream.Free;
end;
}
{JPG流 uses jpeg
jpgstream:= TJPEGImage.Create;
jpgstream.Assign(image.picture.bitmap);
jpgstream.CompressionQuality:=50; {壓縮質量}
jpgstream.Compress;
jpgstream.SaveToStream(memoryStream);{儲存為JPG流}
jpgstream.free;
}
ReleaseDC(0,ss.Handle);
image.free;
{傳送記憶體流...}
-----------------------------------------------------
{接收記憶體流...}
{使用BMP流
image.Picture.Bitmap.LoadFromStream(bmpStream);}
{還原壓縮的BMP流 uses:Zlib.pas
先定義變數count,buffer,DestStream,SourceStream
memoryStream是壓縮的BMP流
memoryStream.Reauffer(Count, SizeOf(Count));
GetMem(Buffer, Count);
DestStream:=TMemoryStream.Create;
SourceStream:=TDecompressionStream.Create(memoryStream);
Try
SourceStream.ReadBuffer(Buffer^, Count);
DestStream.WriteBuffer(Buffer^, Count);
DestStream.Position:=0;
image.Picture.Bitmap.LoadFromStream(DestStream);
finally
FreeMem(Buffer);
DestStream.Free;
end;
}
使用JPG流 image.Picture.Assign(jpgstream);
--------------------------------------------
湖北襄樊 官本和(to:gbh12345@china.com">gbh12345@china.com) 2001.4
詳見主頁源:
21cn.yeah">
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988324/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 抓取遠端圖片
- 如何遠端投屏實現螢幕共享
- VNC遠端控制,VNC遠端控制連線WindowsVNCWindows
- 沒有螢幕也能遠端控制?ToDesk的虛擬屏做到了!
- MobaXterm 2022,遠端控制
- 電腦遠端控制怎麼弄 學會遠端控制電腦
- vnc遠端連線工具,vnc遠端連線工具如何監控多臺員工電腦螢幕?VNC
- 電腦遠端控制怎麼弄 遠端控制別人的電腦
- Linux遠端控制技術Linux
- 遠端控制的操作流程
- 透過終端控制螢幕亮度
- 《遠端控制》-服務端實現(一)服務端
- 怎麼遠端控制電腦 遠端控制電腦的兩種方法分享
- win10遠端桌面多螢幕怎麼設定_win10系統下將多個多個螢幕都用於遠端連線的方法Win10
- VNC遠端控制軟體XP版,VNC遠端控制軟體XP版下載VNC
- 遠端桌面控制軟體,遠端桌面控制軟體推薦,及其連線方法
- vnc遠端控制軟體,vnc遠端控制軟體有什麼用,操作教程VNC
- TeamViewer遠端控制軟體,讓你享受遠端辦公的便利View
- 從遠端桌面連線切換回主螢幕的快捷鍵
- Meterpreter生成被控端並進行遠端控制
- SSH遠端訪問及控制
- 遠端訪問及控制——ssh
- 如何遠端控制數位相機
- Remote Desktop Manager 2022,遠端控制REM
- 怎麼防止電腦被遠端控制?Win10系統停用遠端控制方法Win10
- 遠端桌面控制器,遠端桌面控制器哪款容易上手?如何連線
- 使用 Mac 內建的螢幕共享功能進行遠端桌面協助Mac
- 怎麼防止電腦被遠端控制?Win10遠端控制功能的禁用方法教程Win10
- vnc遠端控制軟體,vnc遠端控制軟體怎麼使用,vnc server如何安裝?VNCServer
- vnc遠端畫面不能控制,為什麼vnc遠端畫面不能控制?原因詳解VNC
- vnc遠端控制軟體怎麼用,vnc遠端控制軟體怎麼用,使用教程VNC
- 電腦網頁端遠端控制手機方法網頁
- 2024遠端控制軟體排名1
- 遠端連線桌面 批次遠端管理
- vnc遠端畫面不能控制,vnc遠端畫面不能控制是為什麼?原因詳解VNC
- 使用 Frp 和 Docker 通過遠端桌面和 SSH 來遠端控制 Windows(反向代理)FRPDockerWindows
- 批次遠端桌面連線 批次遠端桌面
- 遠端桌面連線命令 批次遠端管理
- 遠端工作報告:從遠端到混合