将截取的内容压缩
答:一般常用的方法都是进行分辨率的降低和图片格式的转换;一般一个1024的屏幕大约需要20-60K,但是常见的方法往往不会是最好的,如果每秒24枕,会让你的网络趴下的。如何通过socket发送
答:去www.codeproject.com搜索winsock,你能找到一大堆的源代码!
以下仅作参考,我随意试验的代码,前些天写的 Dim CurImage As Image = New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, Imaging.PixelFormat.Format16bppRgb555)
Dim g As Graphics = Graphics.FromImage(CurImage)
g.Clear(Color.White)
g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size)
Dim MyStream As Stream = Nothing
CurImage.Save(MyStream, System.Drawing.Imaging.ImageFormat.Gif)
'CurImage.Save("D:\D\A" & II.ToString & ".Jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
'CurImage.Save("D:\D\A" & II.ToString & ".Gif", System.Drawing.Imaging.ImageFormat.Gif)
'CurImage.Save("D:\D\A" & II.ToString & ".Exif", System.Drawing.Imaging.ImageFormat.Exif)
'CurImage.Save("D:\D\A" & II.ToString & ".Emf", System.Drawing.Imaging.ImageFormat.Emf)
答:一般常用的方法都是进行分辨率的降低和图片格式的转换;一般一个1024的屏幕大约需要20-60K,但是常见的方法往往不会是最好的,如果每秒24枕,会让你的网络趴下的。如何通过socket发送
答:去www.codeproject.com搜索winsock,你能找到一大堆的源代码!
以下仅作参考,我随意试验的代码,前些天写的 Dim CurImage As Image = New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, Imaging.PixelFormat.Format16bppRgb555)
Dim g As Graphics = Graphics.FromImage(CurImage)
g.Clear(Color.White)
g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size)
Dim MyStream As Stream = Nothing
CurImage.Save(MyStream, System.Drawing.Imaging.ImageFormat.Gif)
'CurImage.Save("D:\D\A" & II.ToString & ".Jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
'CurImage.Save("D:\D\A" & II.ToString & ".Gif", System.Drawing.Imaging.ImageFormat.Gif)
'CurImage.Save("D:\D\A" & II.ToString & ".Exif", System.Drawing.Imaging.ImageFormat.Exif)
'CurImage.Save("D:\D\A" & II.ToString & ".Emf", System.Drawing.Imaging.ImageFormat.Emf)
解决方案 »
- C#调用VB60COM组件,在其他机器运行时提示检索 COM 类工厂中 CLSID 为..,什么原因?
- 错误:设计器加载程序未提供根组件,但没有指出原因。
- 键盘监视?
- JavaScript學習資料
- 2个Ilist怎么去除里面的重复数据,是否重复按他们中间都有的列A来判断
- 请帮我看看!在绑定时,我想只在指定列中判断是否符合某个条件,把它所在的单元格改成别的颜色!
- c#的优点
- 如何向Access数据库中加入包含'号的数据?(up有分)
- 大伙帮我看看哪里出了错
- 如何应用Entity Framework4.1查询oracle中序列的值?请给出样例代码。
- 想用C#开发C/S结构的进销存,相对于单机版的,在开发上有什么不同?
- 求关于listview托拽的源代码
2、屏幕监视不是录影,监视必须时时,而不是过后浏览。
3、似乎你对这些不是很了解——我也不是很精通。只是对问题,不是对人。
可能忘记说了一点,我需要的实时监控,而那种FTP的方式就不会去考虑了!
我看了个java的屏幕监控程序,他的核心过程是这样的
while (true){
try{
socket = new Socket("220.173.44.158",5000);//连接远程IP
BufferedImage image = robot.createScreenCapture(rectangle);//捕获制定屏幕矩形区域
os = new ZipOutputStream(socket.getOutputStream());//加入压缩流
//os = new ZipOutputStream(new FileOutputStream("C:/1.zip"));
os.setLevel(9);
os.putNextEntry(new ZipEntry("1.jpg"));//这个是干吗?怎么会有1.jpg?
JPEGCodec.createJPEGEncoder(os).encode(image);//图像编码成JPEG
os.close();
Thread.sleep(50);//每秒20帧
}catch(Exception e){
e.printStackTrace();
我不太明白的是他是如何用socket发送压缩流的?(MS只看到了最后编码成JPEG,而没有发送过程)C#可以么?