python笔记手写照片_Python笔记-将图片转换为字符画

【功能】

将jpg图片转换为字母画字符画( python 3.7版本下调试成功)

【特点】

1、图片可默认位置,或者手工输入指定图片名

2、输出字符画高度可以设置,默认为60行

6cf63dd60ac0?from=singlemessage

图片转字符画程序.jpg

6cf63dd60ac0?from=singlemessage

jpg.jpg

【以下为代码,右上角有复制按钮,可一键复制】

#2020.2.15 调试完成,运行正确!

#调用PIL库,需要自己手动安装Pillow库,具体办法请百度查询“python3安装pillow库”

from PIL import Image

#字符画所用的字母,从左到右越来越淡,最后是一个空格

codelib = '''@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. '''

count = len(codelib)

#print(count)

def transform(image_file):

codepic = '' #这一行必须要输入,要不然总是报错

image_file=image_file.convert("L") #将原图版转换为L灰度图像 如果是1就是纯黑纯白的二值图像

for h in range(0,image_file.size[1]): # 0横向像素数

for w in range(0,image_file.size[0]): # 1纵向像素数

gray=image_file.getpixel((w,h)) # 返回当时像素位置的像素值

#print(gray)

codepic = codepic + codelib[int((count*gray)/256)] #映射

codepic = codepic + '\n' #每行输入换行符

return codepic

#原始图片所在位置,如果路径包含\需要输入\\才可

print('''

【图片转字符画程序】 Ver:20200217.01

1、请先将需要转换的图片保存到C盘文件夹下,图片名称为jpg.jpg

2、转换后的文字画,默认会存放到C盘文件夹下的jpg.txt文件

''')

jpgname=str(input('''请在此输入图片所在位置(可直接按回车键,默认位置为c:\\\\jpg.jpg):''') or '''c:\\jpg.jpg''')

image_file = Image.open(jpgname)

#调整图片大小,具体比例根据原始图片大小调节,可以修改其中的宽0.5和高0.25为合适的数值

#image_file = image_file.resize((int(image_file.size[0]*0.5),int(image_file.size[1]*0.25)))

#额外的功能,可以自动计算图片的缩小比例,具体比例为:60/原图高度,即生成的文本共60行,正好可以一屏幕显示。

print('\n原图片像素横向数量(宽度):'+str(image_file.size[0]))

print('原图片像素纵向数量(高度):'+str(image_file.size[1]))

hangshu=int(input("\n请在此输入生成字符画的行数(可直接按回车键,默认为60):") or 60)

bili = float(hangshu/image_file.size[1])

print('\n为防止生成的字符画太宽太高,自动缩小比例约为:'+str(bili))

print('缩小后图片像素横向数量:'+str(int(image_file.size[0]*bili)))

print('缩小后图片像素纵向数量:'+str(int(image_file.size[1]*bili)))

#按比例缩小图片,纵向可以按比例缩小,横向可以缩小一半

image_file = image_file.resize((int(image_file.size[0]*bili*2),int(image_file.size[1]*bili)))

#额外的功能: 保存变灰、变小后的图片

#img2 = image_file.convert('L')

#img2.save('c:\\jpg缩小后.jpg')

#img2.close()

#输出的文本文件名

tmp = open('c:\\jpg.txt','w')

tmp.write(transform(image_file))

tmp.close()

input('\n字母画已经生成完毕,请打开c盘文件夹下的jpg.txt文件即可查看')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值