# -*- coding:utf-8 -*-

# 生成字符画

from PIL import Image

import argparse

# 命令行输入参数处理

parser = argparse.ArgumentParser()

parser.add_argument('file') # 输入文件

parser.add_argument('-o', '--output') #输出文件

parser.add_argument('--width', type=int,default=100) #输出字符画宽

parser.add_argument('--height', type=int, default=150) #输出字符画高

#获取参数

args = parser.parse_args()

IMG = args.file

WIDTH = args.width

HEIGHT = args.height

OUTPUT = args.output

# 灰度值小(暗)的用列表开头的符号,灰度值大(亮)的用列表末尾的符号。

#ascii_char = list("$@B%89&AWMXEFGHKNR#*oahkbdpqwmZO0PQSTVLCDJUYzcvunxrjft654327/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")

ascii_char = list("■□")

# 将256灰度映射到字符上

def get_char(r,g,b,alpha=256):

if alpha == 0:

return " "

length = len(ascii_char)

gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)

unit = (256.0 + 1)/length

return ascii_char[int(gray/unit)]

if __name__ == '__main__':

im = Image.open(IMG)

im = im.resize((WIDTH, HEIGHT), Image.NEAREST)

txt = ""

for i in range(HEIGHT):

for j in range(WIDTH):

txt += get_char(*im.getpixel((j,i)))

txt += '\n'

# print(txt)

#字符画输出到文件

if OUTPUT:

with open(OUTPUT,'w') as f:

f.write(txt)

else:

with open("output.txt",'w') as f:

f.write(txt)

用python可以做什么有趣的事情_用python做一些有趣的事(一)——根据照片制作版画...相关推荐

  1. 用python可以做什么有趣的事情_用python真的可以做很多有趣的事!我自己做了些小项目!...

    许多学生在学习计划开始时会有这样的问题:用Python做什么有趣的事情? 其中,一个名叫Sarthak Agarwal的业余程序员是不专业的码农,但不是模棱两可的事情开始Python.让我们看看他是怎 ...

  2. python能用来做什么有意思的事情-可以用 Python 编程语言做哪些神奇好玩的事情?...

    目前的数据工作中,数据科学家使用最多的工具语言就是Python,排在第二的工具语言是R语言.但这里有一个有趣的现象,那就是同时使用Python或者R语言的人,推荐别人使用Python的却远高于R语言. ...

  3. python中词云的图片是蒙版_用Python做简易词云

    最近突发奇想,想做个词云玩玩,这算是Python的一个很初级的应用,虽然很初级,依然免不了会出现各种bug~ 使用工具: Anaconda:一个开源的用于Python科学计算的发行版本 jieba:一 ...

  4. python做游戏用什么软件_用Python自制谷歌小游戏

    谷歌流量器中有个很有名的彩蛋:当你网络出现问题时,就会出现一个"小恐龙游戏". (如果想要直接进行游戏,可以在地址栏输入:chrome://dino) 今天我们就来给大家演示下,用 ...

  5. python做炫酷的界面_用python打造可视化爬虫监控系统,酷炫的图形化界面

    安装 InfluxDB 修改配置文件/usr/local/etc/influxdb.conf,如果原文件中没有对应配置项,需自己添加. 3. 安装配置 Grafana 安装 Grafana 并修改 G ...

  6. python这么多包、怎么记住_学Python的人这么多 有哪些技巧可言

    学Python的人这么多,有哪些技巧可言?用Python完成项目,编写的代码量更少,代码简短可读性强,团队协作开发时读别人的代码速度会非常快,使工作变得更加高效.优雅做开发不再是梦,所以Python是 ...

  7. python交互式编程入门先学什么_为什么 Python 对于编程入门学习来说,是一门很棒的语言...

    在这篇文章里,我会来阐述下为什么我觉得 Python 对于计算机编程入门教学来说是一门很棒的编程语言(对基础编程课程更多观点可以查看这篇文章).这也是从我针对初学者Python 编程教学过程中获得并总 ...

  8. python里while 1是什么意思_关于python:“ while 1”和“ while True”之间有什么区别?...

    我已经看到了两种在Python中创建无限循环的方法: while 1: do_something() while True: do_something() 这些之间有什么区别吗? 一个比另一个更pyt ...

  9. python 爬网页 发布wordpress 包含图片_使用python批量插入wordpress-从理清表结构开始...

    python or php建站? 说实话,php能看懂,写的话就再需要熟悉一下语法.python建站需要从头开始.包括模板.cms.都没有php下的wordpress多.插件上也是wordpress有 ...

最新文章

  1. python汉诺塔游戏_Python实战:搭建汉诺塔小游戏,快和小伙伴一起玩玩吧
  2. windows环境安装haproxy及初步配置负载均衡使用示例
  3. Linux高级文本处理之sed(三)
  4. linux xorg.0.log,Red Hat无法登录,Cannot open log file /var/log/Xorg.0.log
  5. non-overlapping-intervals
  6. 有关Cassandra节点之间的通信:Gossip【译】
  7. 51单片机c语言教程温度计,单片机课程设计-数字温度计.doc
  8. java中的泛型是什么_Java中泛型是什么?Java泛型的详细介绍
  9. Oulipo(Hash入门第一题 Hash函数学习)
  10. python安装失败错误代码0x_详解雨林木风Win10提示“Python 0x80070643安装时发生严重错误”解决方法...
  11. Thingsboard 3.1.0 - REST API
  12. php7.4报错:Trying to access array offset on value of type null
  13. 使用yum更新补丁包
  14. xml转excel(Office XML转excel)
  15. 字符点击效果实现——YYLabel和YYTextHighlight
  16. 服务器ssd硬盘格式化,ssd固态硬盘格式化教程
  17. Android 调用第三方地图类App (高德 百度 百度网页版)
  18. 2022年医院三基考试肿瘤相关训练题及答案
  19. iOS- 网络访问JSON数据类型与XML数据类型的实现思路及它们之间的区别
  20. Coreseek、Sphinx-for-chinaese、Sphinx+Scws区别

热门文章

  1. 在命令行窗口中打开win10的显示设置
  2. 学会3招缓解家务病 身体才能更健康
  3. KVM基于Web部署虚拟主机
  4. 共享单车借力互联网保险,二者会擦出怎样的火花?
  5. 罗克韦尔AB PLC 通过KEPServer实现与西门子1200PLC的以太网通信
  6. 为什么被证明“拖后腿”的苹果Mini手机,仍然还会再次发布新款?
  7. 太阳的光和灯光有什么区别_阳光和灯光
  8. 【Python】原来处理大文件也可以这么简单?
  9. Apk脱壳圣战之---脱掉“梆梆加固”的保护壳
  10. NeuroImage:磁共振3D梯度回波磁化转移序列同时对铁和神经黑色素进行成像—用于帕金森病生物标志物研究