SDカードに入っているファイル AB565.bin から画像を抜き出して更新して戻します。環境はUbuntu20です。
画像の変換に ffmpeg が必要ですので先にインストールしておきます。
sudo apt install -y ffmpeg ;
AB565.bin からヘッダー部、フッター部切り分け
dd if=AB565.bin of=AB565_head.bin bs=2 skip=0 count=2457600 ; # (640px*48px)*80pics
dd if=AB565.bin of=AB565_foot.bin bs=2 skip=2457600 count=4620288 ; # (128px*128px)*282pics
ヘッダー部から画像640x48を切り出し
ffmpeg -vcodec rawvideo -f rawvideo -pix_fmt rgb565 -s 640x48 -i AB565_head.bin -f image2 -vcodec bmp AB565_head_%3d.bmp ;
フッター部から画像128x128を切り出し
ffmpeg -vcodec rawvideo -f rawvideo -pix_fmt rgb565 -s 128x128 -i AB565_foot.bin -f image2 -vcodec bmp AB565_foot_%3d.bmp ;
これで以下のような画像群が抜き出せます
画像を変更後、また、1つのファイルにしていきます。
ヘッダーとフッターの画像群をそれぞれbin化
ffmpeg -vcodec bmp -i AB565_head_%3d.bmp -vcodec rawvideo -f rawvideo -pix_fmt rgb565 AB565_head_updated.bin ;
ffmpeg -vcodec bmp -i AB565_foot_%3d.bmp -vcodec rawvideo -f rawvideo -pix_fmt rgb565 AB565_foot_updated.bin ;
1つのbinファイル化
cat AB565_head_updated.bin AB565_foot_updated.bin > AB565_updated.bin ;
差分確認
diff AB565.bin AB565_updated.bin ;