有一串字符串,字符串一共组成了10数字(从0-9),每个数字都是5行5列构成的。

python将字符点阵转换成数字图片_二维码

接下来,我的目标是将其变成5x5像素对应的数字图片。(下面的图片是放大10倍的效果)

python将字符点阵转换成数字图片_字符串_02

字符串预处理

首先去除字符串里面的换行符,空格等。为后面切割字符串做准备。

python将字符点阵转换成数字图片_二维码_03

切割数字

切割出第一个数字0

分析:每一行都有50个字符,每一行的前5个都是属于数字0的,通过字符串的切片获取。

python将字符点阵转换成数字图片_二维码_04

同理,利用循环切割出所有数字。,这里主要是14行range里面几个数字的理解,第一个表示开始的位置,数字0从0开始,1从1开始,前面乘上num就可以适应不同的数字的,250表示结束,50代表步长,每行50个字母,刚好起到换行 的效果。15行的[i:i+5]表示从开始位置往后取5个字符。

python将字符点阵转换成数字图片_python_05

打印查看效果,每一个数字的字符都已经切割成功。

python将字符点阵转换成数字图片_字符串_06

将数字变成图片

接下来就是将数字变成图片了,原理很简单,先创建一张55像素空白的图片,接着循环对比,如果该位置是@字符,就将该处的像素通过putpixel方法设置为黑色,直到循环完所有字符得到最终结果。(注意:里面的index = 5y+x代码是没有的,之前一种方法用的,忘记删掉了)

python将字符点阵转换成数字图片_python_07

数字1只需要更改26行的digit的索引。

python将字符点阵转换成数字图片_python_08

保存到本地

通过save方法,可以将图片保存到本地,5x5像素的图片非常小,最后通过resize放大10倍变成50x50像素保存。

python将字符点阵转换成数字图片_字符串_09

所有图片效果

python将字符点阵转换成数字图片_字符串_10

(全文完)


长按二维码,加关注!叶子陪你玩

python将字符点阵转换成数字图片_python_11


欢迎转载,转载请注明出处!

欢迎关注公众微信号:叶子陪你玩编程 分享自己的python学习之路