16 个稳定版本 (3 个主要版本)
3.0.0 | 2024 年 3 月 27 日 |
---|---|
2.0.6 | 2024 年 2 月 13 日 |
2.0.2 | 2023 年 8 月 24 日 |
2.0.0 | 2023 年 7 月 23 日 |
0.6.1 | 2022 年 3 月 27 日 |
#122 在 命令行工具
136 每月下载量
用于 clp
120KB
2K SLoC
Artem
Artem 是一个小型命令行程序,用 Rust 编写,可以轻松地将图像转换为 ASCII 艺术作品,其名称来源于拉丁语中的“艺术”。默认情况下,它尝试使用真彩色,如果终端不支持真彩色,则回退到 16 色ANSI。当 ASCII 图像写入文件时,将不会使用颜色。它支持 .jpeg
、.png
、.gif
、.webp
以及更多。
如果您想将此项目作为库使用,请参阅 文档。
维护
此项目仍在维护中吗?
是的。尽管目前没有新功能开发,但会继续处理问题和新的功能请求。如果您有任何问题或对新功能有任何想法,请 创建一个问题。
示例
输入
输出
用法
用于简单转换图像
artem path
输入可以是单个或多个文件路径或 URL。
注意:要使用 URL,必须启用 web_image
功能。默认情况下已启用。
要使用更多选项,请使用
artem --help
要使用自定义的ASCII字符,请使用--characters
参数(或简写为-c
)。字符应按从最暗/最密集到最亮排序。如果背景应该是不可见的,请在其后添加一个空格。或者,此程序已经预定义了3个字符集,可以通过提供--characters
参数以及预设编号(0
、1
或2
)来访问。默认情况下使用预设1
。
artem PATH --characters "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789<>|,.-#+!$%&/()=?*'_:; "
要更改转换图像显示的大小,请使用
#for auto sizing height
artem PATH --height
#for auto-sizing width
artem PATH --width
#for manual resizing use the --size flag
artem PATH --size 100
也可以使用以下方法来居中图像
#center the image horizontally
artem PATH --centerX
#center the image vertically
artem PATH --centerY
要保存图像到文件,请使用--output
标志。
artem PATH --output ascii.txt
#if the output file is an html file, the resulting ascii art will be saved as html ascii art, which supports colors
artem PATH --output ascii.html
# or alternatively, use an .asn file for colored ascii text
artem PATH --output ascii.ans
使用--outline
标志,将过滤给定的输入图像,使其只包含轮廓,然后进行转换。请注意,这可能会花费一些额外的时间,并且可能不是在每张图像上都能完美工作。为了获得最佳结果,请使用背景和前景之间有清晰区别的图像。
artem PATH --outline
为了获得更好的结果,可能值得尝试使用--hysteresis
/--hys
标志,可能还需要使用更适合轮廓的字符。
artem PATH --outline --hysteresis --characters "|/\_. "
安装
所有平台(推荐)
安装artem的最简单方法是通过cargo
进行
cargo install artem
它将自动将artem
添加到您的PATH变量中,因此可以像在使用部分中所示的那样使用。
如果未安装cargo
,请访问cargo书籍以获取安装说明。
Linux
基于Debian的发行版(例如Ubuntu)
对于基于Debian的发行版,如Ubuntu,请从发布页面下载.deb
文件,并用以下命令安装:
sudo dpkg -i artem.deb
.deb
软件包还包含tab补全(适用于bash、zsh和fish)和man页面。
基于Archlinux的发行版
artem
作为AUR软件包可用。您可以使用您喜欢的aur助手安装它,例如使用yay
yay -S artem
这将从源代码构建它。或者,它也提供预编译的二进制文件(artem-bin
)。
yay -S artem-bin
其他发行版
在其他发行版上使用发布标签中提供的二进制文件。
或者,如果已安装brew
,您也可以使用brew
安装它。有关更多信息,请参阅MacOS Homebrew部分。
MacOS
使用Homebrew
警告 由于与Homebrew合作的困难,现在不再推荐通过Homebrew安装
artem
。如果您希望维护此tap,请与我联系。
brew install finefindus/tap/artem
homebrew版本还有额外的优势,即安装man页面和bash、zsh和fish的tab补全。
二进制文件
或者,在发布标签中提供了二进制文件(适用于x86_64和Arm)。不建议使用这种方法安装,而不是使用cargo
。
Windows
要安装Windows版本,不使用cargo
,请从发行标签下载gnu或mscv编译的.zip
文件,并解压.exe
文件。需要注意的是,您需要手动将.exe
添加到PATH变量中。
Shell 完成功能
artem
提供了shell完成功能和man页面。当使用homebrew版本、.deb
软件包或aur版本时,它们会自动安装,而对于使用具有shell完成功能的二进制文件,压缩发行文件中的完成文件需要复制到正确的位置。假设压缩文件已解压,请使用以下命令将文件复制到Unix-like系统的正确位置:
Shell 完成功能和man页面
对于 bash
#copy the bash completion file
sudo cp completions/artem.bash /etc/bash_completion.d/
对于 zsh,将文件添加到$fpath
目录
#copy the zsh completion file
cp completions/_artem $fpath
对于 fish,将文件添加到fish完成功能目录
#copy the fish completion file
cp completions/artem.fish $HOME/.config/fish/completions/
对于 Windows,将. /path/to/_artem.ps1
(包括点)添加到PowerShell 配置文件。
man页面
artem
还在doc
目录中提供了二进制发行版的man页面。要使用man
的-l
标志查看本地文件。
#view the local man page
man -l doc/artem.1
从源代码构建
假设您已安装rust/cargo,可以使用以下命令构建项目:
cargo build --release
--release
标志禁用调试选项,提高性能。
如果未安装rust,请访问rust主页获取安装说明。
功能
这将禁用默认功能,同时启用所有其他指定功能
cargo build --release --no-default-features --features FEATURES
有关功能使用方法的更多信息,请参阅cargo手册。
目前有以下功能可用:
web_image
接受图像URL作为输入(默认启用)
贡献
欢迎拉取请求。对于重大更改,请先打开一个问题来讨论您想进行哪些更改。请注意,可能需要一些时间才能得到回复。
致谢/灵感
该项目受到了jp2a以及关于ASCII艺术的编码列车视频的极大启发。
还要感谢ripgrep间接帮助灵感的构建设置。
以下图像用于测试/示例
待办事项
-
更好地平均多个像素的RGB值
-
使用当前终端大小自动调整图像
-
支持ANSI终端颜色
-
将输出转换为彩色HTML
-
使用多线程
-
添加测试
-
添加更多测试
-
一次转换多个文件
-
从OUT_DIR自动复制完成文件到部署/资产
-
更改名称
-
发布
潜在想法
-
使用边缘检测和方向ASCII
-
实现更好的缩放
许可
依赖项
~6–18MB
~202K SLoC