Sublime Text 2 でアニメーションGIFを再生する

この記事は Sublime Text 2 Advent Calendar 2012 の 15日目です。

Sublime Text 2 Advent Calendar 2012 - Adventar

VimはXPM形式の画像ファイルを画像として表示することができます。これは、テキストエディタシンタックスハイライトを利用して、1文字を1ピクセルとみなして描画することで実現しています。
そして Sublime Text 2 でも当然、同じ方法で画像を表示することが出来ます。今回はさらにアニメーションGIFを再生してみました。

再生時の動画

以下のGIF動画は実際に再生しているところを録画したものです。nyancat の動画を再生しています。nyancat をご存知の方も多いでしょう。

アニメーションGIFを再生する手順は以下の通りです。 上の動画は手順2から録画しています。

  1. 後述するパッケージ(SublimeMediaPlayer)を導入する
  2. コマンドパレットで "MediaPlayer: Play GIF Select" を選択する
  3. 画面下部にテキストボックスが表示されるので、再生したいGIFファイルのパスを入力してEnterを押す
  4. しばらく待つと再生が始まります。
  5. アニメーションを終了するには再生しているタブを閉じてください。

nyancatのアニメーションGIFはパッケージに同梱していないので、 LOL Comics - ホーム | Facebook から入手してください。

パッケージ 「SublimeMediaPlayer」

GitHub - chikatoike/SublimeMediaPlayer
SublimeMediaPlayer は上記のURLにあるので、 git clone するなり zip で落すなりしてインストールしてください。
急いで作ったのでけっこうひどいコードです。
今のところアニメーションGIFの再生しかできませんが、時間がなかっただけで、jpegpngといった静止画の表示も技術的には可能です。
GIFアニメーションを読み込むために pyglet というライブラリを使っています。
また、 "MediaPlayer: Play GIF Select" 以外に、"MediaPlayer: Play GIF dinosaur.gif" というコマンドも用意していて、これはリポジトリに同梱している dinosaur.gif を再生します。このgifファイルはpygletのリポジトリにあったものです。

対応するプラットフォーム

pyglet がWindows/MacOSX/Linux に対応しているので、全てのプラットフォームで動作すると考えられますが、Windowsでしか動作確認していません。

おわりに

明日のSublime Text 2 Advent Calendar は yudai tachibana さんです。