-- 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()#从命令行参数中返回一些数据,调用parse_args()函数进行解析

IMG = args.file#参数的文件赋值给IMG

WIDTH = args.width#参数

HEIGHT = args.height

OUTPUT = args.output

ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-_+~<>i!lI;:,"^`'. ")#不同字符代表不同色块,字符最好不要重复

将256灰度映射到70个字符上

def get_char(r,g,b,alpha = 256):

if alpha == 0:#如果??

return ' '

length = len(ascii_char)

gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)#r,g,b转换为灰度值,白色是255,黑色是0

unit = (256.0 + 1)/length#单元字符的灰度值大小

return ascii_char[int(gray/unit)]#字符从小到大表示灰度值,已知灰度值大小,一个字符表示的灰度值大小,求该灰度值由第几个字符表示,ascii_char[i]

if name == 'main':

im = Image.open(IMG) #IMG=args.file(file需输入的参数)

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

#im.resize(size,resample=0) --调整大小,resample有四个选项,默认为第一个,第四个质量更高一些

#Image.NEAREST:nearest neighbour

#Image.BILINEAR:linear interpolation

#Image.BICUBIC:cubic spline interpolation

#Image.LANCZOS:a high-quality downsa

txt = ""

for i in range(HEIGHT):

for j in range(WIDTH):

txt += get_char(*im.getpixel((j,i)))#字符之间用 + 表示字符相连 'a' + 'b'--->'ab'

#在for循环中im.getpixel((j,i)是指获取每个对应坐标像素的rgb值,你可以获取一个固定坐标的值,然后print出来看看

txt += '\n'#退出j(一行)循环时换行

print txt

#字符画输出到文件

if OUTPUT:

with open(OUTPUT,'w') as f:

f.write(txt)

else:

with open("output.txt",'w') as f:

f.write(txt)

python生成中文字符画_Python 图片转字符画相关推荐

  1. python生成中文、字母、数字等字符图片

    代码功能: 生成指定颜色.大小.字体的中文.字母.数字等字符图片 代码 from PIL import Image, ImageDraw, ImageFont import random# 设置背景颜 ...

  2. python字符照片_python图片转字符图片

    python图片转字符图片代码 话不多说,直接上代码. *************************** #-*- coding:utf-8 -*- from PIL import Image ...

  3. Python生成中文词云图(二):不可指定词云特定的形状和颜色。

    Python生成中文词云图(二):不可指定词云特定的形状和颜色. 什么是词云? 首先,什么是词云呢?词云又叫文字云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关 ...

  4. Python生成中文词云图(一):可指定特定的词云形状和颜色。

    Python生成中文词云图 什么是词云? 首先,什么是词云呢?词云又叫文字云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从 ...

  5. 怎样用python生成中文字符画_如何利用Python实现图片转字符画详解

    本篇文章主要介绍了Python实现图片转字符画的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 字符画真的很有意思,将图片中的像素用字符代替,就生成了字符画. 但是像 ...

  6. python动态图片转字符画_python 图片在线转字符画预览

    关于python图片转字符画,相信大家都不陌生,经常出现在 n个超有趣的python项目中. 今天我也来实践这个有趣的项目,更进一步的是把这个功能做成一个在线的网站,直接上传图片生成字符画,在线预览可 ...

  7. python编辑视频字符化_Python 视频转字符画 - 进阶

    这篇文章是 视频转字符动画-Python-60行代码 的后续,如果感兴趣,请先看看它. 0. 话说在前头 最新版使用了画布方式实现,和本文相比改动非常大,如果对旧版本的实现没啥兴趣,可以直接移步 vi ...

  8. python项目实战:最简单的图片转字符画

    2019独角兽企业重金招聘Python工程师标准>>> 前言 今天为大家一个基础的,且简单的Python图片转字符画的过程,python图像转字符画需要用到matplotlib.py ...

  9. python生成中文词云的代码_[python] 基于词云的关键词提取:wordcloud的使用、源码分析、中文词云生成和代码重写...

    1. 词云简介 词云,又称文字云.标签云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意 ...

最新文章

  1. 超详讲解图像拼接/全景图原理和应用 | 附源码
  2. SCROLLINFO结构详解
  3. python七夕快乐_python编写简单抽奖系统
  4. 大龄开发人员如何破局
  5. boost::python模块实现使用内置 python 数据类型创建 ndarrays 的示例,并提取成员变量的类型和值测试程序
  6. Mac下搭建cocos2d 和cocos2d -x 环境
  7. Android之实现多张图片点击预览(支持放缩)和滑动
  8. IDF实验室-图片里的英语
  9. linux系统部署war包,查看tomcat日志
  10. android l 效果,[原]Android L中水波纹点击效果的实现
  11. 混淆矩阵-python
  12. 总结一下矩阵的基本操作
  13. sai2笔刷_SAI如何安装笔刷?板绘萌新必备
  14. zend framework入门教程实践
  15. java 从后往前截取_java 字符串截取的实例详解
  16. Windows监控日志文件 Tail for Win32
  17. matlab中matconvnet,MATLAB2017a编译MatConvNet过程中出现的各种问题
  18. linux 系统安装Iso,linux系统安装iso文件方法
  19. 计算机windows安全如何打开,windows安全中心如何关闭
  20. Python+bs4实现爬取小说并下载到本地

热门文章

  1. 脱虚向实,NGK公链让工业4.0赋能实体
  2. Unity的新动画系统(animator)在脚本中的操控
  3. Swoole入门到实战
  4. 推荐一个外文图书专著下载网站
  5. m多载波MC-CDMA系统单用户检测方法的研究,对比EGC,MRC,ORC以及MMSE
  6. linux 安装 gedit
  7. Android Studio gradle下载依赖包失败的解决办法
  8. 南航金城学院计算机网络试卷及答案,南航金城学院期末电路理论基础考试题及答案解析.pdf...
  9. 营养食谱小贴士:选择食物巧防职业病
  10. openfoam变热物性参数的设置【转载】