以类似位图的方式操作ASCII艺术表(&T)。
ascim的Python项目详细描述
ASCIM-操作ASCII艺术,就像你处理光栅图像一样
文档前幽默
Do you know why the crazy guy started a side project to feed another one?
No, you should ASCIM.
如果您从memethesis cli来到这里,请直接转到“ASCIM Tables”部分。在
安装
pip install ascim
就可以了。在
使用
基本ASCIM等级
fromascim.ascimimportASCIMim=ASCIM('''In ASCIM,every characteris likea pixel''')
im
现在是一个ASCIM对象,包含以下文本(包含在矩形*):
第0、2和3行的索引为零,在其右侧用空格填充 所以它们的长度都和线1一致。 ASCIM对象被视为图像,因此字符串方法不再适用。在
* but what is in this rectangle? We will cover this later on in section 'ASCIM Tables'.
ASCIM表格
ASCIM表是ASCIM图像的容器对象。ASCIM图像(或非类型) 可以占用表格中的一个单元格,就像在电子表格中一样。在
代码示例:
fromascim.ascimimportASCIMfromascim.tableimportASCIMTabletable=ASCIMTable.from_text('<copy paste that table from below>')print(table.cell_at(0,0).to_text())# => 'symbol'print(table.size)# => (4, 7)
文本表示
表和表都是为文本表示而设计的 人类可读。下面是一个例子: (relevant xkcd)
+--------+---------------+---------------+------------------------+
| symbol | name | size | notes |
+--------+---------------+---------------+------------------------+
| kB | Kilobyte | 1024 bytes | 1000 bytes during leap |
| | | or 1000 bytes | years, 1024 otherwise |
+--------+---------------+---------------+------------------------+
| KB | Kelly-Bootle | 1012 bytes | Compromise between |
| | Standard Unit | | 1000 and 1024 bytes |
+--------+---------------+---------------+------------------------+
| KiB | Imaginary | 1024sqrt(-1) | Used in quantum |
| | Kilobyte | bytes | computing |
+--------+---------------+---------------+------------------------+
| kb | Intel | 1023.937528 | Calculated on |
| | Kilobyte | bytes | Pentium F.P.U |
+--------+---------------+---------------+------------------------+
| Kb | Drivemaker's | Currently | Shrinksby 4 bytes each |
| | Kilobyte | 908 bytes | year for marketing |
| | | | reasons |
+--------+---------------+---------------+------------------------+
| KBa | Baker's | 1152 Bytes | 9 bits to the byte |
| | Kilobyte | | since you're such a |
| | | | good customer |
+--------+---------------+---------------+------------------------+
规格
- 在
cell是存储在ASCIMTable中的ASCIM对象或非类型。
打印时,它在水平方向上用+
和-
括起来
+
和|
垂直。NoneType表示单元格中没有内容,
并在显示时解释为1x1 ASCIM对象。在
在 - 在
在管道的每一侧(垂直条;|
)上,必须
成为一个空间。如图所示:
+---+
|012|
|345|
|678|
+---+
在这个矩形封闭区域,“单元”仅覆盖1、4和7。
位置0、3、6、2、5、8必须是空格。
位置1和7不应为空格。
也就是说,只有水平边距是必要的。在
在 - 在
当文本中的行太宽或列太高而无法转换时
对于ascimable,多余的列/行空间被截断。在
在
ASCIM Draw
cell是存储在ASCIMTable中的ASCIM对象或非类型。
打印时,它在水平方向上用+
和-
括起来
+
和|
垂直。NoneType表示单元格中没有内容,
并在显示时解释为1x1 ASCIM对象。在
在管道的每一侧(垂直条;|
)上,必须
成为一个空间。如图所示:
+---+
|012|
|345|
|678|
+---+
在这个矩形封闭区域,“单元”仅覆盖1、4和7。 位置0、3、6、2、5、8必须是空格。 位置1和7不应为空格。 也就是说,只有水平边距是必要的。在
在当文本中的行太宽或列太高而无法转换时 对于ascimable,多余的列/行空间被截断。在
在使用ASCIMDraw,您可以对ASCIM图像进行就地修改。 ASCIMDraw对象以(对)ASCIM对象的引用作为其参数。在
代码示例:
fromascim.ascimimportASCIMfromascim.drawimportASCIMDrawim=ASCIM.new((5,5))draw=ASCIMDraw(im)draw.text((1,2,4,2),'oh nice')# text is wrapped in a 4x2 box# `im` is modified in-placeprint(im.to_text())### oh# nice#
- 项目
标签: