通过这个获取像素点,你就可以制作灰度图,将普通的图片转化为字符的图片
这个就是打印灰度值的
from PIL import Image
img = Image.open("3.jpg")
#将图片分成小像素方块
pix = img.load()
# 获取图片大小
width = img.size[0]
height = img.size[1]
#width,height = img.size
for i in range(0,height):
line = ''
for j in range(0,width):
# 取出每个像素点的值
pi = img.getpixel((j,i))
print(pi)这个是别人处理灰度用的
自己再加上一个图片路径即可
from PIL import Image
# 2.使用Image的对象读取图片
image_name = '3.jpg'
img = Image.open(image_name)
# print(img.size,img.mode)
# 3.将图片转为灰度图片
img = img.convert('L') # L是转换灰度图片
# img.show() img.save('fff.jpg')
# 4.获取原图大小,并根据实际需要缩小图片
w,h = img.size
# 如果图片太大,将高和宽做一个等比例的缩放
if w > 100:
h = int((100/w) * h/1.8)
w = 100
# 等比例缩放用到resize方法,第二个参数是加入滤镜,保证缩放质量
img = img.resize((w,h),Image.ANTIALIAS)
# img.save('fff.jpg')
# 添加多行注释的快捷键: ctrl+/
# 5.将缩小的图片像素点的颜色值转为字符并存放到列表
data = []
chars = [' ','.','c','h','e','n','y','i','m','e','n','g']
# 根据图片宽度和高度遍历像素点并取出每个像素点的颜色值
for i in range(0,h):
line = ''
for j in range(0,w):
# 取出每个像素点的值
pi = img.getpixel((j,i))
# 用字符去替换像素点的颜色值
for k in range(0,12):
if pi < (k+1) * 22:
line += chars[11-k]
break
data.append(line)
# 6.将保存的像素字符列表写入到文件中
f = open(image_name+'.txt','w')
for d in data:
print(d,file=f)
f.close()
print('successful!')而对于我来说,我只需要的是这里的这个一个小小的算法
for i in range(0,h):
line = ''
for j in range(0,w):
# 取出每个像素点的值
pi = img.getpixel((j,i))
# 用字符去替换像素点的颜色值
for k in range(0,12):
if pi < (k+1) * 22:
line += chars[11-k]
break
data.append(line)将别人的和我自己的进行结合
from PIL import Image
img = Image.open("3.jpg")
img = img.convert('L') # L是转换灰度图片
# 获取图片大小
width = img.size[0]
height = img.size[1]
img = img.resize((width,height),Image.ANTIALIAS)
#width,height = img.size
data = []
chars = [' ','.','c','h','e','n','y','i','m','e','n','g']
for i in range(0,height):
line = ''
for j in range(0,width):
# 取出每个像素点的值
pi = img.getpixel((j,i))
for k in range(0, 12):
if pi < (k + 1) * 22:
line += chars[11 - k]
data.append(line)
print(data)先学习再魔法,然后再扩展,这样就可以学好编程了
我也是这边弄一点的,那边弄一点,然后吧他们给凑起来得到的
版权声明:本文为m0_55234643原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。