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自测题

测试题一、 1、 程序可以响应的两种事件分别是键盘事件和鼠标事件。 2、 处理事件的代码称为事件处理器 3、 Pygame使用KEYDOWN事件来检测按键是否按下。 4、 Pos...

实例讲解Python中整数的最大值输出

在Python中可以存储很大的值,如下面的Python示例程序: x = 10000000000000000000000000000000000000000000; x = x...

Python3 实现减少可调用对象的参数个数

问题 一个被其他python代码使用的callable对象,可能是一个回调函数或者是一个处理器,由于其参数太多,导致调用时出错。 解决方案 如果需要减少某个函数的参数个数,可以使用fun...

在Python中用has_key()方法查找键是否存在的教程

 如果给定的键在字典可用,has_key()方法返回true,否则返回false。 语法 以下是has_key()方法的语法: dict.has_key(key) 参...

Python 输入一个数字判断成绩分数等级的方法

成绩分数等级为: 100-90 A 90-80 B 80-70 C 70-60 D 60以下 F 实现判断分数等级是一个很简单的数学问题,只要你输入的这个数字介于两...