Rain

前尘旧事,几孤风月,似水长眠; 世无定事,问尽风流,只为一笑

Flash批量产生缩略图

今天想把网站上的上万个flash游戏生成缩略图,并希望把drupal站点上的falsh的teaser能够用图片来表示,这得分两个问题,第一是将flash生成缩略图文件,第二个是将flash node与image node结合生成一种新的结点类型或者对现有的flash进行改造产生一种新的数据表示方法.

事情得一步步来,晚上打完球后研究了一下flash生成缩略图的问题,php下面看样子是没指望了,没有这样的包。asp下面好象有一个,不过我考察了向个包后,对批量处理flash文件使用了一个另外的包,包名叫swftoimage.dll,能够在asp下使用,对于我来说,反正不用asp的网页文件上传,所以直接取结果,希望在最短的时间内生成能用的图片。好在这个功能库比较强大,所以我采用了vbs文件直接生成。

1,将所有flash移至一个目录 A,在目录A下面建立一个子目录 A/img用来装生成的flash图片。

2,使用下面的脚本文件,是vbs文件。这个很容易理解的了。

  Set SWFToImage = CreateObject("SWFToImage.SWFToImageObject")
  SWFToImage.InitLibrary "demo", "demo"
  Dim WshShell, fs, f, fc, f1, tsFile
  Set WshShell = WScript.CreateObject("WScript.Shell")
  sCurrentFolder = WshShell.CurrentDirectory
  Set fs = CreateObject("Scripting.FileSystemObject")
  Set f = fs.GetFolder(sCurrentFolder) ' current directory
  Set fc = f.Files
  Set fs = Nothing
' converting SWF files to JPEG image files
For Each f1 in fc
 if UCase(Mid(f1.name, InstrRev(f1.name, ".") + 1)) = "SWF" then
  SWFToImage.InputSWFFileName = f1.name
  SWFToImage.FrameIndex = 20 ' 您用来获取的flash的帧
  SWFToImage.ImageOutputType = 1 ' set output image type to Jpeg (0 = BMP, 1 = JPG, 2=GIF)
  SWFToImage.ImageWidth=180 '生成的flash的宽
  SWFToImage.ImageHeight=120 '生成的falsh的高,当然,您也可以使用定宽等各种方式
  SWFToImage.Execute
  SWFToImage.SaveToFile "img/" & f1.name & ".jpg" '这儿是生成图片的路径
End If
Next
Set SWFToImage = nothing

 3,这个库比较强大,可以自定义选取的帧,并且他会算出帧数,你可以用比例来取,所以很容易就能找到有内容的帧。你点一下文件 flash.vbs,立即就能看到成千上万的图片喽。

粤ICP备06043998号 | 未经站长同意,请勿随意转载本站内容 | 站点地图 | 友情链接 | 与我联系 | QQ:2 1 0 7 3 4 5 2