照片转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文件运行截图

扫描二维码关注公众号,回复: 1679638 查看本文章

这里写图片描述

源代码下载地址(附带exe文件,测试用例和输出)

猜你喜欢

转载自blog.csdn.net/qq_39384184/article/details/80616650