python实现图片转字符小工具

yipeiwu_com6年前Python基础

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

from PIL import Image

#灰度与字符的映射
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")

WIDTH=int(input("请输入你想输出的宽度:"))
HEIGHT=int(input("请输入你想输出的高度:"))
INPUT=r'D:\Download\ascii_dora.png'
OUTPUT=r'D:\Download\output.txt'

def get_char(r,g,b,alpha=256):
  if alpha==0:
    return ' '
  gray = 0.2126 * r + 0.7152 * g + 0.0722 * b
  length=len(ascii_char)
  unit=(256+1)/length
  return ascii_char[int(gray/unit)]

im=Image.open(INPUT)
im=im.resize((WIDTH,HEIGHT),Image.NEAREST)

txt=''

for i in range(HEIGHT):
  for j in range(WIDTH):
    txt += get_char(*im.getpixel((j,i)))
  txt += '\n'

with open(OUTPUT,'w') as f:
  f.write(txt)

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python 字典套字典或列表的示例

文件f1 A 1 a A 1 b A...

python3编写ThinkPHP命令执行Getshell的方法

python3编写ThinkPHP命令执行Getshell的方法

加了三个验证漏洞以及四个getshell方法 # /usr/bin/env python3 # -*- coding: utf-8 -*- # @Author: Morker #...

python操作excel让工作自动化

某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入、删除列、拷贝、求和,所以给了4天的时间要完成。...

解决pyttsx3无法封装的问题

解决pyttsx3无法封装的问题

一、python3下面的pyttsx3正常可以使用,类似下面: import pyttsx3 engine = pyttsx3.init() rate = engine.getPro...

python dataframe向下向上填充,fillna和ffill的方法

首先新建一个dataframe: In[8]: df = pd.DataFrame({'name':list('ABCDA'),'house':[1,1,2,3,3],'date':...