2009-10-29 121 views
3

我在评估工具包(Zoom OMAP35x Torpedo Development Kit)上运行Embedded Linux。董事会有一个液晶显示屏,我希望能够把屏幕截图转换成GIF或PNG。我可以通过执行以下操作来获取原始数据:“cp/dev/fb0 screen.raw”,但我很难将图像转换为gif或png格式。拍摄嵌入式Linux Framebuffer的屏幕截图

我玩过从ImageMagick转换(例如:“convert -depth 8 -size 240x320 rgb:./ screen.raw -swap 0,2 -separate -combine screen.png”),但一直无法获得一张看起来不错的图像。

有没有人知道我可以尝试的任何其他工具?还是有人有使用ImageMagick的提示?

+0

“嵌入式Linux”是一个非常具体的内核版本/配置,还是Linux上运行在Embedded上的通用名称?相关:http://unix.stackexchange.com/questions/25063/capturing-area-of-the-screen-without-a-desktop-environment – 2015-10-29 09:19:58

回答

5

看看fbgrab,这是一个应用程序(它将帧缓冲区内容保存为png)。

+1

我试过fbgrab,但它不支持“低端位深度”。对于我的设备,位深度是8. :(但是,我看了一下 - http://www.sfires.net/fbshot/。fbgrab基于fbshot,它支持8位深度。fbshot工作得很好。 – waffleman 2009-12-28 12:36:57

+0

链接不起作用 – 2016-04-29 08:48:27

0

用ImageMagick直接做它可能是不可能的/容易的。

Linux内核4.2的文档https://github.com/torvalds/linux/blob/v4.2/Documentation/fb/api.txt#45说:

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

格式由帧缓冲区类型和视觉描述。一些视觉效果需要附加信息,其存储在可变屏幕信息bits_per_pixel,灰度,红色,绿色,蓝色和透射场中。

视觉效果描述了如何对颜色信息进行编码和拼装,从而创建出巨型像素 。类型描述macropixels如何存储在内存中。支持以下类型和视觉效果。

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

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