Posted on 2008-10-11 23:38
dennis 閱讀(1777)
評論(0) 編輯 收藏 所屬分類:
動態語言 、
my open-source
update:俺確實夠愚蠢了,竟然打包錯了。半夜打包的,看來真有點頭昏。非常抱歉,已經更正下載地址。
swfheader是一個處理swf文件的工具腳本,可用于讀取swf文件頭信息、壓縮和解壓縮swf文件。很早以前發布過一個0.01版。最近復審了代碼,發現了一個愚蠢的讀二進制文件錯誤導致沒辦法正確的解壓或者壓縮swf文件。今天更正了此bug,重構了部分代碼并做了更多測試,已經可以正常使用。
項目地址:
http://code.google.com/p/swf-util/
項目描述:
一個輕量級的純Ruby實現的swf文件處理腳本,可以讀取swf文件頭信息(大小、幀率、長寬、是否壓縮、flash版本信息等)、壓縮swf文件和解壓縮swf文件。基于Apache License2協議發布。
示例
下載
swfheader0.10.zip后,解壓后有README文件和swfheader-0.10.gem,通過
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文件,如果源文件本身沒有被壓縮那么將拋出異常:
require 'swfheader'
SwfUtil::decompress_swf("c:/test.swf","c:/test_decompressed.swf")
3、壓縮swf文件,如果源文件已經被壓縮將拋出異常:
require 'swfheader'
SwfUtil::compress_swf("c:/test.swf","c:/test_compressed.swf")