suchen
Heimphp教程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]

  );

  }

  }

  ?>

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.