Inky pHATのための画像変換ツールを作ってみた

inkyconvertertest.jpg

先日届いたpimoroni Inky pHATですが、記事にも書いたようにPythonライブラリで扱える画像ファイルは、ちょっと特殊な形式をしています。

そこで、普通のJPEG画像等から、Inky pHAT用のPNGファイルを生成するためのツールを作成してみました。

boochow/InkyConverter

バイナリファイルは以下に置いておきます。(画像のファイル名が日本語だと開けないようです。)

InkyConverter.zip

このツールですが、とりあえず白黒だけの画像なら、以前openFrameworksを使ってArduboy用に作った画像コンバータにちょっと手を加えて画像のピクセル数を変更すれば、Inky pHAT用に使えそうだと思い、作り始めました。

さらに、元画像から赤色の領域だけを切り出せれば、それをディザリングするのも白黒画像と同じやり方でできます。
単純にRGBからRチャネルだけを取り出すと、白色でも赤色領域になってしまいます。
今回は、GやBよりもRの値がある程度大きく、かつRの値そのものがそこそこ大きい、というピクセルを赤色のピクセルと解釈する・・・という比較的単純な方法で実装してみましたが、結構イメージに近い処理が行えました。

inkyconverter.png

白黒赤の画像ができたら、これをパレット形式のPNGファイルにします。パレットは先頭から白、黒、赤の順でなければなりません。このような処理はopenFrameworksには備わっていません。

しかし、調べてみるとopenFrameworksは画像の処理についてはFreeImageというライブラリが使われており、このライブラリの機能を直接使えばパレットの制御もできそうなことが分かりました。
そこで、PNGファイルの保存の部分はFreeImageのマニュアルを調べながら作りました。

簡単にInky pHAT用の画像が作れますので、お持ちの方はぜひお試しください。

コメント