采用万国码之盲文字符在控制台或终端应用中绘制点阵图。
此自述文件亦可见于诸下文字
The README is also in
🇬🇧 英文 English
此库开发,实为避 drawille 库之 AGPLv3 协议绑架。抽丝剥茧,以新逻辑呈同种功能,是为完全独一的软件,意欲完全避开其法律风险。为正本清源,不采用其应用程序接口,不采用同种代码逻辑,以全新之面貌呈现盲文点阵图。
本库定义了一个 CanvasSurface
作为绘制像素画布的基础类。提供多种方法来操作画布,并课最终转为盲文字符串或图像。
_width
: 画布宽度,内部使用,不应直接修改。_height
: 画布高度,内部使用,不应直接修改。data
: 画布数据,使用numpy
数组存储,布尔类型,True
表示该像素为突出(存在),False
表示相反。
__init__
: 初始化画布,可以指定宽度、高度、初始数据和填充值。默认情况下,宽度为终端宽度的两倍,高度为终端高度的四倍。
surface_width
: 获取画布宽度。surface_height
: 获取画布高度。surface_size
: 获取画布尺寸,返回一个元组(width, height)
。
from_image
: 从图片创建画布,将图片转换为布尔数组。
reshape_canvas
: 重新设置画布大小,不缩放内容。resize_image
: 缩放整个画布,支持多种插值方法。stack
: 将另一个画布对象堆叠到当前画布上,支持水平和垂直堆叠。(拼接画布)rorate
: 旋转画布及其图像,支持 90 度、180 度和 270 度旋转。reset
: 重置画布。get_pixel
: 获取指定坐标的像素。set_pixel
: 设置指定坐标的像素。set_pixels
: 使用x
和y
序列设置多个像素,比set_points
更快。set_points
: 使用多组坐标对设置多个像素。set_line
: 设置一行像素。set_column
: 设置一列像素。set_block
: 设置一个区域的像素。set_canvas
: 设置画布所有像素。reverse_pixel
: 翻转指定坐标的像素。(反色某点)reverse_line
: 翻转一行像素。(反色某行)reverse_column
: 翻转一列像素。(反色某列)reverse_block
: 翻转一个区域的像素。(反色某区域)reverse_canvas
: 翻转整个画布的像素。(反色画布)dump_lines
: 以行为分割的盲文字符画字符串迭代器。dump
: 将画布上的所有像素生成盲文字符画。dump_singleline
: 为指定的行生成盲文字符画,迭代每个字符。to_image
: 将画布生成图片。dump_image
: 将画布生成盲文字符画图片,支持指定字体、背景色和前景色。
walk_line
: 直线迭代器,返回一条直线上的所有坐标。
# 创建一个画布
canvas = CanvasSurface(width=100, height=50)
# 设置一些像素
canvas.set_pixel(10, 10, True)
canvas.set_pixel(15, 15, True)
# 生成盲文字符画
braille_art = canvas.dump()
print(braille_art)
# 生成图片
image = canvas.to_image()
image.show()
# 生成盲文字符画图片
font = ImageFont.truetype("FontSupportsBraille.ttf", 24)
braille_image = canvas.dump_image(font, backgrand_color=0, foreground_color=255)
braille_image.show()
- 感谢 自由软件基金会 FSF 在促进软件非自由化方面取得的杰出贡献;所谓的自由软件,倘若仅仅建立于开发者的非自由之上,则无谓之以自由。在 自由软件基金会 的自介辞“我们的使命是在全球范围内促进计算机用户的自由。我们捍卫所有软件用户的权利。”中,我相信他们的的确确在其各类协议中试图保护计算机用户之自由,同时也试图剥夺开发者自由开发软件的权利。我相信,真正的自由,只有建立在全人类的广度之上,才可以称得上是真正的自由,一部分人的自由不叫自由,那只不过是他们对其他人的奴役。我们需要捍卫开发者的自由,捍卫开发者合理化自己知识产权的权利!