|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 lhj390 于 2017-12-25 10:41 编辑
- from PIL import Image
- codeLib = '''@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,"^`'. '''#生成字符画所需的字符集
- count = len(codeLib)
- image = Image.open('妖怪名单.jpg').convert("L")#转换为黑白图片,参数"L"表示黑白模式
- codePic = ''
- for h in range(0,image.size[1]): #size属性表示图片的分辨率,'0'为横向大小,'1'为纵向
- for w in range(0,image.size[0]):
- gray = image.getpixel((w,h)) #返回指定位置的像素,如果所打开的图像是多层次的图片,那这个方法就返回一个元组
- codePic = codePic + codeLib[int(((count-1)*gray)/256)]#建立灰度与字符集的映射
复制代码
codeLib[int(((count-1)*gray)/256)]这段代码什么意思,为什么要这么算
假设gray为0,那么就得到 codeLib[0]
假设gray为255,那么就得到 codeLib[-1]
假设gray为0-255之间的某个值x,对应的就是 codeLib[y] ,y 是通过公式计算得到的 y = int(((count-1)*x)/256)
|
|