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中使用元类的教程
Apr 28 Python
python实现合并两个数组的方法
May 16 Python
在Python的Django框架中显示对象子集的方法
Jul 21 Python
Linux中Python 环境软件包安装步骤
Mar 31 Python
Python 实现王者荣耀中的敏感词过滤示例
Jan 21 Python
Python 2/3下处理cjk编码的zip文件的方法
Apr 26 Python
如何用C代码给Python写扩展库(Cython)
May 17 Python
python global和nonlocal用法解析
Feb 03 Python
Python如何把Spark数据写入ElasticSearch
Apr 18 Python
python制作抽奖程序代码详解
Jan 15 Python
Python日志打印里logging.getLogger源码分析详解
Jan 17 Python
python blinker 信号库
May 04 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 删除一个数组中的某个值.兼容多维数组!
2012/02/18 PHP
简单实现php上传文件功能
2017/09/21 PHP
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
2014/09/01 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
2015/04/05 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
2017/01/09 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
laydate时间日历插件使用方法详解
2018/11/14 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
VUE.CLI4.0配置多页面入口的实现
2019/11/25 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
原生JS实现烟花效果
2020/03/10 Javascript
如何在node环境实现“get数据解析”代码实例
2020/07/03 Javascript
解决vue 使用setTimeout,离开当前路由setTimeout未销毁的问题
2020/07/21 Javascript
vue数据更新UI不刷新显示的解决办法
2020/08/06 Javascript
深入解析Python编程中JSON模块的使用
2015/10/15 Python
Python实现周期性抓取网页内容的方法
2015/11/04 Python
详解python的webrtc库实现语音端点检测
2017/05/31 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
python yield关键词案例测试
2019/10/15 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
中国一家专注拼团的社交购物网站:拼多多
2018/06/13 全球购物
英国发展最快的在线超市之一:Click Marketplace
2021/02/15 全球购物
主治医师岗位职责
2013/12/10 职场文书
纪检干部对照检查材料
2014/08/22 职场文书
协商一致解除劳动合同协议书
2014/09/14 职场文书
四风问题原因分析及整改措施
2014/10/24 职场文书
2015年工程部工作总结
2015/04/30 职场文书
用Python生成会跳舞的美女
2022/01/18 Python
德生TECSUN S-2000使用手册文字版
2022/05/10 无线电