キャンバスGIF
npm i canvas-gif
Canvas-GIF とは何ですか?
Canvas-gif は、node-canvas を使用して GIF のフレームを操作できるようにする NPM ライブラリです。
Canvas-GIF は非推奨になりました。私は Node.js をほとんど使用しません。ましてや、このようなパッケージを使用することはありません。開発を引き継ぐことに興味がある場合は、自由にフォークして自分で公開してください。しかし、この図書館での私の時間は終わりを迎えました。
どのように機能するのでしょうか?
次の手順に従うことで機能します。
- 入力 GIF をバッファとして読み取ります (オプション: オプションが有効であり、graphicsmagick が使用可能な場合は GIF を結合します)
- GIFをUInt8Arrayにデコードします。
- GIF 内のフレームごとに、キャンバス インスタンスを作成します。
- UInt8Array をキャンバス画像データに変換し、コンテキストに配置します。
- コンテキストとその他の関連情報を、コンテキストの操作を続けるユーザー定義の editFrame 関数に渡します。
- 新しく編集したフレームのコンテキストをエンコーダーに追加します
- エンコーダのデータをバッファとして出力して返します。
どうやって活用できますか?
npmを使用して次のコマンドを実行するとダウンロードできます。
そして、それをコード内で使用することができます。その方法の例については、サンプル フォルダーを確認してください。
オプション
これらのオプションはすべてオプションです。おお
- coalesce - GIF がエンジンによって処理される前に GraphicsMagick によって結合されるべきかどうか。 GraphicsMagick がインストールされている必要があります。インストールされていない場合、オプションが true の場合、エラーがスローされ、コードは元のファイル バッファで続行されます。デフォルトはfalse
- 遅延- 各フレーム間の遅延量 (ミリ秒)。デフォルトは0
- repeat - GIF を何回繰り返すか。値が 0 の場合は、永久に繰り返します。デフォルトは0
- アルゴリズム- エンコーダーが使用するアルゴリズム。 neuquantまたはoctreeのいずれかを指定できます。デフォルトはneuquant
- optimiser - エンコーダーが組み込みのオプティマイザーを使用するかどうか。デフォルトはfalse
- fps - 1 秒あたりにレンダリングするフレームの量。デフォルトは60
- 品質- GIF の品質。 1 ~ 100 の値。数値が大きいほど、GIF の品質が高くなります。デフォルトは100
よくあるエラー
合体中にエラーが発生しました: ストリームは空のバッファーを生成します。バッファをファイル バッファに戻します!
このエラーは、合体オプションが有効になっているにもかかわらず、GraphicsMagick が不足している場合に発生します。ここからインストールしてください。エラーが解決しない場合は、お気軽に問題として報告してください。全力でサポートさせていただきます。
このプロジェクトは独自のクィア ライセンス v1.1 - tl;dr を使用しています。ここを参照してください:]
やるべきこと