一つ前のエントリーの続き。01で作った(☝ ՞ਊ ՞)☝の画像は最終的にNokia5110LCD用のPythonライブラリで表示できるデータにします。
0x00〜0xFFで表現するらしいので、01のデータを8ケタずつに切って16進数に変換すれば良さそう……と思っていたのですが、あとから確認したら、1つのデータで表現されるのは横1px×縦8pxの8ドットらしく、画像の読み方を工夫する必要がありそうでした。
読み方を工夫してもいいのですが、ようはデータが取れればなんでもいいので、画像を時計回りに90度まわして8pxごとに切って縦にくっつけます。あーこれはひどい。何の工夫もないぞー。
コードは以下の通り変更。01を読み取って、8ケタ貯まったら16進数変換してプリントします。くどいですがデータが取れればなんでもいいので何の工夫もしません。そういえば前回のコードはwidth,height = im.sizeが抜けてました。
from PIL import Image im = Image.open("uiiin-dot84x19.gif") width,height = im.size zeroone = "" out = "" x = 0 y = 0 while y < height: while x < width: a = 1 - im.getpixel((x,y)) zeroone += str(a) if len(zeroone) == 8: i = int(zeroone, 2) print hex(i) zeroone = "" x += 1 x = 0 y += 1 print out print zeroone print "OK."
0x0 0xca...とか言うのが1つごとに会議用された長ったらしい何かが出てくるので、これをテキストエディタに貼り付けて加工して、Pythonスクリプトに食わせます。
そうして出来上がったのがこちら。
今週末のOSCで、Ejectヘルメットに貼り付けて使用したかったので、デモスクリプトに組み込んで完成です。動画では自分用に実装したIPアドレス確認機構のデモもしています。
最後に、デモで使用するPythonスクリプトをぺたり。(☝ ՞ਊ ՞)☝の画像データも入ってます。
ちょっと未実装の部分もありますが、OSCまでには何とかしますー。