投稿日: May 22, 2019 3:27:2 PM
探しても探しても良い情報が無いので自力で頑張った。
#!/usr/bin/python3
import pyg
pyg.init((5,3),(300,300))
pyg.setTitle("Make Image")
# G B A R
b = bytes([
0x00, 0x00, 0xff, 0xFF,
0xff, 0x00, 0xff, 0x00,
0x00, 0xff, 0xff, 0x00,
])
img = pyg.pygame.image.frombuffer(b,(3,1),"ARGB")
while pyg._running:
pyg.process()
pyg.putImg(img,(1,1))
データサイズが1ピクセル4byteなのはなんとなくわかっていたのでなんとかデータを食わせたいと思い様々な方法でやってみたけどタイプエラーだのなんだのでうまく行かず。
ただfile関数を使って書き出したバイナリはうまく読めたのだけどどうもバイトの順序が違うってことで延々試していてようやくこの形で解決した。
ソースのコメントにも描いてあるとおり G B A R の順に並んでいて16bit区切りのリトルエンディアンという感じ。
とりあえずわかってよかったよね。
これが解決したことで出てくる可能性としては、ひとつは普通にソースコードに画像を埋め込むというやつ。
変換ツールなんかも簡単に作れそうなのでサポートツールってことで提供出来ると思う。
もういっこがファンタジーコンソールみたいにパレットを16色とかに限定して小さいデータで画像を生成できるような仕組みをつくること。
こっちに関して言うとそれなりのグラフィックエディタなり用意しないといけないので大変だけど。
とりあえず可能性として。