検索
ホームページphp教程php手册php读取flash文件高宽帧数背景颜色的方法

php读取flash文件高宽帧数背景颜色的方法

   本文实例讲述了php读取flash文件高宽帧数背景颜色的方法。分享给大家供大家参考。

  具体实现方法如下:

  代码如下:

  /*

  示例:

  $file = '/data/ad_files/5/5.swf';

  $flash = new flash();

  $flash = $flash->getswfinfo($file);

  echo "

  文件的宽高是:".$flash["width"].":".$info["height"];

  echo "

  文件版本是".$flash["version"];

  echo "

  文件帧数量是".$flash["framecount"];

  echo "

  文件帧速率是".$flash["framerate"];

  echo "

  文件背景颜色是".$flash["bgcolor"];

  */

  class flash

  {

  //是否返回背景色

  public $need_back_color = false ;

  //是否返回版本

  public $need_version = false ;

  //是否返回帧速率

  public $need_framerate = false ;

  //是否返回帧数量

  public $need_framecount = false ;

  public function __construct()

  {

  }

  public function getswfinfo( $filename )

  {

  if ( file_exists($filename) ) {

  //echo "文件的修改时间:".date("m d y h:i:s.", filemtime($filename))."

  ";

  } else {

  //echo "目标文件不存在!";

  return array( "error" => $filename ) ;

  }

  //打开文件

  $rs = fopen($filename,"r");

  //读取文件的数据

  $str = fread( $rs , filesize( $filename ) ) ;

  ///

  if($str[0] == "f")

  {

  //echo "

  文件已是解压缩的文件:";

  } else {

  $first = substr($str,0,8);

  $last = substr($str,8);

  //

  $last = gzuncompress($last);

  //

  $str = $first . $last ;

  $str[0] = "f";

  //echo "

  解压缩后的文件信息:";

  }

  $info = $this->getinfo( $str );

  fclose ( $rs ) ;

  return $info;

  }

  private function mydecbin($str,$index)

  {

  $fbin = decbin(ord($str[$index]));

  while(strlen($fbin)

  return $fbin;

  }

  private function colorhex($data)

  {

  $tmp = dechex($data);

  if ( strlen($tmp)

  $tmp='0' . $tmp ;

  }

  return $tmp;

  }

  private function getinfo( $str )

  {

  //换算成二进制

  $fbin = $this->mydecbin( $str , 8 ) ;

  //计算rec的单位长度

  $slen = bindec( substr( $fbin , 0 , 5 ) );

  //计算rec所在的字节

  $recsize = $slen * 4 + 5 ;

  $recsize = ceil( $recsize / 8 ) ;

  //rec的二进制

  $recbin = $fbin ;

  for( $i = 9 ; $i

  {

  $recbin .= $this->mydecbin( $str ,$i );

  }

  //rec数据

  $rec = array();

  for( $i = 0 ; $i

  {

  $rec[] = bindec( substr( $recbin , 5 + $i * $slen , $slen ) ) / 20;

  }

  if ( $this->need_back_color ) {

  //背景颜色

  for( $i = $recsize + 12 ; $i

  {

  if ( ord( $str[$i] ) == 67 && ord( $str[$i+1] ) == 2 )

  {

  $bgcolor = $this->colorhex(ord($str[$i+2])).$this->colorhex(ord($str[$i+3])).$this->colorhex(ord($str[$i+4]));

  break;

  }

  }

  }

  if ( $this->need_version ) {

  //版本

  $version = ord( $str[3] );

  }

  if ( $this->need_framerate ) {

  //帧速率

  $framerate = ord( $str[$recsize + 8] ) / 256 + ord( $str[$recsize + 9] ) ;

  }

  if ( $this->need_framecount ) {

  //帧数量

  $framecount = ord( $str[$recsize + 11] ) * 256 + ord( $str[$recsize + 10] );

  }

  return array ( "bgcolor" => $bgcolor ,

  "version" => $version ,

  "framerate" => $framerate ,

  "framecount" => $framecount ,

  'width'=>$rec[1],

  'height'=>$rec[3]

  );

  }

  }

  ?>

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール