LoginSignup
6
4

More than 5 years have passed since last update.

BMPとRAWデータ(RGB8888/RGB565)の相互変換メモ

Last updated at Posted at 2015-10-23

cat /dev/fb0 > fb.raw でダンプしたデータを画像に変換する機会があったので、手順をメモ

fbのサイズとビット深度を確認

サイズを確認

cat /sys/class/graphics/fb0/virtual_size
# -> 640,480

ビット深度を確認

cat /sys/class/graphics/fb0/bits_per_pixel
# -> 32 (RGB8888)
# -> 16 (RGB565)

fbの操作

fb0のダンプ

cat /dev/fb0 > fb_output.raw

fb0への出力

cat fb_input.raw > /dev/fb0

ffmpegを使用

rgb565への変換はconvertですぐに変換する方法が見当たらなかったため、ffmpegを使用した

sudo apt-get install ffmpeg

単体実行

# rgb8888 -> bmp
ffmpeg -vcodec rawvideo -f rawvideo -pix_fmt rgb32 -s 640x480 -i fb.raw -f image2 -vcodec bmp fb.bmp

# rgb565 -> bmp
ffmpeg -vcodec rawvideo -f rawvideo -pix_fmt rgb565 -s 640x480 -i fb.raw -f image2 -vcodec bmp fb.bmp

# bmp -> rgb8888
ffmpeg -vcodec bmp -i fb.bmp -vcodec rawvideo -f rawvideo -pix_fmt rgb32 fb.raw

# bmp -> rgb565
ffmpeg -vcodec bmp -i fb.bmp -vcodec rawvideo -f rawvideo -pix_fmt rgb565 fb.raw

カレントディレクトリ以下の全てのrawファイルに対して実行

for bmpfile in `find . -name "*.bmp"`; do ffmpeg -vcodec bmp -i ${bmpfile} -vcodec rawvideo -f rawvideo -pix_fmt rgb565 ${bmpfile%.bmp}.rgb565; done

for bmpfile in `find . -name "*.bmp"`; do ffmpeg -vcodec bmp -i ${bmpfile} -vcodec rawvideo -f rawvideo -pix_fmt rgb24 ${bmpfile%.bmp}.rgb24; done

ImageMagickを使用

bmp -> rawの変換であれば、convert コマンドでも実行可能。種別は拡張子で判別してくれる。

sudo apt-get install imagemagick

単体実行

# bmp -> raw
convert -size 640x480 fb0{.bmp,.raw};

カレントディレクトリ以下の全てのbmpファイルに対して実行

# bmp -> raw
for bmpfile in `find . -name "*.bmp"`; do convert -size 640x480 ${bmpfile%.bmp}{.bmp,.raw}; done

GIMPを使用

Gimpでrawデータを開いて変換して保存しても良いらしい

まとめ

  • 今回はbmpを指定したが、pngやjpegも指定可能。ImageMagickのほうは拡張子で判別してくれる。
  • 色変換はffmpegのほうが得意そう。
  • 拡大縮小、フィルタ、回転、クリッピング等はImageMagickのほうが簡単そう。
  • ImageMagickは多機能すぎてよくわからない。-> 使用例のコマンドを改造したほうが良さそう。
  • ffmpegもよくわからない。-> 使用例のコマンドを改造したほうが良さそう。

参考

Converting to/from RGB565 in Ubuntu using ffmpeg
ImageMagick(公式)
ffmpeg(公式)

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4