本文阐述了一个在Qtopia下截取屏幕的方法,实际上Qtopia和QT都支持帧缓冲技术,我们可以将帧缓冲的数据读出来即为屏幕数据。但是这种方法需要对设备驱动的了解,而且实现起来不那么方便。这里介绍利用QT库中自带的grabWidget与grabWindow函数截取屏幕的方法。
两个函数的原型如下:
QPixmap QPixmap::grabWindow ( WId window, int x=0, int y=0, int w=-1, int h=-1 )
WId表示被截取窗口的ID号;
x,y表示截取范围的起始作标;
w,h分别表示截取范围的宽度和高度,如果为-1,则表示全部截取。
QPixmap QPixmap::grabWidget ( QWidget * widget, int x=0, int y=0, int w=-1, int h=-1 )
widget表示被截取窗口的画布部分,其余参数同grabWindow
下面这段代码实现了当前整个窗口的截取。
QPixmap pixmap;
//QT库中的图形类,可以处理QT支持的所有图形类型,如JPG,BMP等
QPixmap pix;
pix=pixmap.grabWindow(this->winId(),0,0,-1,-1);
//this->winId()为获得当前窗口ID
if(pix.isNull())
{
QMessageBox::information(this,"error","grab Screen failed",QMessageBox::Ok);
}
else
{
if(pix.save( "/tmp/grab.bmp", "BMP" )==false)
{
QMessageBox::information(this,"right","save error",QMessageBox::Ok);
}
else
QMessageBox::information(this,"Grab","bitmap saved as /tmp/grab.bmp",QMessageBox::Ok);
}
将grabWindow改为grabWidget即可实现画布数据的采集。
来源:http://hi.baidu.com/hisic/blog/item/f88b66ecbbeabcdcb31cb186.html
分享到:
相关推荐
2.支持特定屏幕区域录制 3.支持录屏质量修改,质量越高,录制单位时间生成的avi文件越大 4.支持帧率选择,最高24帧每秒 5.增加自动分割avi文件功能,在24帧每秒录制的设置下,每个avi文件时长1分钟 6.通过多线程将...
vc学习,模仿QQ截屏工具,用Qt实现简单的截屏功能
可以显示截图区域大小,可以任意拖动截图区域,四个边框可拖拽修改大小
用Qt实现的屏幕截图工具,可以实现全屏截图和自定义拖拽大小截图,两种方式。
qt实现的屏幕截图功能,同时有托盘,有快捷键,可以截图任意位置任意大小。
使用QT实现的类似于QQ截图的截屏软件,可缩放,可保存,可取消。
QT教程之-屏幕截图工具,实现屏幕截图功能,可自由拖动选择区域
在Qt中实现打印暑促功能,打印文字图片等,还可以把内容输出为pdf,实现类似QQ的屏幕截图功能
使用Qt的API 截图,然后存入视频。XVID的使用接口,套用了网友松牛的用法,在此感谢大牛的贡献。然后我在博客中会有一篇XVid 编译的帖子 http://www.qtprogrammer.org/?p=161,欢迎拍砖。
史上最完整的QQ截图工具,1比1,高仿供学习,MulanPSL-2.0协议,Qt实现,可随意移植国产系统UOS/麒麟。仿最新QQ截图,中国码云独家开源, 可以随意修改使用优化源码,码云地址:https://gitee.com/YuanDad/YScreenShot...
1、Dxgi截图屏幕 2、FFmpeg 对图像如流生成MP4 2、采用VS2015+QT5.99联合开发 3、1分钟大概1M左右 4、完成了鼠标的绘制 5、未对声音进行录制
自己写的一款类似飞秋的局域网即时通信软件,功能强大,具有以下功能:漂亮界面(支持换肤功能),好友上线、下线提醒,群聊、私聊、对话框震屏、屏幕截图等功能,还有很多其他的功能,自己去发掘吧,总之这个积分...
支持多屏幕截图5.支持窗口自动校准6.支持鼠标取色7.支持截图到剪切板8.保存本地到jpg(具体格式可自行修改,若又更好的优化可以Pull哟)待开发功能绘图功能1.马赛克2.图形3.文字4.撤销功能5,功能绘图功能
用Qt实现的截屏软件,可以设置每次截屏的间隔时间,然后每隔这个时间截取一次屏幕,并且将文件保存在当前目录下,而且可以指定屏幕的区域进行截图。
实现记事本的基本功能,文件打开与保存,字体设置,颜色设置。拥有动态图片播放,指定网页打开,屏幕截取保存及导入系统剪切板,屏幕实时监控,多窗口跳转与互相切换。大量信号与槽的运用,初学者必备。
Qt实现全屏幕截图及区域选择截图
实现思路:先实现截取整个屏幕成pixmap,然后获得鼠标位置坐标,截取pixmap中鼠标位置的40x40的像素,然后放大3倍,截取的区域设置成画刷,在鼠标位置处120x120矩形中画出一个椭圆,其实就是一个圆。这样就ok了,...
\蔡志明首次引入Qt设计器的使用,绘制并实现了一个查找文件功能的部件,介绍了Qt应用程序中使用ui文件的基本方法以及Qt样式表;较深入地分析了Qt对象模型的一些基本知识,涉及信号和槽机制、Qt元对象系统、属性系统...
\蔡志明首次引入Qt设计器的使用,绘制并实现了一个查找文件功能的部件,介绍了Qt应用程序中使用ui文件的基本方法以及Qt样式表;较深入地分析了Qt对象模型的一些基本知识,涉及信号和槽机制、Qt元对象系统、属性系统...
详情见博客https://blog.csdn.net/qq_41563600/article/details/121343927