1.0.4 • Published 7 months ago

img2asciix v1.0.4

Weekly downloads
-
License
MIT
Repository
-
Last release
7 months ago

Img2ASCIIx

Screenshot_2025-02-13-17-23-09-09_a87fd7db6caa850b517aa6fa9d2fcd0e.jpg

License npm

一个轻量级的 JavaScript 图片转 ASCII 艺术库,支持浏览器和 Node.js 环境。

安装

浏览器环境

直接引入打包后的文件:

<script src="dist/img2asciix.bundle.js"></script>

或者使用CDN引入:

// JsDelivr引入
<script src="https://cdn.Jsdelivr.net/npm/img2asciix/dist/img2asciix.bundle.js"></script>

// JsDelivr中国站
<script src="https://jsdelivrcn.dev.tc/npm/img2asciix/dist/img2asciix.bundle.js"></script>

Node.js 环境

!TIP Nodejs环境下需要提供polyfill,否则抛出异常,不支持Image对象、不支持Canvas。

需要先安装依赖:

npm install img2asciix

然后通过 require 引入:

const AsciiArt = require('img2asciix');

快速开始

// 浏览器中使用
AsciiArt.convert('image.jpg', { width: 80 })
  .then(ascii => console.log(ascii))
  .catch(console.error);

// Node.js 中使用
const { readFileSync } = require('fs');
const imageBuffer = readFileSync('image.jpg');
const imageData = 'data:image/jpeg;base64,' + imageBuffer.toString('base64');

AsciiArt.convert(imageData, { width: 100 })
  .then(console.log)
  .catch(console.error);

配置选项

参数类型默认值描述
widthnumber100输出宽度(字符数)
heightnumber自动计算输出高度(字符数)
asciiRampstring@%#*+=-:.灰度映射字符集(从密到疏)

示例输出

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@%%%%%%%%%#####*********+++++=======::::::::...........
@@@%%%%%%%%%#####*********++++++======::::::::.............
@@%%%%%%%%%#####*********++++++======::::::::..............
@%%%%%%%%%#####*********++++++======::::::::...............

注意事项

  1. 需要确保图片源允许跨域访问
  2. 输出高度默认保持原图比例
  3. Node.js 需要安装 canvas 依赖
  4. 字符集建议使用等宽字体显示

开发文档

架构设计

模块结构

(function(global, factory) {
  // UMD 模块定义
})(global, function() {
  // 核心逻辑
  return {
    convert: convert
  };
});

核心 API

convert(image, options)

参数

  • image: 支持类型
    • String: 图片 URL(支持 data URL)
    • Image 对象
  • options: 配置对象

处理流程

  1. 图片加载 → 2. 创建画布 → 3. 绘制缩放 → 4. 像素分析 → 5. ASCII 生成

关键函数

createCanvas(width, height)

支持环境检测:

  • 浏览器环境:使用 document.createElement
  • Web Worker:使用 OffscreenCanvas
  • Node.js:需要安装 canvas 依赖
1.0.4

7 months ago

1.0.3

7 months ago

1.0.2

7 months ago

1.0.1

7 months ago

1.0.0

7 months ago