[Python] IMG to Char
2024-08-26 01:40:48
Change image into character
from PIL import Image
import argparse #输入
#命令行输入参数处理
parser = argparse.ArgumentParser() parser.add_argument('file') #position argument
parser.add_argument('-o','--output') #optional argument and -o is a short option
parser.add_argument('--width', type = int, default = 80) #optional argument
parser.add_argument('--height', type = int, default = 80) #获取参数
args = parser.parse_args() IMG = args.file
WIDTH = args.width
HEIGHT = args.height
OUTPUT = args.output ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") #处理
#构建映射
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__':
#When the Python interpreter reads a source file, it executes all of the code found in it.
#in main program, __name__ = __main__
im = Image.open(IMG)
im = im.resize((WIDTH,HEIGHT), Image.NEAREST)
#Image.resize(size, resample=0)
#Parameters:
#size – The requested size in pixels, as a 2-tuple: (width, height).
#resample – An optional resampling filter. This can be one of PIL.Image.NEAREST (use nearest neighbour), PIL.Image.BILINEAR (linear interpolation), PIL.Image.BICUBIC (cubic spline interpolation), or PIL.Image.LANCZOS (a high-quality downsampling filter). If omitted, or if the image has mode “1” or “P”, it is set PIL.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)
最新文章
- Java Annotation概述
- ruby不能识别中文的一个坑
- 利用循环播放dataurl的视频来防止锁屏:NoSleep.js
- 深入理解计算机系统(2.8)---浮点数的舍入,Java中的舍入例子以及浮点数运算(重要)
- GPS坐标互转:WGS-84(GPS)、GCJ-02(Google地图)、BD-09(百度地图)
- 从 bcp 客户端收到一个对 colid x 无效的列长度。
- sql的 group by 分组;linq的 group by 分组
- TCP/IP协议原理学习笔记
- 给config加密
- 各种排序算法(C语言)
- 1.3 LINQ查询
- ROC与AUC
- 【转】关于swf安全沙箱冲突:不能被本地访问
- 第一章:大数据 の Linux 基础 [更新中]
- mysql error 2005 - Unknown MySQL server host &#39;localhost&#39;(11001)
- PY序
- ftp的自动部署以及添加虚拟账户的脚本
- python 当前时间多加一天、一小时、一分钟
- attr 和 prop 的区别
- Mac下搭建react及bable