原始照片
ASCII照片
原始ASCII文件大图
很难想象一个一个数字输入进去最后成为一张照片是多么困难吧,其实很简单,一个程序就可以搞定。
- 一,读取图片
- 二,彩色图片转换为灰度图片
- 三,根据相应的灰度值转换为对应ASCII码输出
示例程序
from PIL import Image
from pylab import *
def Gray(R, G, B):
return (R*38 + G*75 + B*15) >> 7
def RGBtoGray(ImageArray):
# change the RGB image to Gary
# only can operate RGB images
for h in range(len(ImageArray)):
for w in range(len(ImageArray[h])):
tmp = ImageArray[h][w]
ImageArray[h][w] = Gray(tmp[0], tmp[1], tmp[2])
return ImageArray
def PixelToNum(pixel):
if pixel < 31:
return '1'
elif pixel < 63:
return '2'
elif pixel < 94:
return '3'
elif pixel < 126:
return '4'
elif pixel < 157:
return '5'
elif pixel < 189:
return '6'
elif pixel < 220:
return '7'
else:
return '8'
if __name__ == '__main__':
directory = input('输入图片路径:\n')
im = Image.open(directory)
arr = array(im)
arr = RGBtoGray(arr)
directory = directory.split('.')
directory = '.'.join([directory[0], 'txt'])
directory = open(directory, 'w')
w = len(arr)
h = len(arr[0])
for i in range(w):
for j in range(h):
directory.write(PixelToNum(arr[i][j][0]))
directory.write('\n')
directory.close()
# python ImageToNum.py
源程序运行截图
exe文件运行截图