ファイルの内容を16進数で読みながらrgbのデータとして画像出力してみる。普通に出力すると単なるノイズになってしまうのでheightを繰り返してみた。
import Image from binascii import hexlify from random import randint def text2rgb(text,length): hex = hexlify(text) hex_length = len(hex) buf = hex result = [] while len(result) < length: if len(buf) < 6: start = randint(1,hex_length) end = randint(1,hex_length) if start > end: buf += hex[end:start] else: buf += hex[start:end] else: r = buf[:2] g = buf[2:4] b = buf[4:6] buf = buf[6:] #for t in range(10): result.append((int(r,16),int(g,16),int(b,16))) return result if __name__ == '__main__': WIDTH = 480 HEIGHT = 480 text = open('/Users/kzfm/PKPD.dot','rb').read() rgb = text2rgb(text,WIDTH*HEIGHT) im = Image.new( "RGB", ( HEIGHT, WIDTH ), ( 0, 0, 0 ) ) pix = im.load() for h in range(HEIGHT): for w in range(WIDTH): try: pix[w,h] = rgb[w] except IndexError: pass im.save("test.png")
FORM+CODEにインスパイアされた