Imagemagick 拍摄嵌入式Linux帧缓冲区的屏幕截图

Imagemagick 拍摄嵌入式Linux帧缓冲区的屏幕截图,imagemagick,embedded-linux,framebuffer,Imagemagick,Embedded Linux,Framebuffer,我在一个评估工具包(Zoom OMAP35x鱼雷开发工具包)上运行嵌入式Linux。该董事会有一个液晶显示器,我想能够采取屏幕截图转换成gif或png他们。我可以通过执行以下操作获得原始数据:“cp/dev/fb0 screen.raw”,但如何将图像转换为gif或png格式让我感到困惑 我使用了ImageMagick的convert(例如:“convert-depth 8-size 240x320 rgb:./screen.raw-swap 0,2-separate-combine scree

我在一个评估工具包(Zoom OMAP35x鱼雷开发工具包)上运行嵌入式Linux。该董事会有一个液晶显示器,我想能够采取屏幕截图转换成gif或png他们。我可以通过执行以下操作获得原始数据:“cp/dev/fb0 screen.raw”,但如何将图像转换为gif或png格式让我感到困惑

我使用了ImageMagick的convert(例如:“convert-depth 8-size 240x320 rgb:./screen.raw-swap 0,2-separate-combine screen.png”),但无法获得正确的图像


有人知道我可以试用的其他工具吗?或者有人有使用ImageMagick的技巧吗?

看看,一个这样做的应用程序(它将帧缓冲区内容保存为png)

直接使用ImageMagick可能不可能/不容易做到这一点

Linux内核4.2文档说明:

像素以硬件相关格式存储在内存中。应用程序需要 了解像素存储格式,以便将图像数据写入 帧缓冲存储器,采用硬件预期的格式

格式由帧缓冲区类型和视觉效果描述。有些视觉效果需要 附加信息,存储在可变屏幕信息中 每像素位、灰度、红色、绿色、蓝色和transp字段

视觉信息描述了如何对颜色信息进行编码和组合以创建 宏观像素。类型描述宏像素如何存储在内存中。支持以下类型和视觉效果

下面列出了一些视觉效果和类型,但这些描述不足以让我立即理解确切的格式


但它可能不是ImageMagick可以直接理解的格式,或者至少您必须找出所使用的格式来决定ImageMagick选项。

您可以简单地将帧缓冲区捕获到一个文件,然后在任何原始图像查看器中打开它,或者在线尝试,例如:


我试过fbgrab,但它不支持“低端位深度”。对于我的设备,位深度为8:(不过,我看了fbshot-。FBGRAP基于fbshot,支持8位深度。fbshot工作正常。是“嵌入式Linux”吗一个非常特定的内核版本/配置,或者只是运行在Embedded上的Linux的一个通用名称?相关:这个在线转换器对我不起作用,但在这里我发现了一个Perl脚本,它很好地完成了转换:通过这种转储/dev/fb0的方式获得数兆字节的全部零内容是正常的吗?
cat /dev/fb0 > fbdump