Unofficial reimplementation of libemoji.js and libemoji in Rust.
npm i @hideki0403/emoji.js
# or
yarn add @hideki0403/emoji.js
# or
pnpm i @hideki0403/emoji.js
import { generate } from '@hideki0403/emoji.js'
import fs from 'fs'
const buffer = generate('絵\n文字', {
width: 128,
height: 128,
// ... See below for other options
})
fs.writeFileSync('emoji.png', buffer)
Default: 128
The width of the generated image.
Default: 128
The height of the generated image.
Default: false
If true
, the width of the generated image will be flexible, allowing you to create wide emojis. The width
option will be ignored.
Default: #000000
The color of the emoji.
Default: #00000000
The background color of the emoji.
Default: center
Enum: left
, center
, right
The alignment of the text.
Default: false
If true
, the text size will be fixed.
Default: false
If true
, the text will not be stretched.
Default: false
If true
, the outline will not be drawn.
Default: 8
The width of the outline.
Default: #ffffff
The color of the outline.
Default: undefined
The path to the font file.
Default: undefined
The typeface name of the font.
Default: png
Enum: png
, jpeg
The format of the generated image.
Default: 100
The quality of the generated image.
これまで他のプロジェクトで絵文字生成にlibemoji.jsを使用させて頂いていたのですが、ラッパー先のlibemojiはLinuxのみ対応であることや、libemojiがSkiaに依存しており、Skiaのビルドから行わなければならない (ビルドには1時間以上掛かる) ということが判明しました。
上記に加え、libemoji.jsをWindows/Macに対応させるにはlibemoji自体から対応しなければならないことや、CI上で別々のプラットフォーム向けにSkiaをビルドするには非常に手間が掛かること等を踏まえ、Skiaがプレビルドされており、なおかつSkiaへのバインディングが存在するRustでlibemojiおよびlibemoji.jsを再実装し、Windows/Macに対応することにしました。
emoji.jsを開発するにあたり、libemojiおよびlibemoji.jsの様々な箇所を参考にさせて頂きました。
この場を借りて、libemojiおよびlibemoji.jsの開発者の方々に感謝申し上げます。