from PIL import Image im=r"C:\Users\Achoo\Desktop\love.PNG"#原始图片路径 im_path=r"C:\Users\Achoo\Desktop\LOVE.txt"#记事本路径 zifu="[email protected]#.%^&.()_{}><[email protected]"#字符集 def rgbx(r,g,b,a): gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)#将rgb值转换为灰度值 lenght=len(zifu) id=int(256/lenght) return zifu[int(gray/id)]#将该灰度值与字符集对应 def change(im,da=10):#将原图像压缩 height,width=im.size print(height,width) height=int(height/da) width=int(width/da) print(height,width) im=im.resize((height,width)) return im def imagechar(img_p,savepath): width,height=img_p.size txt="" for i in range(height): line="" for j in range(width): line=line+rgbx(*img_p.getpixel((j,i)))#获取原像素的rgb值 txt+=line+"\n" with open(savepath,‘w+‘,encoding=‘utf-8‘) as f: f.write(txt) im=Image.open(im) im=change(im) imagechar(im,im_path)
第一个小程序遇到挺多问题的,例如刚开始在实验楼在线敲,好不容易敲完了,网断了,又重新敲一回
利用resize变化图像尺寸时,传递的参数为整数
getpixel((x,y))获取(x,y)位置上的RGB值
原文地址:https://www.cnblogs.com/achoo/p/8597763.html
时间: 2024-11-06 03:30:37