作者:泽儿0818_833 | 来源:互联网 | 2023-06-08 14:01
功能:利用python的image模块和简单用符号,再控制台打印出图片的图片轮廓PIL安装pipinstallPillow步骤:1、拿到图片对象,并转换图片模式(
功能:利用 python 的 image模块和简单用符号,再控制台打印出图片的图片轮廓
PIL 安装 pip install Pillow
步骤:
1、拿到图片对象,并转换图片模式(‘’L‘’),L模式可以去到图片的个像素的灰度参数;
2、定义图片缩放长度、替换字符的串(根据灰度值排序);
3、遍历缩放后每一个点位置,并获取该点位置的灰度值,根据灰度值替换为相应的替换字符;
4、打印在控制台;
代码如下:
#-*- coding:utf-8 -*-
from PIL import Image
import sys
import os
def _main():
try:
pic = os.path.abspath(sys.argv[1]) #获取图片路径参数
except:
print('指定图片路径')
img = Image.open(pic) #获取图片对象
width = img.width #获取图片宽度
height = img.height #获取图片高度
gray_img = img.convert('L') #图片转换为'L'模式 模式“L”为灰色图像,它的每个像素用8个bit表示,0表示黑,255表示白,其他数字表示不同的灰度
scale = width // 100 #图片缩放100长度
char_lst = ' .:-=+*#%@' #要替换的字符
char_len = len(char_lst) #替换字符的长度
for y in range(0, height, scale): #根据缩放长度 遍历高度
for x in range(0, width, scale): #根据缩放长度 遍历宽度
choice =gray_img.getpixel((x, y)) * char_len // 255 #获取每个点的灰度 根据不同的灰度填写相应的 替换字符
if choice==char_len:
choice=char_len-1
sys.stdout.write(char_lst[choice]) #写入控制台
sys.stdout.write('\n')
sys.stdout.flush()
if __name__ == '__main__':
_main()
使用:
将上面代码写入到picture.py中,执行命令:python picture.py ImgURL
效果如下: