一百行python代码将图片转成字符画
作者:00-JOHNNY 发布时间:2023-05-06 05:49:15
标签:python,图片,字符画
本文实例为大家分享了python将图片转成字符画的具体代码,供大家参考,具体内容如下
该代码引用了PIL库的Image,所以必须先安装PIP,再安装PIL,记住,我的64位系统居然是选WIN32 结尾的那个whl文件,然后才安装成功。
下面贴代码:
from PIL import Image
import argparse
#can shu chu li
parser = argparse.ArgumentParser()
parser.add_argument('file')
parser.add_argument('-o','--output')
parser.add_argument('--width',type = int ,default = 80)
parser.add_argument('--height',type = int, default = 80)
args = parser.parse_args()
IMG = args.file
WIDTH = args.width
HEIGHT = args.height
OUTPUT = args.output
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!;:,\"^`'.")
def get_char(r,b,g,alpha = 256):
if alpha == 0:
return ' '
length = len(ascii_char)
gray = int(0.2126*r+0.7152*g+0.0722*b)
unit = (256.0+1)/length
return ascii_char[int(gray/unit)]
if __name__ == '__main__':
im = Image.open(IMG)
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'
print txt
if OUTPUT:
with open(OUTPUT,'w') as f:
f.writh(txt)
else:
with open("output.txt",'w') as f:
f.write(txt)
在安装好环境之后,将上面程序保存为XX.py ,运行命令符cd到当前py文件的目录,然后输入:
python XX.py YY.png
XX.py是你当前的python文件名,然后 YY.png是你要转换的图片,图片与py文件要保存在同一个目录;
快试一试吧,超级好玩的。
来源:https://blog.csdn.net/u014746368/article/details/50879235


猜你喜欢
- 前几天读了下mysqld_safe脚本,个人感觉还是收获蛮大的,其中细致的交代了MySQL数据库的启动流程,包括查找MySQL相关目录,解析
- 目录一、常见orm数据库框架1、peewee 简单demo二、Model 和 Field 关系三、Model 模型四、Filed 字段1、字
- 这个系列记录我在一年vue开发中总结的一些经验和技巧。利用Object.freeze()提升性能Object.freeze()是ES5新增的
- 一直以来,JS前端代码因为必须经过IE明文解析,某些加密的JS如:JScript.Encode也因为树大招风,早就被人破解了。还有些加密的手
- insertRow() 方法定义和用法 insertRow() 方法用于在表格中的指定位置插入一个新行。语法tableObject.inse
- 1 查看当前的device输入情况:import torchprint("Default Device : {}".fo
- 给定list,如何以空格/逗号等符号以分隔符输出呢?一般的,简单的for循环可以打印出list的内容:l=[1,2,3,4]for i in
- 一、property() 函数讲解了解 @property 装饰器之前,我们首先要了解内置函数的 property()。class prop
- 1、何为计算属性:大白话讲就是计算出来的结果保存在属性当中,可以想象为缓存。<!DOCTYPE html><html la
- 前言urllib、urllib2、urllib3、httplib、httplib2 都是和 HTTP 相关的 Python 模块,看名字就觉
- 前言:上一篇博客我用AOP+AbstractRoutingDataSource实现了MySQL读写分离,自己写代码实现判断该使用哪个数据源挺
- MySQL针对不同的用户提供了2种不同的版本:MySQL Community Server:社区版。由MySQL开源社区开发者和爱好者提供技
- 一、安装mongo plugs插件File->SettingPlugins查询Mongo选择Search in repositorie
- 1. js的数据类型1.1 js引入方式<!DOCTYPE html><html lang="en"&
- Oracle :NvlNVL函数:NVL函数是将NULL值的字段转换成默认字段输出。NVL(expr1,expr2)expr1,需要转换的字
- 目录一、前言二、操作 MongoDB1、安装 pymongo2、连接 MongoDB3、选择数据库4、选择集合5、插入数据6、查询
- 我们在做网站的时候,网站后台系统一般都会用到web编辑器,今天笔者就给大家推荐一款百度UEditor编辑器。关于这款百度UEditor编辑器
- 如果想读取用 open() 函数打开的文件中的内容,除了可以使用 read() 函数,还可以使用 readline() 和 readline
- 前言做网络爬虫的同学肯定见过各种各样的验证码,比较高级的有滑动、点选等样式,看起来好像挺复杂的,但实际上它们的核心原理还是还是很清晰的,本文
- 这个问题让我查了许多天才解决,为了避免后面的人重复走弯路,记录下来。问题描述:我在ubuntu 下编译安装了caffe ,在命令行模式下可以