Linux 从软件的角度来看,截图是如何工作的

Linux 从软件的角度来看,截图是如何工作的,linux,windows,screenshot,microprocessors,Linux,Windows,Screenshot,Microprocessors,从系统的角度来看,屏幕截图是如何工作的。我试着做了一些搜索,似乎我找到的所有网站都是“如何拍摄截图” 我更感兴趣的是屏幕截图是如何工作的,假设我自己制作了一个有屏幕的小设备,并且数据显示在屏幕上,那么如何在我的设备上实现一个屏幕截图(高级的,尽管如果你想,我想举个例子会很好) 编辑:我看到我有一个结束的请求,我想如果没有一个非常具体的背景,这个问题很难回答,也许最终会被认为是过时的,如果这不是正确的地方,关于在哪里发布这样一个问题的任何建议?这可能根本没有帮助,但我经常使用的两个屏幕截图实用程序

从系统的角度来看,屏幕截图是如何工作的。我试着做了一些搜索,似乎我找到的所有网站都是“如何拍摄截图”

我更感兴趣的是屏幕截图是如何工作的,假设我自己制作了一个有屏幕的小设备,并且数据显示在屏幕上,那么如何在我的设备上实现一个屏幕截图(高级的,尽管如果你想,我想举个例子会很好)


编辑:我看到我有一个结束的请求,我想如果没有一个非常具体的背景,这个问题很难回答,也许最终会被认为是过时的,如果这不是正确的地方,关于在哪里发布这样一个问题的任何建议?

这可能根本没有帮助,但我经常使用的两个屏幕截图实用程序都是开源的,读起来相当短:

  • 第一个是一个简单的命令行程序,它使用。两者都是用C实现的
  • 第二个是Google的应用程序,用JS/C++实现

您了解的是多高级别或系统特定?通常,所有的图形系统最终都会blit到一个帧缓冲区。拍摄屏幕快照相当于保存帧缓冲区。如果你想有机会得到具体的答案,你需要提供更多的细节,例如什么设备、什么操作系统、设备硬件配置(显示硬件、驱动程序等)。@onaclov2000在Windows上,你可以使用GDI抽象图形硬件。您创建了一个内存DC(设备上下文),并从屏幕DC上对其进行位blit。不确定这在Linux上是如何工作的,但我非常确定XFree86显示驱动程序中有一个设备抽象。谢谢大家,在我的特殊情况下,它实际上是定制硬件,我相信它使用了OpenGL,但除此之外,我不太了解,它没有屏幕截图机制,我有点感兴趣的是它是如何工作的,以决定它是否值得进行调查。它也没有我所知道的标准操作系统。@yan当你说保存帧缓冲区时,是否需要进行转换才能查看它?(例如,使用JPG或PNG或其他格式?)我必须看看它们是如何工作的,我想“阅读一些开源”可能是一个有效的答案(比如RTFM)…哈哈