关于 ascii-art
ascii-art 是将图像、视频和文本转换为 ASCII 风格作品的技能,提供多种渲染样式、颜色和导出格式;图像与视频还可生成交互式输出。
主要功能
- 01转换图像、视频和文本
- 02多种 ASCII 渲染样式
- 03颜色与背景选项
- 04导出为图像、文本和网页格式
- 05交互式与 React TSX 导出
适用场景
- 01将纯文本制作成文字横幅
- 02按指定样式转换照片
- 03将视频作品导出为 GIF
- 04根据图像生成交互式作品
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ neethanwu/ ascii-art --skill ascii-art安装后在 Claude Code 中输入/ascii-art确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSE.gitignoreREADME.mdscripts/convert.pysetup.shsave_image.pyscripts/core/exporters.pycolors.pydither.py__init__.pyinteractive_exporter.pypipeline.pyreact_exporter.pytext_render.pystyles.pyvideo_extract.pyscripts/core/interactive/animations.jsreact_template.tsxrenderer.jstests/__init__.pytest_colors.pytest_dither.pytest_styles.pytest_exporters.pytest_integration.pytest_pipeline.py详细介绍
ASCII 艺术转换器
设置
首次使用前,请运行环境设置(可重复执行;首次运行后耗时不到 1 秒):
bash {{SKILL_DIR}}/scripts/setup.sh
输入检测
- 文件路径 → 检查扩展名:
.jpg/.jpeg/.png/.webp/.bmp/.tiff→ 图像,.mp4/.webm/.avi/.mov/.mkv→ 视频,.gif→ 检查是否为动画(视频)或静态图像(图像) - 粘贴/附加的图像 → 在进行任何其他操作前,立即保存。运行:
这会从系统剪贴板(粘贴后图像仍保留在其中)获取图像,将其保存到{{SKILL_DIR}}/scripts/.venv/bin/python {{SKILL_DIR}}/scripts/save_image.py --clipboardascii/tmp/并使用带时间戳的名称,然后将保存路径打印到 stdout。将该输出路径用作--input。 如果--clipboard失败(剪贴板中没有图像),则改为询问:“请提供文件路径(例如~/Downloads/photo.jpg)。”你也可以直接传入已知文件路径:save_image.py <path>。 在磁盘上获得有效文件路径之前,请勿继续询问选项。 - 纯文本(没有文件,或文件不存在)→ 文本(FIGlet 横幅)
- 未提供任何内容 → 询问他们想转换什么
选项提示
解析用户消息,识别预先指定的选项。然后使用 AskUserQuestion 询问未指定的选项。
- “defaults” 或 “just do it” → 跳过提问,使用所有默认值
- “random” 或 “surprise me” → 跳过提问,使用
--random - 已指定所有选项 → 跳过提问
使用 questions 数组(每次最多 4 个问题,每个问题 3 个选项)。在 question 文本中列出所有选项及其编号。将前 3 个设为可选项——用户也可以在自由文本中输入任意编号/名称。不要提供“其他”选项。将默认值设为选项 1。
图像/视频——分两轮提问:
- 第 1 轮(4 个问题):样式 → 颜色 → 导出 → 背景
- 第 2 轮(仅当导出格式为
interactive或tsx时):鼠标模式 → 动画
文本:字体 → 颜色 → 导出 → 背景(单轮)。
图像/视频选项
| 选项 | 选择 | 默认值 |
|---|---|---|
| 样式 | classic、braille、block、edge、dot-cross、halftone、particles、retro-art、terminal | classic |
| 颜色 | grayscale、original、matrix、amber、custom(十六进制/命名颜色) | grayscale |
| 比例 | original、16:9、4:3、1:1、3:4、9:16 | original |
| 背景 | dark、light、transparent | dark |
| 抖动 | none、floyd-steinberg、bayer、atkinson | none |
| 字体大小 | 6-30 px | 14 |
| 导出 | png、html、svg、txt、md、clipboard、interactive、tsx | auto(图像→png,视频→gif) |
| 鼠标模式 | push、attract | push |
| 动画 | none、noise-field、intervals、beam-sweep、glitch、crt | none |
鼠标模式和动画仅适用于 interactive/tsx 导出。只有导出格式为 interactive 或 tsx 时才询问。不要询问 --hover-strength、--area-size 或 --spread——使用默认值。
文本选项
| 选项 | 选择 | 默认值 |
|---|---|---|
| 字体 | standard、doom、banner、slant、big、small、block、lean、mini、script、shadow、speed、ansi_shadow、ansi_regular | standard |
| 颜色 | grayscale、original、matrix、amber、custom | grayscale |
| 背景 | dark、light、transparent | dark |
| 导出 | terminal(stdout)、txt、md、png、html、svg、clipboard | terminal |
interactive/tsx 导出需要图像或视频输入——不支持文本。
消歧
- 作为样式的“block” = 用于图像的 Unicode 块元素(█▓▒░)
- 作为字体的“block” = 用于文本的块状字母 FIGlet 字体
- 要生成块状文本艺术,请使用
--font ansi_shadow或--font block - 自定义颜色:十六进制(
#ff6600)或命名颜色(coral、skyblue)。将创意描述转换为十六进制颜色值。
运行转换
{{SKILL_DIR}}/scripts/.venv/bin/python {{SKILL_DIR}}/scripts/convert.py \
--input "<input>" \
--type <text|image|video> \
--style <style> \
--color <color> \
--background <background> \
--export <format> \
[--dither <algorithm>] \
[--ratio <ratio>] \
[--font-size <pixels>] \
[--cols <number>] \
[--font <font_name>] \
[--custom-color "<hex>"] \
[--mouse-mode <push|attract>] \
[--animation <preset>] \
[--invert] [--random] \
[--fps <number>] \
[--filename <custom_name>]
输出
所有文件都保存到当前工作目录下的 ascii/ 文件夹中(会自动创建)。
- 文本(终端):打印到 stdout 并自动复制到剪贴板。以代码块形式显示。
- 文件导出(png, html, svg, txt, md, gif):显示文件路径。使用 Read 工具以内嵌形式显示图像。
- 交互式 HTML:显示文件路径。建议使用
open <path>在浏览器中查看。 - React TSX:显示文件路径。显示用法:
import { AsciiArt } from './<filename>' - 切勿在终端中预览图像/视频/交互式导出。
错误处理
- 视频处理失败:可能是缺少 ffmpeg 或 opencv。建议:
pip install opencv-python-headless - 图像处理失败:检查文件是否存在且为有效图像格式
- 交互式/tsx + 文本:会打印错误——交互式模式需要图像/视频输入
后续操作
显示结果后,可提供以下选项:尝试其他风格/颜色、调整设置、导出为其他格式或尝试随机模式。记住上次输入的路径,以便重新运行。
评论
支持 Markdown