将图像转换为没有BMP标头的BMP RGB565

时间:2019-04-03 17:51:31

标签: imagemagick

我正在使用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进行转换,但是它很耗资源又很慢。

谢谢!

1 个答案:

答案 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,然后将其重定向到帧缓冲区。