我正在使用Raspberry Pi 3B +和Imagemagick 6.9.7-4 Q16支臂20170114将文件写入RGB565,并通过将其写入帧缓冲区显示在480x320屏幕(图像像素尺寸也为480x320)上。我正在使用以下转换命令:
转换dmi.jpg +翻转-strip-定义bmp:subtype = RGB565 bmp2:out.bmp
预期的文件大小为307,200字节。由于标题数据,实际文件大小会略高一些。目前,我正在使用dd从文件的开头删除X个字节,以使文件为307,200。
例如如果文件大小为307,338,则运行以下命令:
dd bs = 138 skip = 1 if = out.bmp of = out.trimmed.bmp
文件修剪后,文件大小为307,200,我可以将文件写入帧缓冲区
cat out.trimmed.bmp> / dev / fb1
有人对如何更新convert命令以简单地省略标题数据有任何见解吗?我想删掉中间步骤,只需使用Imagemagick直接写入帧缓冲区即可。
转换dmi.jpg +翻转-strip-定义bmp:subtype = RGB565 bmp2:/ dev / fb1
我尝试了以下命令,但是它们都创建了一个比我所需的文件大小307,200大得多的文件。
转换dmi.jpg +翻转-strip-定义bmp:subtype = RGB565 rgb:0-rgb.bmp
转换dmi.jpg +翻转-strip-定义bmp:subtype = RGB565 rgba:0-rgba.bmp
转换dmi.jpg +翻转-strip-定义bmp:subtype = RGB565 dib:0-dib.bmp
我已经测试了fbi(fim)(帧缓冲区图像查看器)来执行此操作,该程序对于我的需求而言并不理想。我还测试了ffmpeg进行转换,但是它很耗资源又很慢。
谢谢!
答案 0 :(得分:1)
赞:
convert dmi.jpg +flip -strip -define bmp:subtype=RGB565 bmp2:- | dd bs=138 skip=1 > /dev/fb1
说明:
bmp2:-
将使 ImageMagick 在stdout
上写入BMP2。默认情况下,dd
将读取stdin
并写入stdout
,然后将其重定向到帧缓冲区。