将图片转化为字符画

您所在的位置:网站首页 c语言将图片转换成字符画的方法 将图片转化为字符画

将图片转化为字符画

2024-07-05 06:35| 来源: 网络整理| 查看: 265

一、准备工作 1、准备一张简易照片,我是从百度上下载的一张树的照片,命名为tree.png(如下图),将其放置于要创建python的文件中(方便运行) 2、python(我的版本为python3.6)安装有pillow库 安装方式:pip install pillow(若可以pip安装的话,如果没有先安装pip工具) 3、创建的python文件中有个output.txt文件(有无皆可)

二、模块信息介绍 1.pillow:pillow实际是PIL(Python Image Libary)的升级版本,PIL功能非常强大,API也非常简单易用。但由于PIL仅支持到Python 2.7,加上年久失修,于是一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新Python 3.x,又加入了许多新特性,因此,我们可以直接安装使用Pillow。(借用别人博客解释) 2.argparse是Python内置的一个用于命令项选择与参数解析的模块,通过在程序中定义好我们需要的参数,argparse将会从sys.argv中解析出这些参数,并自动生成帮助和使用信息。argparser常用的几个函数: (1)使用ArgumentParser()创建对象 (2)调用add_argument()方法添加参数 (3)使用parse_args()解析添加的参数

三、代码

创建名为ImageTransformAsciiArt.py的python文件

#coding:utf-8 from PIL import Image import argparse 创建对象 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 #我们使用灰度值公式将像素的RGB值映射到灰度值 ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-T+Gi!lI;:PASD. ")#最后一个需为空格,一般映射到图片空白部分,倒数第二个 字母尽量用.或|这种包含性强的,使图片轮廓感更突出 # 将256个灰度映射到字符上 def get_char(r,g,b,alpha = 256): if alpha == 0: return ' ' length = len(ascii_char) gray = int(0.2126*r+0.7156*g+0.0722*b)#灰度映射公式 uint = 256/length #进行映射 return ascii_char[int(gray/uint)] 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.write(txt) else: with open('output.txt','w') as f:#若无文件则创建 f.write(txt)

注:参考博客:http://blog.konghy.cn/2017/04/24/python-entry-program/

四、运行程序

在创建的Python文件中按住Shift并点击鼠标右键,选择“在此处打开命令窗口”,在命令窗口输入:python ImageTransformAsciiArt.py tree.png; 我们就会在命令框和output.txt中看到树的字符画了。

python新手学习总结,大神勿拍砖



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3