自学Python笔记-1:图片转换字符图
2020-03-06 21:13
1071 查看
操作系统:Windows
Python版本:3.8.1
需要导入模块:PIL(pillow)
涉及的函数:
Image.open():打开需要转换的图片
object.resize():重设图片大小(可选)
object.getpixel():获取图片像素的RGB值以及ALPHA值
主要思路:
1、通过PIL的Image.open()打开通过PIL的Image.open打开需要转换的图片;
2、使用object.resize()将图片进行缩小,图片太小的话,可忽略此步骤;
3、利用object.getpixel()获取像素值,返回值为(r,g,b)或(r,g,b,alpha),其中alpha为像素的透明度;
4、通过公式转换成灰度图片,并把不同的灰度值,根据字符码的数量进行划分,转换成对应的字符;
5、将字符按行列存放于变量,并输出
源代码如下:
from PIL import Image #导入PIL中的Image模块 #--------定义将灰度值转成对应字符的函数----------- def get_char(r,g,b,alpha=256): if alpha == 0: #透明像素转换为空格 return ' ' charlist = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") #需要用到的字符码,最后一定要为空格以转换白色 length = len(charlist) #可用于转换字符的数量 gray = int(0.2126*r + 0.7152*g + 0.0722*b) #RGB转换成灰度 unit = (256+1)/length #根据可用字符量对灰度进行划分 return charlist[int(gray/unit)] #按灰度等级划分转换成对应的字符 #---------------函数定义到此结束------------------ #---------------以下读取图片像素------------------ img = Image.open('1.png') #通过image读取图片 img = img.resize((40,40),Image.NEAREST) #缩小图片至40x40,并降低图片质量Image.NEAREST(可选参数) #------------调用转换函数获取字符图--------------- pixel = '' #先设置pixel为空 for i in range(0,40): #行 for j in range(040): #列 pixel += get_char(*img.getpixel((j,i))) #将新的像素转字符后,递加到pixel内 pixel += '\n' #行末结束,换行 print(pixel) #输出
示例图片:
转换效果:
过程中,曾遇到的问题,仍然未得到解决:
同一段代码,相同版本的python,在windows上运行没有问题,但在mac os 10.11上img.getpixel()返回的值却不是列表,而只有一个值?
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- python如何将图片转换为字符图片
- 使用python将图片转换为字符图片
- python自学笔记(8)--Python简单爬虫从网站上下载图片和用第三方库request实现百度翻译
- python实战===图片转换为字符的源码(转)
- python实现图片字符转换
- python cookbook 学习笔记 -- 1.2 字符与字符值间转换
- Python学习笔记【week01day3下】算术运算符与表达式、比较运算符(ASCII与字符转换)、赋值运算符、逻辑运算符(短路原则)、位运算符
- python学习之路-base64 图片字符转换
- 第一个Python小项目:图片转换成字符图片
- python3学习笔记--转换位串到utf-8字符串
- python小项目练习之转换像素图片为字符图
- python-图片,视频字符转换
- 用Python把图片转换为ASCII字符的程序
- 用python将CIFAR-10]数据集转换为图片格式
- python 内置的os模块将文件夹下所有图片名称加上指定字符
- 学习使用 python 中的 opencv 库 ---- 图片转换成字符串
- python学习笔记(8)--爬虫下载占位图片
- 数据转化python面试题(程序员在自学机器学习过程的笔记)(¥30)
- 【小白自学笔记】【机器学习实战】【Python代码逐行理解】CH02