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 相关文章推荐
wxpython 学习笔记 第一天
Mar 16 Python
python类中super()和__init__()的区别
Oct 18 Python
Python PyQt5标准对话框用法示例
Aug 23 Python
python opencv实现图片旋转矩形分割
Jul 26 Python
Python 正则表达式匹配字符串中的http链接方法
Dec 25 Python
Python的bit_length函数来二进制的位数方法
Aug 27 Python
Python如何计算语句执行时间
Nov 22 Python
Python如何使用Gitlab API实现批量的合并分支
Nov 27 Python
浅析Django 接收所有文件,前端展示文件(包括视频,文件,图片)ajax请求
Mar 09 Python
浅析Python迭代器的高级用法
Jul 16 Python
Django怎么在admin后台注册数据库表
Nov 14 Python
python statsmodel的使用
Dec 21 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
咖啡的传说和历史
2021/03/03 新手入门
数组与类使用PHP的可变变量名需要的注意的问题
2013/06/20 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
2016/08/12 PHP
PHP基础之输出缓冲区基本概念、原理分析
2019/06/19 PHP
js对象之JS入门之Array对象操作小结
2011/01/09 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
让alert不出现弹窗的两种方法
2014/05/18 Javascript
jQuery中val()方法用法实例
2014/12/25 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
jquery按回车键实现表单提交的简单实例
2016/05/25 Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
2016/08/24 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
js模态对话框使用方法详解
2017/02/16 Javascript
vue router2.0二级路由的简单使用
2017/07/05 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
在vue项目中使用sass的配置方法
2018/03/20 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
vue 中固定导航栏的实例代码
2019/11/01 Javascript
详解vue高级特性
2020/06/09 Javascript
Vue两种组件类型:递归组件和动态组件的用法
2020/08/06 Javascript
JavaScript this关键字的深入详解
2021/01/14 Javascript
零基础写python爬虫之打包生成exe文件
2014/11/06 Python
Python中给List添加元素的4种方法分享
2014/11/28 Python
实例详解Matlab 与 Python 的区别
2019/04/26 Python
python批量替换文件名中的共同字符实例
2020/03/05 Python
AmazeUI中各种的导航式菜单与解决方法
2020/08/19 HTML / CSS
阿根廷网上配眼镜:SmartBuyGlasses阿根廷
2016/08/19 全球购物
医院检讨书范文
2014/02/01 职场文书
职工运动会邀请函
2014/02/02 职场文书
材料专业毕业生求职信
2014/02/26 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
学历证明样本
2015/06/16 职场文书
2015年财务人员个人工作总结
2015/07/27 职场文书
写给消防战士们的一封慰问信
2019/10/07 职场文书
浅析Django接口版本控制
2021/06/26 Python