- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如何以编程方式获取图形应用程序的屏幕截图?应用程序通过 DRM/KMS 使用 EGL API 绘制其窗口。
我使用 Ubuntu Server 16.04.3 和使用带有 EGLFS QPA 后端的 Qt 5.9.2 编写的图形应用程序。它从第一个虚拟终端(如果重要)开始,然后将显示切换为全高清图形模式输出。
当我使用在 /dev/fb?
上运行的实用程序(例如 fb2png
)时,只有第一个虚拟终端的文本模式内容(Ctrl+Alt+ F1) 保存为屏幕截图。
几乎没有 EGL API 可以从另一个进程的上下文中获取任何缓冲区的内容(这将是不安全的),但也许有一些机制(和库)可以访问 GPU 的最终输出?
最佳答案
一种方法是从您的应用程序中获取屏幕截图,使用 glReadPixels()
读取后台缓冲区的内容。或者使用 QQuickWindow::grabWindow() ,它在内部以正确的方式使用 glReadPixels()
。这似乎不适合您,因为您需要在 Qt 应用卡住时截取屏幕截图。
另一种方法是使用 DRM API 映射帧缓冲区,然后使用 memcpy
映射像素。这是在 Chromium OS 中使用 Python 实现的,可以轻松转换为 C,请参阅 https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/367611 .除了执行渲染的 Qt UI 进程之外,DRM API 也可以被其他进程使用。
关于linux - 获取 EGL DRM/KMS 应用程序的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47428631/
我的 aws 帐户位于 us-west-2 区域。并且在该账户中创建的 KMS key 具有 ARN arn:aws:kms:us-east-1::key/。在我的节点模块中,我使用 Credstas
当encrypting symmetrically使用 Google Cloud 的 KMS,Google Cloud automatically选择主键版本: Each symmetric encr
我需要使用客户端 key 加密一些文本字符串,然后使用与客户端加密相同的 key 在服务器端解密此加密字符串。 据我了解,AWS KMS 是建立在 AES 之上的。 那么我可以使用 CryptoJS
我已经创建了一个谷歌云项目并启用了 谷歌云 key 管理服务 (KMS) API。我创建了两个 key 圈。 keyring1位于us-east1,keyring2位于global。我创建了以下 ja
使用 Cloudformation 创建新的 KMS key 时,我在“状态原因”列中看到此消息: Did not have IAM permissions to process tags on AW
在阅读Cloudera KMS Installation procedure时,我发现 Cloudera strongly recommends not using Java Keystore KMS
Amazon Key Management Services 背后使用哪些算法或加密方法? 我搜索了它,但只找到了与配置相关的信息,而不是集成信息。 最佳答案 我会在这个答案的开头说,如果你真的感兴趣
我必须将.Net Core应用程序从Google App Engine移至Google Kubernetes Engine,因为我需要静态IP,可惜Google App Engine没有该选项。 我设
我使用 AWS SDK iOS v2.6.21 以编程方式将 KMS (SSE-KMS) 加密添加到 AWS S3 存储桶。我使用以下 Objective-C 代码执行此操作: AWSS3 *awsC
我正在寻求帮助,使用 KMS 在 Hive 中实现列级加密(与 https://issues.apache.org/jira/browse/HIVE-7934 完全相似)。虽然我清楚所引用 URL 中
我是 hadoop KMS 的新手,我已经使用 hadoop 启动了 KMS。现在我尝试运行这个 curl 命令 curl -i --header "Accept:application/json"
我不确定为什么我们需要这个 Hadoop KMS 正是为了?我浏览了 Apache Hadoop 的官方文档,并没有确切提到为什么我们需要这个概念。我唯一清楚的是,使用此 client 和 serve
我搜索了 Google 结果,这似乎是不可能的,所以:有人知道如何使用 KMS 在控制台中更改或设置特定的视频分辨率吗? 我没有使用任何图形服务器或图形子系统,所以这个问题只与控制台有关。 我使用的是
我正在尝试验证使用 Google 的云 KMS 生成的签名,但我不断收到无效响应。 这是我测试它的方式: const versionName = client.cryptoKeyVersionPath
我的问题可能听起来太明显了,但我是 Amazon KMS 的新手。在阅读了 AWS 上的大量文档后,我了解到,如果我直接使用 CMK 进行加密和解密,我可以直接通过创建加密和解密请求来完成。但我不清楚
我已经能够使用私钥签署云端 URL,但很难保证私钥的安全。我正在考虑使用 KMS 来保证私钥的安全,有没有办法使用存储在亚马逊 KMS 中的 key 对 URL 进行签名? 最佳答案 答案是否定的,C
给定一个定义了以下内容的 CloudFormation 模板: KMS key KMS key 别名 一个 S3 存储桶 如果由于某种原因我需要删除 CloudFormation 堆栈并重新部署,删除
这是一个新手安全/控制台问题......我在我的项目中在欧洲的一个特定(错误)位置创建了一个 key 环。 我在控制台中看不到任何编辑甚至删除 key 环的方法。 key 圈完全是空的……里面没有 k
如何使用 boto3 资源从 S3 存储桶读取 KMS 加密文件? 下面是我用来读取非加密文件的片段 - s3 = boto3.resource('s3') obj = s3.Object(bucke
我正在 AWS Lambda 上编写无服务器函数。 在某些情况下,我需要使用 kms:GenerateDataKey*权限。 这样做的目的究竟是什么。我检查了 AWS 文档,但它太神秘了。有人可以举一
我是一名优秀的程序员,十分优秀!