s.******[email protected]
2011-12-09 09:43 deepin
呃,懒猫现在在写一个截图工具啊。
Reply Like 0 View the author
呃,懒猫现在在写一个截图工具啊。
[quote]呃,懒猫现在在写一个截图工具啊。
[quote][quote]呃,懒猫现在在写一个截图工具啊。
懒猫是不是王勇,我不是王勇,你搞错了...晕!
[quote]
懒猫是不是王勇,我不是王勇,你搞错了...晕!
对,是我搞错了。语文不好,哈哈哈哈
对了,你要我们的个人介绍邮件干什么.
不要那么神秘嘛,也不和我们说一声,有什么好事情吗?
[quote]
对,是我搞错了。语文不好,哈哈哈哈
对了,你要我们的个人介绍邮件干什么.
不要那么神秘嘛,也不和我们说一声,有什么好事情吗?
就是王明栋 收 个人介绍邮件的事情,昨天晚上的时候,他也不和我们说说是搞的什么事情,问他也不说,好神秘啊。
[quote]
就是王明栋 收 个人介绍邮件的事情,昨天晚上的时候,他也不和我们说说是搞的什么事情,问他也不说,好神秘啊。
Popular Events
More
由于只能实现截取全屏,
想尽办法本人也无法实现窗口截图.
gdk_pixbuf_get_from_drawable(NULL, root_window, NULL, x, y, 0, 0, widht, height); // 只要设定 x,y就可以定位root_windows的坐标, width, height就是截图窗口的宽和高。
由于GTK+也不是太深入.
查找资料只知道 #include 是 xlib的部分封装.
只知道涉及的 xlib函数有一些:
XQueryTree
....
xwininfo 和 xprop 着两个工具的源码都是基于 xlib.
可惜本人没有学过 xlib.
如果将 xwininfo > 123.txt,这个办法太不爽了.
对于如何取实现的这些东西也是无能为力啊... ...纠结中 快2:00了... 睡不着啊,思考中,翻查中 ... ... -_-
分析别人(xwininfo)的代码:[精简]注:上面的英文注释是原作者的注释!!
gdk_window_get_width //看width就知道
gdk_window_get_height
gdk_window_get_pointer //返回鼠标的坐标
gdk_window_get_window_type //获取窗口的类型
GDK_WINDOW_ROOT,
GDK_WINDOW_TOPLEVEL,
GDK_WINDOW_CHILD,
GDK_WINDOW_DIALOG,
GDK_WINDOW_TEMP,
GDK_WINDOW_FOREIGN,
GDK_WINDOW_OFFSCREEN
gdk_window_at_pointer //获取鼠标指针下面的窗口,并返回该窗口的坐标
gdk_display_get_window_at_pointer //代替上面的函数
GdkDisplay 用于键盘/鼠标的 捉取
GDK_ROOT_WINDOW 获取当面屏幕根窗口和当前xlib窗口的ID
选择性的截图
可以以窗体为基准,比如gtk+ 中的 set_opacity 设置窗体的透明透,我们就以这个窗体为截图的范围,
比如鼠标按下后和鼠标放开的距离计算,可以得知 窗体的高和宽,设置窗体的高和宽和X,Y坐标,这个我们就直接可以得出截图的范围了.
截图后,将截图的信息显示在我们的窗体中,然后显示出来,这里当然窗体是没有标题拦那一块的,不然我们就露底了。
用户就可以任意的在上面画线,画圈,当然要编辑图片,我这个我就不知道了.
反正在窗体上画的任何东西,当时侯保存一下就OK了。也是直接截窗体。
要是想取消,又将原来保存的图片信息再显示出来,我们刚刚画的东西就没有了.
如果感觉不爽,还可以为截图后的窗体下方添加一行工具拦,这个就又点QQ截图的闻道了,好的思是要多学习的。
这个在深度linux软件中心讲解过了,工具拦也一个窗体,只是跟随主窗体的坐标显示在下面而已,不可移动,移动主窗体,他只能默默的消失.
原理就是这样,大家又什么好的想法,也一起讨论吧。互相学习。
其它参考信息: http://socol.iteye.com/blog/562816