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实现备份文件实例
Sep 16 Python
在Python的Flask框架中实现全文搜索功能
Apr 20 Python
python中实现指定时间调用函数示例代码
Sep 08 Python
python中通过预先编译正则表达式提高效率
Sep 25 Python
python编程线性回归代码示例
Dec 07 Python
Python动刷新抢12306火车票的代码(附源码)
Jan 24 Python
Python中的并发处理之asyncio包使用的详解
Apr 03 Python
pandas 使用apply同时处理两列数据的方法
Apr 20 Python
python实现的MySQL增删改查操作实例小结
Dec 19 Python
Python中Numpy mat的使用详解
May 24 Python
Python协程 yield与协程greenlet简单用法示例
Nov 22 Python
python线程池如何使用
May 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
php中数据的批量导入(csv文件)
2006/10/09 PHP
php实现的发送带附件邮件类实例
2014/09/22 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
2016/11/04 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
PHP微信开发之微信录音临时转永久存储
2018/01/26 PHP
php ZipArchive实现多文件打包下载实例
2019/10/31 PHP
JavaScript更改class和id的方法
2008/10/10 Javascript
从零开始学习jQuery (三) 管理jQuery包装集
2011/02/23 Javascript
JQuery中$之选择器用法介绍
2011/04/05 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
深入理解ECMAScript的几个关键语句
2016/06/01 Javascript
js编写简单的聊天室功能
2017/08/17 Javascript
Vue.js实现可排序的表格组件功能示例
2019/02/19 Javascript
JavaScript实现美化滑块效果
2019/05/17 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
python实现代理服务功能实例
2013/11/15 Python
Python实现的简单万年历例子分享
2014/04/25 Python
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
Python中max函数用法实例分析
2015/07/17 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
2017/09/22 Python
python中模块的__all__属性详解
2017/10/26 Python
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
在Python中居然可以定义两个同名通参数的函数
2019/01/31 Python
捷克移动配件网上商店:ProMobily.cz
2019/03/15 全球购物
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
法国春天百货官网:Printemps.com
2020/06/29 全球购物
Napapijri西班牙在线商店:夹克、外套、运动衫等
2020/11/05 全球购物
办理信用卡工作证明
2014/01/11 职场文书
家长对老师的感言
2014/03/11 职场文书
企业安全生产责任书
2014/04/14 职场文书
监察建议书
2015/02/04 职场文书
2016简单的租房合同范本
2016/03/18 职场文书
MySQL为数据表建立索引的原则详解
2022/03/03 MySQL