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基于mysql实现的简单队列以及跨进程锁实例详解
Jul 07 Python
Python的Flask框架中实现简单的登录功能的教程
Apr 20 Python
python中黄金分割法实现方法
May 06 Python
python中pylint使用方法(pylint代码检查)
Apr 06 Python
基于anaconda下强大的conda命令介绍
Jun 11 Python
python 对key为时间的dict排序方法
Oct 17 Python
很酷的python表白工具 你喜欢我吗
Apr 11 Python
值得收藏的10道python 面试题
Apr 15 Python
Django CBV与FBV原理及实例详解
Aug 12 Python
Python实现某论坛自动签到功能
Aug 20 Python
Python ADF 单位根检验 如何查看结果的实现
Jun 03 Python
如何快速一次性卸载所有python包(第三方库)呢
Oct 20 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 读取文件的正确方法
2009/04/29 PHP
处理php自动反斜杠的函数代码
2010/01/05 PHP
PHP新手入门学习方法
2011/05/08 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
php内嵌函数用法实例
2015/03/20 PHP
php计算title标题相似比的方法
2015/07/29 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
PHP 数组current和next用法分享
2015/03/05 Javascript
基于javascript实现表格的简单操作
2016/05/21 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
xcode中获取js文件的路径方法(推荐)
2016/11/05 Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
2016/12/14 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
cordova入门基础教程及使用中遇到的一些问题总结
2017/11/14 Javascript
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
微信小程序实现吸顶特效
2020/01/08 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
Vue项目移动端滚动穿透问题的实现
2020/05/19 Javascript
基于vue项目设置resolves.alias: '@'路径并适配webstorm
2020/12/02 Vue.js
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
python版简单工厂模式
2017/10/16 Python
python如何修改装饰器中参数
2018/03/20 Python
关于ZeroMQ 三种模式python3实现方式
2019/12/23 Python
python中的subprocess.Popen()使用详解
2019/12/25 Python
python 如何引入协程和原理分析
2020/11/30 Python
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
中国一家综合的外贸B2C电子商务网站:DealeXtreme(DX)
2020/03/10 全球购物
幼儿园师德演讲稿
2014/05/06 职场文书
岗位职责说明书
2014/05/07 职场文书
建筑工地质量标语
2014/06/12 职场文书
美德少年事迹材料500字
2014/08/19 职场文书
大四优秀党员个人民主评议
2014/09/19 职场文书
趣味运动会开幕词
2015/01/28 职场文书