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