Python受欢迎的原因之一就是其计算生态丰富,据不完全统计,Python 目前为止有约13万+的第三方库。
本系列将会陆续整理分享一些有趣、有用的第三方库。
-
通过百度网盘获取:
链接:https://pan.baidu.com/s/1FSGLd7aI_UQlCQuovVHc_Q?pwd=mnsj提取码:mnsj
-
前往GitHub获取:
https://github.com/returu/Python_Ecosystem
pip install ascii_magic
该模块的所有功能都包含在AsciiArt类中,并提供了一系列类方法(例如AsciiArt.from_image()),可以从文件、URL、剪贴板等不同来源加载图片,并返回AsciiArt对象。这些对象具有多种方法,可以从图片生成ASCII艺术作品。这些方法还可以通过参数调整显示效果。
from ascii_magic import AsciiArt, from_image
# 方式一
my_art = AsciiArt.from_image('lion.jpg')
my_art.to_terminal()
# 方式二
my_art = from_image('lion.jpg')
my_art.to_terminal()
AsciiArt类本质上是对Pillow图像对象的封装。通过AsciiArt.image属性可以访问底层的Pillow对象,从而直接对其进行操作(如调整亮度、对比度等)。
from ascii_magic import AsciiArt
from PIL import ImageEnhance
my_art = AsciiArt.from_image('lion.jpg')
# 调整图像亮度
my_art.image = ImageEnhance.Brightness(my_art.image).enhance(0.2)
my_art.to_terminal()
-
1、图像加载方法:
-
quick_test():
加载一张随机的Unsplash图片,并在终端打印,用于测试环境是否正常运行。
-
from_image():
from_image(path: str) -> AsciiArt参数说明:path (str):与 Pillow 兼容的图片文件,例如 jpeg 或 png。
-
from_craiyon():
from_craiyon(prompt: str) -> AsciiArt参数说明:prompt (str):自然语言描述的图片内容。
-
from_dalle():
from_dalle(prompt: str,api_key: Optional[str]) -> AsciiArt参数说明:prompt (str):自然语言描述的图片内容。api_key (str, optional):DALL-E API 密钥。
-
from_stable_diffusion():
from_stable_diffusion(prompt: str,api_key: str,steps: int = 30,engine: Optional[str],) -> AsciiArt参数说明:prompt (str):自然语言描述的图片内容。api_key (str, optional):Stable Diffusion API 密钥。steps (int, optional):执行的推理步骤数量(请参阅 Stable Diffusion 文档)。engine (str, optional):设置用于生成的引擎(请参阅 Stable Diffusion 文档)
-
from_url():
from_url(url: str) -> AsciiArt参数说明:url (str):将通过 urllib 加载的 URL(支持重定向)。
-
from_clipboard():
from_clipboard() -> AsciiArt
-
from_pillow_image():
from_pillow_image(img: PIL.Image) -> AsciiArt参数说明:img (obj):使用 Pillow 创建的图像对象。
-
2、输出方法:
-
to_ascii():
AsciiArt.to_ascii(columns: int = 120,width_ratio: float = 2.2,monochrome: bool = False,char: Optional[str] = None,front: Optional[Front] = None,back: Optional[Back] = None) -> str参数说明:columns (int, optional):每行的字符数,值越大,艺术作品越宽。width_ratio (float, optional):ASCII 字符不是正方形,因此此参数用于在生成过程中调整宽度与高度的比例。monochrome (bool, optional):如果设置为True,则禁用显示颜色的控制字符。char (str, optional):可以指定使用单一字符(如'#')代替多种 ASCII 字符。front (enum, optional):覆盖前景色,可选值包括:Front.BLACK、Front.RED、Front.GREEN、Front.YELLOW、Front.BLUE、Front.MAGENTA、Front.CYAN、Front.WHITE。back (enum, optional):设置背景色,可选值包括:Back.BLACK、Back.RED、Back.GREEN、Back.YELLOW、Back.BLUE、Back.MAGENTA、Back.CYAN、Back.WHITE。
-
to_terminal():
-
to_file():
AsciiArt.to_file(path: str,# ... 与 AsciiArt.to_ascii() 相同的参数) -> str参数说明:path (str):输出文件路径。
-
to_html():
AsciiArt.to_html(full_color: bool = True,# ... 与 AsciiArt.to_ascii() 相同的参数,但不包括 back 和 front 颜色) -> str参数说明:full_color(bool, optional):如果设置为False,则将调色板限制为8种颜色。
-
to_html_file():
AsciiArt.to_html_file(path: str,styles: str = '...', # 请参阅以下描述additional_styles: str = '',auto_open: bool = False# ... 与 AsciiArt.to_html() 相同的参数) -> str参数说明:path (str):输出文件路径。styles (str, optional):一个字符串,包含<pre>元素的一组CSS样式,默认值如下:display: inline-block;border-width: 4px 6px;border-color: black;border-style: solid;background-color: black;font-size: 8px;additional_styles (str, optional):可以使用此参数添加您自己的 CSS 样式,而不会覆盖默认样式。auto_open (bool, optional):如果设置为True,则会使用webbrowser.open() 自动打开文件。
以下是一个简单的使用示例,本次测试图像如下:

代码:
from ascii_magic import AsciiArt
from PIL import ImageEnhance
# 从图片文件创建 AsciiArt 对象
my_art = AsciiArt.from_image('city.jpg')
# 访问底层的Pillow对象,调整图像亮度
my_art.image = ImageEnhance.Brightness(my_art.image).enhance(1.5)
# 将标记保存到一个简单的HTML文件中
# 并设置columns,width_ratio,char,additional_styles,auto_open参数
my_art.to_html_file('city.html', columns=300, width_ratio=3 , char='#' ,additional_styles='font-family: MonoLisa;', auto_open=True)
生成结果:

更多内容可以前往GitHub查看:
https://github.com/LeandroBarone/python-ascii_magic


本篇文章来源于微信公众号: 码农设计师
