AsciiImage
把图片转换为 ASCII 字符画:按亮度把像素映射为疏密不同的字符,支持单色或原图着色。进入视口时自上而下解码显现,之后有高光周期性扫过、字符随机闪烁,指针靠近时字符被推开、提亮并乱码,自动适配明暗主题。
Customize
字符颜色
Props
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
src | string | — | 图片地址。跨域图片需服务端允许 CORS,否则无法读取像素,会退回显示原图 |
alt | string | — | 替代文本,提供给读屏软件 |
columns | number | 100 | 每行字符数,越大细节越多 |
characters | string | ' .:-=+*#%@' | 字符梯度,从稀疏到密集排列 |
colored | boolean | false | 是否按原图像素着色 |
color | string | currentColor | 单色模式下的字符颜色,默认继承文字颜色,也可用 CSS 变量 --elyri-ascii-color 覆盖 |
invert | boolean | false | 反转明暗映射(默认深色主题下亮处字符密集,浅色主题下暗处字符密集) |
animated | boolean | true | 进入视口时是否自上而下解码显现 |
duration | number | 1200 | 显现动画时长(毫秒) |
shimmer | boolean | true | 是否有一道斜向高光周期性扫过 |
flicker | number | 0.01 | 每帧随机闪烁的字符比例(0-1),0 为关闭 |
interactive | boolean | true | 指针附近的字符是否被推开、提亮并乱码 |
radius | number | 90 | 指针影响半径(CSS 像素) |
className | string | — | 自定义类名 |
依赖
Canvas 2DIntersectionObserverResizeObserver