最近搞了搞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 截屏 程序超级简洁代码相关推荐

  1. IE浏览器整页截屏程序

    最近项目中涉及到浏览器整页截屏的功能,有点复杂,研究了一天,终于在IE浏览器下实现,至于其他浏览器,以后再研究. 所谓整页截屏,就是说把整个页面全部截进去,包括通过滚动才能看到的部分. 在网上搜了一下 ...

  2. c语言如何编写截屏程序_截屏视频:为Optimus Mini三键盘编写托管的.NET插件

    c语言如何编写截屏程序 Here's a screencast demoing writing Managed .NET Plugins for the Optimus Mini Three Keyb ...

  3. android长截屏代码,android长截屏原理及实现代码

    android长截屏原理及实现代码 发布时间:2020-08-31 06:55:16 来源:脚本之家 阅读:158 作者:Android笔记 小米系统自带的长截屏应该很多人都用过,效果不错.当长截屏时 ...

  4. android中截屏功能实现,android代码实现截屏功能

    android开发中通过View的getDrawingCache方法可以达到截屏的目的,只是缺少状态栏! 原始界面 截屏得到的图片 代码实现 1. 添加权限(AndroidManifest.xml文件 ...

  5. 简易的视频随机截屏程序

    由于笔者在b站投稿MMD视频时,经常会遇到不知道用什么封面的情况,而b站的随机截屏有时候比我人工截的还好,但有时候也并没好看的.所以我便想自己写一个视频随机截屏的程序.截的多了,总归会有好看的. 然后 ...

  6. android获取状态栏截屏按钮状态,关于代码截屏带状态栏的问题

    昨天产品经理告诉我,希望能实现仿网易严选那样,可以捕捉到用户的截屏操作,然后进行截屏分享的小功能. 在实现的过程中遇到的最大问题就是截屏为什么没有状态栏???然后各种查找,资料聊聊无几,只有大神Ope ...

  7. Java代码截屏:使用 Java 代码截取电脑屏幕并保存

    本文链接: http://blog.csdn.net/xietansheng/article/details/78453640 Java Swing 图形界面开发(目录) Java代码截屏使用java ...

  8. 嵌入式linux截屏代码,嵌入式linux截屏程序

    基于网上一个代码改的. 源地址:http://blog.csdn.net/z1179675084/article/details/14645359 // 注意,由于fb_bpp = 16的情况没用到, ...

  9. 嵌入式Linux Qt截屏并保存到U盘

    1 概述 此方法主要基于窗口QWidget进行截图. 2 找到需要截图的窗口 此窗口可能有N多个子窗口,截图包含正在显示的元素. 3 截图 这里的U盘挂载路径为/media/sda1 void scr ...

最新文章

  1. jquery下拉菜单
  2. SpringMVC上传文件解析request请求为空获取不到数据问题
  3. 叛逆的仔:不听老板的话,还要用行动给老板来个响亮耳光!
  4. Jenkins持续集成环境之Maven的安装和配置
  5. BCOS系统合约介绍
  6. 用python模拟高斯分布
  7. [机器学习-实践篇]贝叶斯算法
  8. 《天天数学》连载40:二月九日
  9. Gerrit配置--用户配置
  10. 《iOS8 Swift编程指南》类书图像
  11. php 7 xhprof,php7中使用xhprof解析
  12. 数据结构以及算法的资源整理备忘
  13. matlab 韦达公式,三次方程的根式求解(通俗版本)
  14. 无法加载oracle驱动程序998,无法加载oracle in oradb10g_home2 odbc驱动程序的安装例程,因为存在系统错误代码998 解决方法...
  15. 吴伯凡-认知方法论-效率高并不一定是好事
  16. css用网络图片做背景图片,css 网页背景图片 怎样用CSS实现大背景网页效果
  17. cobbler集成服务器批量安装操作系统(无人值守)
  18. android关闭硬件动画加速器,Android中的硬件加速
  19. 项目部署到SVN上以及SVN修改项目名称详细步骤
  20. C语言 八进制数转换为四进制

热门文章

  1. 服务器监控之IBM小型机 监控
  2. 飞书开放平台-查询已读消息示例
  3. 关于面试笔试的相关问题通知
  4. Python将excel文件从xls转换为xlsx
  5. 在VSCode中使用LaTex,语法检测插件grammarly
  6. 腾讯 SSL 免费证书申请步骤
  7. 智能电动自行车充电远程管理系统
  8. 关于防火墙安全及功能简介
  9. Windows下动态链接之三:DLL Hell !
  10. 计算机毕业设计ssm大学生心理健康管理系统3148k系统+程序+源码+lw+远程部署