コンテンツへスキップ

APNGをGIFに変換

アニメーションPNGは色の美しいGIFのようなものですが、インターネットの半分はそれを静止画として扱います。投稿先でちゃんと動くGIFに、全フレームそのままで変換します。何も保存されません。

  • 保存しません
  • 順番待ちなし
  • 登録不要・透かしなし

使い方

1

アニメーションPNGを追加

たいていは.png、ときどき.apngという名前で、どちらも受け付けます。普通のPNGも使え、1フレームのGIFになります。

2

変換

各フレームをそれぞれのタイミングとともに読み込み、画像から作ったパレットでGIFに書き込みます。256色、またはファイルを小さくするならそれ以下にできます。

3

ダウンロード

1つずつ、またはZIPで保存します。何フレームが引き継がれたかは各行に表示されます。

APNGとは

APNGは、普通のPNGに3種類のチャンクを加えたものです。アニメーションであることを宣言するacTL、各フレームの前に置かれてサイズ・位置・表示時間・前のフレームの処理方法を示すfcTL、そしてフレームのピクセルを持つfdATです。これらは、それを知らないビューアーには普通の静止PNGに見えるように挿入されています。この後方互換性こそが2004年当時の狙いであり、今日の問題でもあります。ヘッダーしか確認しないソフトは、ファイルを「画像」に分類して、その先を見ないのです。

各フレームはファイルの指示どおりに合成されます。フレームはキャンバスの一部だけを覆い、既存の内容に重ねたり置き換えたりすることがあるので、全体の画像を組み立ててからパレットに量子化し、同じ表示時間でGIFに書き込みます。量子化ではフレーム自身から256色を作ってディザリングします。APNGの大半を占めるフラットなイラストやドット絵のスタンプは、ほぼそのままの見た目で引き継がれます。20ミリ秒未満の表示時間は、ブラウザがGIFに対してどのみちそうするように、100ミリ秒に引き上げます。

透過は1ビットのものになり、ピクセルは表示されるか、されないかのどちらかです。柔らかい影の付いたAPNGスタンプは、半分の不透明度で切られたくっきりした輪郭になります。これは変換ではなくGIFの限界で、回避するには本物のアルファを持つ形式、つまり変換先が再生できるならWebPを使うしかありません。

ほかの目的には

ffmpegはAPNGを読み込み、2パスのパレットでGIFを書き出せます:ffmpeg -i in.png -vf "split[a][b];[a]palettegen[p];[b][p]paletteuse" out.gif。このページにはないディザリングの選択肢もあり、グラデーションでは差が出ます。

変換先がAPNGを再生できるなら(現行のブラウザはすべて対応し、iMessageや多くのスタンププラットフォームも同様です)、APNGのままにしてください。本物の透過とフルカラーを持っており、GIFはより大きく質の劣る、互換性のためのコピーにすぎません。

よくある質問

PNGがアニメーションかどうかは、どうすれば分かりますか?

Chrome、Firefox、Safariで開いてみてください。3つともAPNGを再生できるので、そこでは動くのに投稿先で動かないなら、それはAPNGで、このページの出番です。ここでも各行に見つかったフレーム数が表示されます。

GIFでもタイミングは保たれますか?

はい。どちらの形式も各フレームが表示時間を持っており、それをそのまま写すので、12フレームの弾むアニメーションは同じ速さの12フレームのままです。

GIFのほうが粗く見えるのはなぜですか?

APNGのフレームは1600万色となめらかな透過を持ちますが、GIFのフレームは256色で、半透明はありません。パレットは画像から作ってディザリングをかけるため、そこから粒子感が生まれます。APNGによくあるフラットなイラストなら、ほとんど目立ちません。

アニメーションでないPNGはどうなりますか?

1フレームのGIFに変換され、行にもそう表示されます。静止画なら、ほぼ間違いなくPNGのままにしておくべきです。小さくしたいならPNG WebP変換を使ってください。

ファイルはどこかに保存されますか?

いいえ。どの段階でも何も保存されません。

DiscordやSlackでスタンプが静止画になるのはなぜですか?

多くのアップロードフォームはPNGのヘッダーを見て静止画として扱い、最初のフレームだけを残します。同じサービスでもGIFは最後まで再生されます。変換が確実な解決策で、対応している場所ならWebPという選択肢もあります。

ご注意: GIFは1フレームあたり256色で、半透明を持てないため、柔らかい輪郭は硬くなり、グラデーションには少し縞が出ます。APNGのフレームを読み込むには最新のChrome、Edge、Operaが必要です。それ以外では最初のフレームが静止画として書き出され、行にそう表示されます。

このツールをあなたのサイトに設置

ブログ、授業のページ、ヘルプ記事などに無料で設置できます。コードを1つ貼り付けるだけで、訪問者がそのページ上でツールを使えるようになります。