スキル自身の言葉で
Slackのサイズと寸法要件に最適化されたアニメーションGIFを作成するためのツールキットです。フレームを組み立てるGIFBuilder、Slack準拠を確認するバリデーター、滑らかな動きのためのイージング関数、一般的な描画タスク用のフレームヘルパーを提供します。絵文字GIF(128×128、3秒未満)とメッセージGIF(480×480)向けに設計されています。
PILのImageDraw primitivesを使用してグラフィックをゼロから作成するか、ユーザーがアップロードした画像を扱います。バウンス、パルス、スピン、フェード、パーティクルバーストといったアニメーションのコンセプトを含みます。単純なプレースホルダー図形ではなく、適切な線の太さ、視覚的な奥行き、色のコントラストを備えた洗練されたクリエイティブなグラフィックの作成に重点を置いています。
仕組み
- 01GIFBuilderを作成する
目的の寸法(絵文字なら128×128、メッセージなら480×480)と、10〜30FPSのフレームレートで初期化します。フレームレートが低いほどファイルサイズは小さくなります。
- 02PIL Primitivesでフレームを生成する
PILのImageDrawの楕円、多角形、線、長方形を使って各フレームを描画します。
- 03滑らかな動きのためにイージング関数を適用する
線形の動きの代わりに、ease_out、bounce_out、elastic_out、back_outといったイージングカーブを使ったinterpolateを使用して、自然な感覚のアニメーションを作成します。
- 04ビルダーにフレームを追加する
各PIL Imageに対してadd_frameを呼び出すか、リストに対してadd_framesを呼び出します。ビルダーはエクスポート前にすべてのフレームを蓄積します。
- 05Slack最適化で保存する
num_colorsを48〜128の間で指定してエクスポートします(色数が少ないほどファイルサイズが小さくなります)。自動最適化のためのoptimize_for_emoji=True、冗長なフレームを排除するためのremove_duplicates=Trueも指定します。
- 06Slackの要件に対して検証する
詳細なフィードバックにはvalidate_gifを、簡易的な合否確認にはis_slack_readyを使用して、GIFが寸法、サイズ、パラメータの制約を満たしているかを確認します。