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编写批量卸载手机中安装的android应用脚本
Jul 21 Python
python中requests模块的使用方法
Apr 08 Python
python实现随机梯度下降(SGD)
Mar 24 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
Jan 22 Python
Python简单实现查找一个字符串中最长不重复子串的方法
Mar 26 Python
Sanic框架异常处理与中间件操作实例分析
Jul 16 Python
Django对数据库进行添加与更新的例子
Jul 12 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
Aug 19 Python
关于python3中setup.py小概念解析
Aug 22 Python
Python中的引用和拷贝实例解析
Nov 14 Python
python3连接MySQL8.0的两种方式
Feb 17 Python
Python中三种花式打印的示例详解
Mar 19 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
PHPMailer安装方法及简单实例
2008/11/25 PHP
php smarty模版引擎中的缓存应用
2009/12/11 PHP
php preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
php站内搜索关键词变亮的实现方法
2014/12/30 PHP
PHP实现加强版加密解密类实例
2015/07/29 PHP
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
JS获取html对象的几种方式介绍
2013/12/05 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
2014/05/22 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
2015/03/26 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
js鼠标跟随运动效果
2017/03/11 Javascript
inner join 内联与left join 左联的实例代码
2017/09/18 Javascript
Vue实现active点击切换方法
2018/03/16 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
Javascript中的this,bind和that使用实例
2019/12/05 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
关于numpy中np.nonzero()函数用法的详解
2017/02/07 Python
Python文本处理简单易懂方法解析
2019/12/19 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
2020/03/18 Python
用python给csv里的数据排序的具体代码
2020/07/17 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
英国复古服装购物网站:Collectif
2019/10/30 全球购物
美国优质马术服装购买网站:Breeches.com
2019/12/16 全球购物
学生感冒英文请假条
2014/02/04 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
冬季施工防火方案
2014/05/17 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
四风自我剖析材料思想汇报
2014/10/01 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
给男朋友的道歉短信
2015/05/12 职场文书
Python绘制分类图的方法
2021/04/20 Python
使用RedisTemplat实现简单的分布式锁
2021/11/20 Redis