走れメロスの全文(日本語で9800文字程度)を画像として保存すると、こんなサイズになった。この画像はもとの文(走れメロス)にもどすこともできる。
上の画像は3色を使ってデータを保存したけれど、下の画像のように1色だけで表現してもこのくらいコンパクトになった。また2色分空いているのでこのように他の画像(太宰治さんの顔)をすかすことができる。
ちなみに、以下のプログラムを使うと「走れメロス」に戻せる。
※試したい方は上の画像をコピーして試してみてください。
from PIL import Image
import os, tkinter, tkinter.filedialog, tkinter.messagebox
root = tkinter.Tk()
root.withdraw()
fTyp = [("","*")]
iDir = os.path.abspath(os.path.dirname(__file__))
tkinter.messagebox.showinfo(' ','文字にしたい画像を選んでください')
file = tkinter.filedialog.askopenfilename(filetypes = fTyp,initialdir = iDir)
im = Image.open(file)
size =im.size
bun=[]
for y in range(size[1]):
for x in range(size[0]):
r, g, b = im.getpixel((x, y))
bun.append(chr(r))
bun.append(chr(g))
bun.append(chr(b))
print("".join(bun))
file = open('ango01.txt', 'w')
file.write("".join(bun))
tkinter.messagebox.showinfo(' ',"文字にして保存しました")