桌面共享 【Robot类】 【画图】

jasonchain 2008-04-27 07:17:53
本人想写一个桌面共享程序,但遇到些问题。

我的思路是:

首先,先用Robot类的getPixelColor方法取出桌面每个点的颜色

然后,用Socket类建立c/s连接,将这些颜色传送到另一方。

最后,接收颜色的那一方,将这些点画在Canvas上。


遇到的问题有:
1:使用getPixelColor一个个地取出桌面像素的颜色值,速度太慢,1024*768的分辨率大约需要6秒。

2:将这些颜色值传送出去更慢,大概需要30秒

3:画出这些点速度也很慢

4:使用Socket好像不能在互联网间进行连接。
Socket server = new Socket(InetAddress.getByName("192.168.0.1"), 6000)



这些问题希望各位能指点指点!!!
...全文
135 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenweionline 2008-04-28
  • 打赏
  • 举报
回复
截屏
Robot
public BufferedImage createScreenCapture(Rectangle screenRect)
jasonchain 2008-04-28
  • 打赏
  • 举报
回复
截屏后怎么使用socket将图片传出去呢?

图片能获得数据流吗?
jasonchain 2008-04-27
  • 打赏
  • 举报
回复
我就是想了解截图地过程,最好能自己写代码实现,
这样就能够随心所欲地截屏了。
KKK2007 2008-04-27
  • 打赏
  • 举报
回复
Socket server = new Socket(InetAddress.getByName("192.168.0.1"), 6000)
楼主,你的这个地址"192.168.0.1"是私有地址,只能在局域网里用,当然不能通过互连网了
你要想通过互连网就要申请一个公有ip地址,一般要交一定费用,不过不是很多,这样 ,就行了
evoloyeu 2008-04-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 rypgood 的回复:]
lz厉害
竟然用象素点来操作?
个人认为
先在对方电脑上把屏幕截图,然后把它处理成流传给本机
本机接到流后又转化成图片显示出来 这样应该快一点吧
另外 socket支持互联网见连接的,不然要来做什么啊
你可能是在局域网里面的,所以看到的是对内的ip,外面的机当然就识别不了你的ip了
[/Quote]
jasonchain 2008-04-27
  • 打赏
  • 举报
回复
那抓图的具体过程是什么样的?

如果能自己实现那更好,因为那样就可以随心所欲地控制所要共享地桌面大小。

另外,有没有类可以读写声卡,就像网络电话一样,可以取出和写入声音
我是风 2008-04-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 rypgood 的回复:]
lz厉害
竟然用象素点来操作?
个人认为
先在对方电脑上把屏幕截图,然后把它处理成流传给本机
本机接到流后又转化成图片显示出来 这样应该快一点吧
另外 socket支持互联网见连接的,不然要来做什么啊
你可能是在局域网里面的,所以看到的是对内的ip,外面的机当然就识别不了你的ip了
[/Quote]
chenweionline 2008-04-27
  • 打赏
  • 举报
回复
本地抓图后压缩成jpeg格式字节流传到接收端再解码显示比较实际
rypgood 2008-04-27
  • 打赏
  • 举报
回复
lz厉害
竟然用象素点来操作?
个人认为
先在对方电脑上把屏幕截图,然后把它处理成流传给本机
本机接到流后又转化成图片显示出来 这样应该快一点吧
另外 socket支持互联网见连接的,不然要来做什么啊
你可能是在局域网里面的,所以看到的是对内的ip,外面的机当然就识别不了你的ip了

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧