4.4【共享源】克隆实战开发之截屏(二)

三,显示器截图

screen_read_display() 函数则用于捕获显示器的屏幕截图。我们需要在特权上下文中工作,以便可以完全访问系统的显示属性。我们可以通过调用具有 SCREEN_DISPLAY_MANAGER_CONTEXT 上下文类型的 screen_create_context() 来创建特权上下文。进程必须具有 root 的有效用户 ID 才能创建此上下文类型。当捕获多个显示器的屏幕截图时,我们需要为每个显示器调用一次 screen_read_display()。

3.1 screen_read_display()函数介绍

以下过程描述了如何使用Screen捕获单个显示器的屏幕截图。我们可以将生成的屏幕截图存储在pixmap或窗口缓冲区中以进行进一步操作。此特定过程描述了在pixmap缓冲区中捕获屏幕截图,然后将屏幕截图写入位图。

下面的示例应用程序使用灰色沙漏、移动的蓝色垂直条和黄色背景的组件。接下来我们看如何使用Screen API捕获屏幕截图。

应用程序通过下面的过程来实现显示器截图,如下:

  • 创建一个pixmap和缓冲区来存储你的截图
  • 检索适当的 pixmap 属性,为截图做准备
  • 截图
  • 最后在将截图写入位图文件

3.2 screen_read_display()使用示例

首先应该已经使用 screen_create_context() 创建了一个具有 SCREEN_DISPLAY_MANAGER_CONTEXT 上下文类型的特权上下文。为了能够创建此特权上下文,我们的进程必须具有 root 的有效用户 ID。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/295724.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

simulinkveristandlabview联合仿真——模型导入搭建人机界面

目录 1.软件版本 2.搭建simulink仿真模型 编译错误 3.导入veristand并建立工程 4.veristand导入labview labview显示veristand工程数据 labview设置veristand工程数据 运行labview工程 1.软件版本 matlab2020a,veristand2020 R4,labview2020 SP…

Python入门学习篇(五)——列表字典

1 列表 1.1 定义 ①有序可重复的元素集合 ②可以存放不同类型的数据 ③个人理解:类似于java中的数组1.2 相关方法 1.2.1 获取列表长度 a 语法 len(列表名)b 示例代码 list2 [1, 2, "hello", 4] print(len(list2))c 运行结果 1.2.2 获取列表值 a 语法 列表名…

TLC549(8位A/D转换器)实现将输入的模拟电压显示到数码管上

代码: #include "reg51.h" #include "intrins.h" #define uchar unsigned char #define uint unsigned intsbit SDO P1^0; // 芯片的三个关键的输入数据端口,主要是靠外电压来提供的 sbit CS P1^1; sbit SCLK P1^2;sbit wei0 P…

lv13 操作系统、内核实现 1

目录 一、程序分类 二、计算机系统的层次结构 2.1 无操作系统的简单的两层结构 ​编辑 2.2 有操作系统的复杂的四层结构 三、 什么是操作系统 四、操作系统内核的实现模式 五、什么是设备驱动程序 一、程序分类 程序按其运行环境分为: 裸机程序:…

更改WiseAlign软件界面图标方法

更改WiseAlign软件界面图标方法 未替换时 首先将图片转换为BMP格式,在搜索栏处输入画图,点击打开画图工具 按住图标拖动到画布内,或是直接CtrlV将图标复制到画布内 点击文件,再点击另存为 保存类型选择“24位位图(*.bm…

【Nacos】—客户端与服务端源码解析

Nacos系列 Nacos—简述、注册中心、配置中心 Nacos安装教程 SpringBoot项目与Nacos配置 一、背景介绍 Nacos(Naming and Configuration Service)是阿里巴巴开源的服务发现和配置管理工具,它是一个全面的微服务基础设施组件,提供…

中心性算法归纳

中心性算法不仅是在我所学习的计算机网络当中起很重要的作用,在交通网络、社交网络、信息网络、神经网络当中也有很多的应用例子。今天我在这里总结一下场景的几种中心性算法。 参考文献 Python NetworkX库 偏心中心性(Eccentricity Centrality&#x…

基于SSM的手机官网系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

Linux--shell练习题

1、写一个 bash脚本以输出数字 0 到 100 中 7 的倍数(0 7 14 21...)的命令。 vim /shell/homework1.sh #!/bin/bash for num in {1..100} doif [[ num%7 -eq o ]];thenecho $numfi done执行输出脚本查看输出结果 输出结果: 2、写一个 bash脚本以统计一个文本文件…

跟着LearnOpenGL学习9--光照

文章目录 一、颜色二、创建光照场景 一、颜色 显示世界中有无数种颜色,每一个物体都有它们自己的颜色。我们需要使用(有限的)数值来模拟现实世界中(无限的)的颜色,所以并不是所有现实世界中的颜色都可以用…

Android Canvas画布saveLayer与对应restoreToCount,Kotlin

Android Canvas画布saveLayer与对应restoreToCount,Kotlin private fun mydraw() {val originBmp BitmapFactory.decodeResource(resources, R.mipmap.pic).copy(Bitmap.Config.ARGB_8888, true)val newBmp Bitmap.createBitmap(originBmp.width, originBmp.heigh…

一篇文章带你搞定CTFMice基本操作

CTF比赛是在最短时间内拿到最多的flag,mice必须要有人做,或者一支战队必须留出一块时间专门写一些mice,web,pwn最后的一两道基本都会有难度,这时候就看mice的解题速度了! 说实话,这是很大一块&…