Qt 截屏 程序超级简洁代码
最近搞了搞Qt的截屏程序,参考了网上几个例子,但是那些例子都加了很多作者自己要完成的内容,别人看起来比较费劲,我整理了一下,其实真正截图起作用的就那么几行代码,所以我觉得有必要分享一下
QPixmap fullScreen;int screenWidget = 640; //屏幕尺寸设置,自己要写别的函数修改尺寸的改这里int screenHight = 480;//就是这一步截取了全屏fullScreen = QPixmap::grabWindow(QApplication::desktop()->winId(),0,0,screenWidget,screenHight);//这一步是设置弹出框询问保存位置和命名的,要自己修改位置和命名的改这里
// QFileDialog::Options options;
// QString selectedFilter;
// QString fileName = QFileDialog::getSaveFileName(this,
// tr("Save picture"),
// "savescreen.jpg",
// &selectedFilter,
// options);//设置截图区域,截图区域是从整屏幕截图中复制相应的区域,要自己写函数的改这里
// int x = 0;
// int y = 0;
// int w = 300;
// int h = 300;/****************************以下几步是正常的保存QPixmap,可以不转QIameg****************************/
// fullScreen = fullScreen.copy(x,y,w,h); //截取区域改这里// fullScreen.save(fileName,"JPG") 需要有保存对话框的这么写// if(fullScreen.save("/savescreen.jpg","JPG"))
// qDebug("----------save screen success----------");/**************以下几步是针对嵌入式系统,图像位数有限制,转为了8位的图像,PC端可以不需要**************/QImage image = fullScreen.toImage();// image = image.copy(x,y,w,h); //截取区域改这里//转8位image = image.convertToFormat(QImage::Format_Indexed8,Qt::AutoColor);//image.save(fileName,"JPG") 需要有保存对话框的这么写if(image.save("/savescreen.jpg","JPG"))qDebug("----------save screen success----------");
以上的代码,只要写在一个空的工程里,就能运行了,我是在嵌入式的linux下运行,所以会有图像位数的限制,要转一下QImage降低位数,我直接保存在了固定的路径,名称也固定了,运行一次截一次图,这样就是最小最简洁的了
然后我把各种需要扩展的地方都做了注释,比如要自己写接口设定截图区域的,我标了在哪里改,自己要写保存路径的,我也标出来在哪里改,要是在PC端运行的,可以直接保存QPixmap。
仅希望对别人有所帮助
Qt 截屏 程序超级简洁代码相关推荐
- IE浏览器整页截屏程序
最近项目中涉及到浏览器整页截屏的功能,有点复杂,研究了一天,终于在IE浏览器下实现,至于其他浏览器,以后再研究. 所谓整页截屏,就是说把整个页面全部截进去,包括通过滚动才能看到的部分. 在网上搜了一下 ...
- c语言如何编写截屏程序_截屏视频:为Optimus Mini三键盘编写托管的.NET插件
c语言如何编写截屏程序 Here's a screencast demoing writing Managed .NET Plugins for the Optimus Mini Three Keyb ...
- android长截屏代码,android长截屏原理及实现代码
android长截屏原理及实现代码 发布时间:2020-08-31 06:55:16 来源:脚本之家 阅读:158 作者:Android笔记 小米系统自带的长截屏应该很多人都用过,效果不错.当长截屏时 ...
- android中截屏功能实现,android代码实现截屏功能
android开发中通过View的getDrawingCache方法可以达到截屏的目的,只是缺少状态栏! 原始界面 截屏得到的图片 代码实现 1. 添加权限(AndroidManifest.xml文件 ...
- 简易的视频随机截屏程序
由于笔者在b站投稿MMD视频时,经常会遇到不知道用什么封面的情况,而b站的随机截屏有时候比我人工截的还好,但有时候也并没好看的.所以我便想自己写一个视频随机截屏的程序.截的多了,总归会有好看的. 然后 ...
- android获取状态栏截屏按钮状态,关于代码截屏带状态栏的问题
昨天产品经理告诉我,希望能实现仿网易严选那样,可以捕捉到用户的截屏操作,然后进行截屏分享的小功能. 在实现的过程中遇到的最大问题就是截屏为什么没有状态栏???然后各种查找,资料聊聊无几,只有大神Ope ...
- Java代码截屏:使用 Java 代码截取电脑屏幕并保存
本文链接: http://blog.csdn.net/xietansheng/article/details/78453640 Java Swing 图形界面开发(目录) Java代码截屏使用java ...
- 嵌入式linux截屏代码,嵌入式linux截屏程序
基于网上一个代码改的. 源地址:http://blog.csdn.net/z1179675084/article/details/14645359 // 注意,由于fb_bpp = 16的情况没用到, ...
- 嵌入式Linux Qt截屏并保存到U盘
1 概述 此方法主要基于窗口QWidget进行截图. 2 找到需要截图的窗口 此窗口可能有N多个子窗口,截图包含正在显示的元素. 3 截图 这里的U盘挂载路径为/media/sda1 void scr ...
最新文章
- jquery下拉菜单
- SpringMVC上传文件解析request请求为空获取不到数据问题
- 叛逆的仔:不听老板的话,还要用行动给老板来个响亮耳光!
- Jenkins持续集成环境之Maven的安装和配置
- BCOS系统合约介绍
- 用python模拟高斯分布
- [机器学习-实践篇]贝叶斯算法
- 《天天数学》连载40:二月九日
- Gerrit配置--用户配置
- 《iOS8 Swift编程指南》类书图像
- php 7 xhprof,php7中使用xhprof解析
- 数据结构以及算法的资源整理备忘
- matlab 韦达公式,三次方程的根式求解(通俗版本)
- 无法加载oracle驱动程序998,无法加载oracle in oradb10g_home2 odbc驱动程序的安装例程,因为存在系统错误代码998 解决方法...
- 吴伯凡-认知方法论-效率高并不一定是好事
- css用网络图片做背景图片,css 网页背景图片 怎样用CSS实现大背景网页效果
- cobbler集成服务器批量安装操作系统(无人值守)
- android关闭硬件动画加速器,Android中的硬件加速
- 项目部署到SVN上以及SVN修改项目名称详细步骤
- C语言 八进制数转换为四进制