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 socket 超时设置 errno 10054
Jul 01 Python
Tornado服务器中绑定域名、虚拟主机的方法
Aug 22 Python
Python实现的堆排序算法原理与用法实例分析
Nov 22 Python
使用python对文件中的单词进行提取的方法示例
Dec 21 Python
基于python实现百度翻译功能
May 09 Python
Dlib+OpenCV深度学习人脸识别的方法示例
May 14 Python
Python 的字典(Dict)是如何存储的
Jul 05 Python
Python 静态方法和类方法实例分析
Nov 21 Python
python爬虫模拟浏览器访问-User-Agent过程解析
Dec 28 Python
Matplotlib使用Cursor实现UI定位的示例代码
Mar 12 Python
利用matplotlib为图片上添加触发事件进行交互
Apr 23 Python
什么是Python变量作用域
Jun 03 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 MySQL应用中使用XOR运算加密算法分享
2011/08/28 PHP
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
JavaScript实用技巧(一)
2010/08/16 Javascript
jquery 实现checkbox全选,反选,全不选等功能代码(奇数)
2012/10/24 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
JS刷新当前页面的几种方法总结
2013/12/24 Javascript
json字符串之间的相互转换示例代码
2014/08/21 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
一个js过滤空格的小函数
2014/10/10 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
JavaScript数据结构与算法之集合(Set)
2016/01/29 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
js canvas实现简单的图像扩散效果
2020/06/28 Javascript
Vue2.0结合webuploader实现文件分片上传功能
2018/03/09 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
2018/04/21 Javascript
vue.js父子组件通信动态绑定的实例
2018/09/28 Javascript
JsonProperty 的使用方法详解
2019/10/11 Javascript
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
浅谈Django REST Framework限速
2017/12/12 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
Django  ORM 练习题及答案
2019/07/19 Python
如何在django中添加日志功能
2020/02/06 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
性能服装:HYLETE
2018/08/14 全球购物
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
高中生操行评语大全
2014/04/25 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
写景作文评语集锦
2014/12/25 职场文书
劳资员岗位职责
2015/02/13 职场文书
试用期解除劳动合同通知书
2015/04/16 职场文书
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python