9

PHPでアニメーションGIFからフレームを抽出する方法を長い間探しています...残念ながら、それらの期間を取得する方法を見つけました...

GIF フレームとその期間を抽出して、それぞれにサイズ変更、回転などを適用し、編集されたフレームで GIF を再生成する必要があります。

ソフトウェア、外部ライブラリ (ImageMagick など) は使用したくありません。PHP のみを使用します

思いついたら聞いてます^^!

4

4 に答える 4

25

I spent my day creating a class based on this one to achieve what I wanted using only PHP!

You can find it here: https://github.com/Sybio/GifFrameExtractor

Thanks for your answers!

于 2012-09-23T17:53:12.777 に答える
5

まあ、私は実際にこのようにすることをお勧めしませんが、ここにオプションがあります。アニメーションGIFは、実際には、区切り文字「\ x00 \ x21 \ xF9\x04」によって連結されたGIFの数にすぎません。それを知っていると、画像を文字列としてPHPにプルし、分解を実行して、変換を実行している配列をループするだけです。コードは次のようになります。

$image_string = file_get_contents($image_path);

$images = explode("\x00\x21\xF9\x04", $image_string);

foreach( $images as $image ) {
  // apply transformation
}

$new_gif = implode("\x00\x21\xF9\x04", $images);

画像の再連結の詳細については100%確信が持てませんが、アニメーションGIFのファイル形式に関するウィキペディアのページは次のとおりです。

于 2012-09-23T14:34:04.147 に答える
1

ソフトウェアや外部ライブラリ (ImageMagick など) は使いたくない

Zend Engine が PHP ランタイムにエクスポートする機能の 90% はライブラリに由来するため、幸運を祈ります。

思いついたら聞いてます^^!

バイナリ データを GIF 形式で解析します。unpack() などを使用できます。

于 2012-09-23T13:39:30.777 に答える