将图片转换为ASCII艺术

ascii-magic的Python项目详细描述


ASCII魔术

Python包,用于将图像转换为ASCII艺术终端和HTML。多亏了Colorama它与Windows终端兼容。基于ProfOak's Ascii Py的代码。在

安装

pip install ascii_magic

基本用途

^{pr2}$

结果:

ASCII Magic example

可用功能

从图像文件()

将图像文件转换为ASCII图形。在

ascii_magic.from_image_file(path:str,columns:int=120,width_ratio:float=2.2,char:str=None,back:Back=None,mode:Modes=Modes.TERMINAL,)->str
  • path:与PIL兼容的文件,如jpeg或png
  • columns (optional):每行的字符数,更多的列=更宽的艺术
  • width_ratio (optional):ASCII字符不是正方形,因此这将调整宽高比
  • char (optional):您可以使用单个的ASCII标志符号,例如“#”
  • back (optional):在终端模式下,使用以下选项之一设置背景颜色:
    • ascii_magic.Back.BLACK
    • ascii_magic.Back.RED
    • ascii_magic.Back.GREEN
    • ascii_magic.Back.YELLOW
    • ascii_magic.Back.BLUE
    • ascii_magic.Back.MAGENTA
    • ascii_magic.Back.CYAN
    • ascii_magic.Back.WHITE
  • mode (optional):其中之一:
    • ascii_magic.Modes.TERMINAL:输出带终端颜色代码的ASCII(8个音调)
    • ascii_magic.Modes.ASCII:输出纯ASCII,不带颜色代码,产生“灰度”图像
    • ascii_magic.Modes.HTML_TERMINAL:输出模拟终端颜色的HTML;将其包装在<pre>
    • ascii_magic.Modes.HTML:同上,但用全色

示例:

output=ascii_magic.from_image_file('images/lion.jpg',columns=200,back=ascii_magic.Back.BLUE)

结果:

ASCII Magic HTML mode example

示例:

output=ascii_magic.from_image_file('images/lion.jpg',columns=200,width_ratio=2,mode=ascii_magic.Modes.HTML)

结果:

ASCII Magic HTML mode example

示例:

output=ascii_magic.from_image_file('images/lion.jpg',columns=200,mode=ascii_magic.Modes.ASCII)

结果:

ASCII Magic HTML mode example

从url()

如上所述,但是使用图像的URL。如果在请求映像时出现错误,则引发一个urllib.error.URLError,但如果不想将urllib导入到项目中,也可以将其捕获为OSError。在

ascii_magic.from_url(url:str,# ... as above)->str
  • url:将通过urllib加载的URL(支持重定向)

示例:

try:img_url='https://source.unsplash.com/800x600?nature'output=ascii_magic.from_url(img_url,columns=100)exceptOSErrorase:print(f'Could not load the image, server said: {e.code}{e.msg}')

从剪贴板()

如上所述,但包含剪贴板的内容。如果剪贴板不包含图像,则引发OSError。在

在Linux下需要PyGObject。在

ascii_magic.from_clipboard(# ... as above)->str

示例:

try:output=ascii_magic.from_clipboard(columns=100)exceptOSError:print('The clipboard does not contain an image')

从图像()

如上所述,但使用的图像加载枕头。在

ascii_magic.from_image(img:Image,# ... as above)->str
  • img:PIL image对象

示例:

fromPILimportImagewithImage.open('images/lion.jpg')asimg:output=ascii_magic.from_image(img,columns=100)

初始化终端()

初始化Colorama,这是Windows在终端模式下显示艺术所必需的。这和做colorama.init()是一样的。在

ascii_magic.init_terminal()->None

至终端()

初始化Colorama,这是Windows在终端模式下显示艺术所必需的,并打印输入。这和做colorama.init()然后print()是一样的。在

ascii_magic.to_terminal(input:str)->None

到\u html_file()

将输入写入<pre>内的基本HTML文件。在

ascii_magic.to_html(path:str,input:str,styles:str='...',# See descriptionadditional_styles:str='',auto_open:bool=False)->None
  • path:HTML文件的相对路径和文件名
  • input:将包含的标记
  • styles (optional):默认情况下,<pre>元素的一组CSS样式的字符串:
    • 显示:内联块
    • 边框宽度:4px 6px
    • 边框颜色:黑色
    • 边框样式:纯色
    • 背景色:黑色
    • 字号:8px
  • additional_styles (optional):您可以添加自己的样式,而无需删除默认样式
  • auto_open (optional):如果为True,将对HTML文件调用webbrowser.open()

示例:

output=ascii_magic.from_image_file('images/lion.jpg',mode=ascii_magic.Modes.HTML)ascii_magic.to_html_file('lion.html',output,additional_styles='background: #222;')

快速测试()

运行ascii_magic,使用默认参数随机显示图片并将其打印到终端。在

ascii_magic.quick_test()->None

许可证

版权所有(c)2020 Leandro Barone。在

使用是根据麻省理工学院的许可证提供的。有关完整的详细信息,请参阅许可证。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java操作数组上的字符串   java JAXB内容未实例化   图形在Java中如何绘制垂直居中的字符串?   java Apache Ant:使用Junit时出现NoClassDefFoundError   java无法从服务器上运行perl脚本   如何在java中沿树进行预排序遍历,并打印0和1以对应每个节点上的特定字符?   java如何创建。p12文件?   java线程访问无效   java只匹配命名空间中的XML节点,而不知道NS前缀   从java获取2d arraylist元素   数组Java动态集合对象   java Xpath通过通配符或布尔运算查找以相同名称开头的节点?   java注释元素类型   java在中看不到Super()。反编译后的类文件