关于Windows下记事本无法对齐和字符大小不一致的问题

本文探讨了Windows记事本中字符画显示扭曲的原因,由于记事本设计简单,不支持字符自动对齐。作者推荐使用notepad++作为替代,以解决格式化和对齐问题。
Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

由图像转为字符画的实现而引发的问题,先上小程序代码:

#DrawCharImage.Py
from PIL import Image 
ascii_char = list('~OUTHANMW')   #字符画里的字符集,图片颜色越深对应的字符越浅,用户可自己设定
#使用灰度值将彩色图像转换为黑白文稿,白色为255,黑色为0
def get_char(r, b, g, alpha = 256):
    if alpha == 0:
        return ''
    gray = int(0.2126*r + 0.7152*g + 0.0722*b)
    unit = 256/len(ascii_char)
    return ascii_char[int(gray//unit)]
#为了使生成的字符画有最佳效果,可使用Image类的resize(size)函数对图片重新设定大小
def main():
    im = Image.open('astro.jpg')
    WIDTH, HEIGHT = 500,300
    im = im.resize((WIDTH,HEIGHT))
    txt = ''
    for i in range(HEIGHT):
        for j in range(WIDTH):
            txt += get_char(*im.getpixel((j,i)))
        txt += '\n'
    fo = open('pic_char.txt','w')
    fo.write(txt)
    fo.close()
main()

当然,以上程序并不难理解,运行后也得到了正确结果,在文本文件里展示如下:



缩略后大概是这个样子的。已经实现了图片转为字符画。

可是为什么到了后面越来越扭曲?

咦?明明每行字符个数是相同的,可是到了最后为什么每行长度差的这么大?

原因很容易想到,既然每行的字符个数是一样的,那肯定是记事本下每个字符的大小不一样导致的。


那有没有什么解决办法呢?很难过,本人并没有找到。

原因是当初设计记事本时的设计目标就只是把它当做一个文本编译器来用,几乎无格式,不支持排版、图片、表格等一系列操作,甚至连自动换行功能也是后来补上的,自然也就不能提供字符自动对齐的功能了。

本人找到唯一可行的办法就是一个空格一个空格的按,这样才能手动达到比较对齐的效果。

最后本人找到一个可以替代记事本的更好用的文本编译器推荐给大家:notepad++

软件打开后是这样的:


notepad++和Windows自带的记事本相比具有更强大的功能,弥补了记事本单一格式化和字符不对齐的问题,并且提供了更多功能供大家探索,以后就用它啦!

如果大家有什么可以让记事本对齐的更好的办法,欢迎留言或私信!

记事本拓展:

关于记事本编码格式的问题:http://blog.csdn.net/liyangbing315/article/details/5616643

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值