update:俺确實夠愚蠢了,竟然打包錯了。半夜打包的,看來真有點頭昏。非常抱歉,已經更正下載下傳位址。
swfheader是一個處理swf檔案的工具腳本,可用于讀取swf檔案頭資訊、壓縮和解壓縮swf檔案。很早以前釋出過一個0.01版。最近複審了代碼,發現了一個愚蠢的讀二進制檔案錯誤導緻沒辦法正确的解壓或者壓縮swf檔案。今天更正了此bug,重構了部分代碼并做了更多測試,已經可以正常使用。
項目位址:
<a href="http://code.google.com/p/swf-util/">http://code.google.com/p/swf-util/</a>
項目描述:
一個輕量級的純ruby實作的swf檔案處理腳本,可以讀取swf檔案頭資訊(大小、幀率、長寬、是否壓縮、flash版本資訊等)、壓縮swf檔案和解壓縮swf檔案。基于apache license2協定釋出。
示例
gem install swfheader-0.10.gem
指令安裝swfheader即可使用。
1、讀檔案頭資訊:
require 'swfheader'
header=swfutil::read_header("c:/test.swf"))
header.signature # 标志字元 cws表示壓縮的swf檔案,fws表示未壓縮的
header.compression #compressed or uncompressed
header.size #檔案大小
header.nbits #twips為機關的畫面尺寸
header.xmax
header.ymax
header.width
header.height
header.version #flash版本
header.frame_date #幀率
header.frame_count #總幀數
header.inspect #資訊描述字元串
header.inspect一個示例輸出:
signature: cws
version: 8
compression: compressed
size: 5737111
nbits: 14
xmax: 7200
ymax: 5760
width: 360
height: 288
framerate: 25
framecount: 10409
2、解壓縮swf檔案,如果源檔案本身沒有被壓縮那麼将抛出異常:
swfutil::decompress_swf("c:/test.swf","c:/test_decompressed.swf")
3、壓縮swf檔案,如果源檔案已經被壓縮将抛出異常:
swfutil::compress_swf("c:/test.swf","c:/test_compressed.swf")
文章轉自莊周夢蝶 ,原文釋出時間2008-10-11