python实现趣味图片字符化


Posted in Python onApril 30, 2019

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

主要使用PIL库

先放效果图:

python实现趣味图片字符化

python实现趣味图片字符化

代码如下:

#coding=utf-8
from PIL import Image
 
ascii_char = list('MW$#@%&KERTYOJKLUIC{}*mnxgouic()<>\!~:;^·.')
 
def get_char(r,b,g,alpha = 256):
  if alpha==0:
    return ' '
  gray = int(0.2126 * r + 0.7152 * g + 0.0722 *b)
  unit = 256 / len(ascii_char)
  return ascii_char[int(gray/unit)]
 
def main():  
  chage_image=input("请输入待转化照片的名字")
  im = Image.open(chage_image) 
  width, height = im.width,im.height
  #im = im.resize((width,height))
  txt = ""         #存放待写入的字符 使用NotePad+ 缩放观看
  for i in range(height):
    for j in range(width):
      txt += get_char(*im.getpixel((j, i)))
    txt += '\n'
    
  input_file_name = chage_image[:-4]+".txt"
  print(input_file_name)
  with open(input_file_name,"w") as f:
    f.write(txt)
  print (input_file_name[:-4],"制作完成!")
  
if "__name__" =="__main__":
  main()

其他类似这种制作的原理都是一样的,效果的差异,主要是对ascii_char列表里字符排列,

原则上,那些字符能给人视觉上占的面积大的排前面,占比少的排后面,列表元素越多,生成的图片细节越细腻。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中实现字符串类型与字典类型相互转换的方法
Aug 18 Python
使用PyCharm配合部署Python的Django框架的配置纪实
Nov 19 Python
深入学习Python中的上下文管理器与else块
Aug 27 Python
Python实现定时精度可调节的定时器
Apr 15 Python
python安装numpy和pandas的方法步骤
May 27 Python
Python实现滑动平均(Moving Average)的例子
Aug 24 Python
python 利用pyttsx3文字转语音过程详解
Sep 25 Python
Python concurrent.futures模块使用实例
Dec 24 Python
Python使用20行代码实现微信聊天机器人
Jun 05 Python
python爬虫可以爬什么
Jun 16 Python
Python 合并拼接字符串的方法
Jul 28 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
Dec 28 Python
python3对接mysql数据库实例详解
Apr 30 #Python
Python3.5局部变量与全局变量作用域实例分析
Apr 30 #Python
Python一行代码实现快速排序的方法
Apr 30 #Python
python批量识别图片指定区域文字内容
Apr 30 #Python
Python3.5装饰器典型案例分析
Apr 30 #Python
python如何制作缩略图
Apr 30 #Python
Python3.5装饰器原理及应用实例详解
Apr 30 #Python
You might like
Ajax PHP 边学边练 之三 数据库
2009/11/26 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
JavaScript 高级篇之闭包、模拟类,继承(五)
2012/04/07 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
Ionic + Angular.js实现验证码倒计时功能的方法
2017/06/12 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
2017/11/20 Javascript
解决eclipse中没有js代码提示的问题
2018/10/10 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
在vue中使用setInterval的方法示例
2019/04/16 Javascript
小程序分页实践之编写可复用分页组件
2019/07/18 Javascript
vue实现在线翻译功能
2019/09/27 Javascript
简单介绍Python中的round()方法
2015/05/15 Python
Python求算数平方根和约数的方法汇总
2016/03/09 Python
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
pandas取出重复数据的方法
2019/07/04 Python
Django使用中间件解决前后端同源策略问题
2019/09/02 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
windeln官方海外旗舰店:德淘超人气母婴超市
2017/12/15 全球购物
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
应届生服务员求职信
2013/10/31 职场文书
幼儿园中班新学期寄语
2014/01/18 职场文书
教学评估实施方案
2014/03/16 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
个人工作表现自我评价
2015/03/06 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
大学入学感言
2015/08/01 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python
Java用自带的Image IO给图片添加水印
2021/06/15 Java/Android
python标准库ElementTree处理xml
2022/05/20 Python
使用Django框架创建项目
2022/06/10 Python