ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルで GIF 画像が動的画像かどうかを判断する方法

PHP_PHP チュートリアルで GIF 画像が動的画像かどうかを判断する方法

WBOY
WBOYオリジナル
2016-07-13 10:17:06788ブラウズ

PHP は GIF 画像が動的画像かどうかをどのように判断しますか

コードは次のとおりです

/*
* 写真が動的な写真(アニメーション)かどうかを判断します
*/
関数 isAnimatedGif($filename) {
$fp=fopen($filename,'rb');
$filecontent=fread($fp,filesize($filename));
fclose($fp);
return strpos($filecontent,chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0')===FALSE?0:1;
}

あるいはこうしてください
PHP を使用して、gif 画像がアニメーション化されているかどうか (複数のフレーム) を判断します

コードは次のとおりです
関数 IsAnimatedGif($filename)
{
$fp = fopen($filename, 'rb');
$filecontent = fread($fp, filesize($filename));
fclose($fp);
return strpos($filecontent,chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0') === FALSE?0:1;
}
echo IsAnimatedGif("51windows.gif");
?>

例 2

gifアニメーションはgif89形式であり、ファイルの先頭がgif89であることがわかります。ただし、多くの透明な画像でも gif89 形式が使用されています
GOOGLE: ファイルに chr(0×21).chr(0xff).chr(0×0b).'NETSCAPE2.0' が含まれているかどうかを確認できます
chr(0×21).chr(0xff)はgif画像の拡張機能部分のヘッダー、「NETSCAPE2.0」は拡張機能を実行するプログラムの名前です
プログラムコードは次のとおりです:

コードは次のとおりです

機能チェック($image){
$content= file_get_contents($image);
if(preg_match("/".chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0'."/",$content)){
true を返します;
}その他{
false を返します;
}
}
if(check('/home/lyy/luoyinyou/2.gif')){
echo「本当にアニメーションしていますね」;
}その他{
echo「アニメーションではありません」;
}
?>

この時点で読み取られたデータ ストリームには chr(0×21).chr(0xff).chr(0×0b).'NETSCAPE2.0' が含まれているため、テストでは 1024 バイトの読み取りで十分であることがわかりました

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/895096.html技術記事 PHP は gif 画像が動的画像であるかどうかをどのように判断するのでしょうか? コード例は次のとおりです。 /* * 画像がアニメーション画像 (アニメーション) であるかどうかを判断します */ function isAnimatedGif($filename) { $fp=fopen($filenam. ..
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。