sprator (Sprator-ts) は、 torin (@yurkth) 氏が作成したソフトウェア Sprator のアルゴリズムを TypeScript で再実装したライブラリです。
オリジナルのソースコードは C++ で書かれており、Siv3D を用いて GUI アプリケーション化されています。下はそのスクショです。とてもかわいいですね。
ソース Sprator
セルオートマトン で生成されているため、たくさんのスプライトを簡単に生成できます。
ライブラリを使うと Node.js 上でスプライトを生成できます。結果は Buffer として取得できます
import { generate } from 'sprator';
const buffer = generate('seed', 10, 16, 'cyan', 'blue', 'white'); // シード値, 大きさ, 色を与えて生成する
パラメータについては Sprator Server を参照して下さい
npm でインストールできます
npm install sprator
Node.js v10 以上が必要です
Express 製の 小さなウェブサーバ です。ローカルで立ち上げたい場合は、
npm start
とすれば、 http://localhost:3000 でアクセスできます
こちらのサーバはあらゆる URL の GET リクエストを受け付けます。例えば /logo.png
を付けてアクセスすれば、ブラウザから保存する場合に便利です
利用できるパラメータは全て GET クエリとして送信します。下の一覧を参考にしてください
セルオートマトンの初期状態を決定する任意の文字列です。与えられた文字列をハッシュしたあと16進数として解釈し、2進数に変換して、それぞれのビットをセルに対応させます
ヒント:スプライトは左右が鏡になっており、かつ上端と左端と下端は枠線をつけるために常に0になるので、10 ドットの場合のセルオートマトンは
(10/2-1) * (10-2) = 32
マス(32bit)になります つまり16進数に換算するとちょうど8桁までは有効ですが、それより右の数値は無視されます。また、シード値の長さが足りない場合は0として扱われます
Default: 空の文字列
スプライトのドット数を表します。6以上の偶数である必要があります
Default: 10
ピクセルパードット
出力されるビットマップが1ドットあたり何ピクセルで描画されるかを表します。例えば dot=10 かつ ppd=4 であれば、模様の大きさは 40px 四方になり、さらに 3 ドット分のマージンがつくので、 (10 + 3*2) * 4 = 64px
四方になります
ヒント:マージンを加えた正方形の一辺は、丸く切り取られても見切れないよう、元の正方形の外接円に内接する正方形の一辺よりも大きくなるように、整数の値を周囲に加えた長さになります。 外接円の内接円の一辺は元の正方形の √2 ≒ 1.41 倍になので、10 ドットの場合は 14.1 ドットになるはずですが、 マージンの長さが
(14.1 - 10) / 2 = 2.05…
ドットでは端数が出てしまうために、切り上げして 3 ドットと計算されます。 現状、この計算方法は固定されているため、クエリでは変更できません
Default: 10
塗り潰し色です。CSS Color が使えます
You must encode
#
(%23
) on URL.
Default: #228b22
枠線の色です。CSS Color が使えます
Default: #2f4f4f
背景色です。CSS Color が使えます
Default: #000000
Sprator is licensed under the MIT license. See the LICENSE for more information.