目grepはできませんが、画像を作るくらいならできそうなのでやってみました。
入力を1バイトずつ、値に応じた色のピクセルに変換して画像を作成します。値と表示色の関係はbin2colorをいじると変更できます。
ひさびさにPythonを使ってみました。
#!/usr/bin/python
import sys
import os.path
import Image
argvs = sys.argv
argc = len(argvs)
if (argc != 3) :
print 'Usage : %s [input-file] [output-file]' % argvs[0]
quit()
in_file = argvs[1]
out_file = argvs[2]
filesize = os.path.getsize(in_file)
x = 160
y = filesize/x + 1
print 'filesize %d , x = %d, y = %d' % (filesize, x, y)
def bin2color(bin):
bin = ord(bin)
if bin == 0 :
return (255, 255, 255)
elif bin <= 0x80 :
return (255, 0, 0)
else :
return (0, 0, 0)
img = Image.new("RGB", (x, y), (255, 255, 255))
try:
f = open(in_file, "rb")
n = 0
while n < y-1:
line = f.read(x)
for i in range(x):
img.putpixel((i,n), bin2color(line[i]))
n = n + 1
line = f.read(filesize - (x * n))
for i in range(filesize - (x * n)):
img.putpixel((i,n), bin2color(line[i]))
finally:
f.close()
img.save(out_file, "BMP")
0 件のコメント:
コメントを投稿