当前位置:脚本大全 > > 正文

python好看图案(python实现趣味图片字符化)

时间:2021-10-08 00:20:50类别:脚本大全

python好看图案

python实现趣味图片字符化

本文实例为大家分享了python实现趣味图片字符化的具体代码,供大家参考,具体内容如下

主要使用pil库

先放效果图:

python好看图案(python实现趣味图片字符化)

python好看图案(python实现趣味图片字符化)

代码如下:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • #coding=utf-8
  • from pil import image
  •  
  • ascii_char = list('mw$#@%&kertyojkluic{}*mnxgouic()<>\!~:;^·.')
  •  
  • def get_char(r,b,g,alpha = 256):
  •   if alpha==0:
  •     return ' '
  •   gray = int(0.2126 * r + 0.7152 * g + 0.0722 *b)
  •   unit = 256 / len(ascii_char)
  •   return ascii_char[int(gray/unit)]
  •  
  • def main(): 
  •   chage_image=input("请输入待转化照片的名字")
  •   im = image.open(chage_image)
  •   width, height = im.width,im.height
  •   #im = im.resize((width,height))
  •   txt = ""         #存放待写入的字符 使用notepad+ 缩放观看
  •   for i in range(height):
  •     for j in range(width):
  •       txt += get_char(*im.getpixel((j, i)))
  •     txt += '\n'
  •     
  •   input_file_name = chage_image[:-4]+".txt"
  •   print(input_file_name)
  •   with open(input_file_name,"w") as f:
  •     f.write(txt)
  •   print (input_file_name[:-4],"制作完成!")
  •   
  • if "__name__" =="__main__":
  •   main()
  • 其他类似这种制作的原理都是一样的,效果的差异,主要是对ascii_char列表里字符排列,

    原则上,那些字符能给人视觉上占的面积大的排前面,占比少的排后面,列表元素越多,生成的图片细节越细腻。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。

    原文链接:https://blog.csdn.net/Good_Luck_Kevin2018/article/details/80914746

    上一篇下一篇

    猜您喜欢

    热门推荐