ダメ人間オンライン

あまり信用しないほうがいい技術メモとか備忘録とかその他雑記

perlでswfファイルの縦横サイズ・publishバージョン取得

phpでswfファイルの縦横サイズ・publishバージョン取得





perlでswfの縦横サイズ簡単に取れんかなーと思って調べてみたらSWF::Headerという便利なモジュールがあったので入れてみた。



cpanでSWF::Headerを入れると必要な他のモジュールも一緒に入ってくれたので特にめんどくさいことはなし。




cpan > install SWF::Header



使い方も実に簡単。




#!/usr/bin/perl

use SWF::Header;

$swf_data = SWF::Header->read_file('./file.swf');




上のような感じでスポポポーンと値がとってこれる。



例えば縦サイズ、横サイズ、バージョンをとってきたい場合は上のコードに下のような感じのを付け加えればおk。




$header_data->{height}
$header_data->{width}
$header_data->{version}



ちなみにFlashLiteのバージョンは1.1とか3.0とかあるけどその数字が上のversionに入ってるわけではなく下記のような対応になってる。




  • Flash Lite 1.0/1.1

    • Flash 4相当



  • Flash Lite 2.0

    • Flash 7相当



  • Flash Lite 3.0

    • Flash 8相当






他に取ってこれる値は以下。

cpan


  • signature => 'FWS' or 'CWS'

  • version => Shockwave language version

  • filelen => Length of entire file in bytes

  • xmin => Stage left edge, in twips

  • xmax => Stage right edge, in twips from left

  • ymin => Stage top edge

  • ymax => Stage bottom edge, in twips from top

  • rate => Frame rate in fps

  • count => total number of frames in movie

  • width => calculated width of stage (in pixels)

  • height => calculated height of stage (in pixels)

  • duration => calculated duration of movie (in seconds)

  • background => calculated background color of movie (in html format)