提取SWF中的图像文件程序源代码
- 格式:doc
- 大小:23.50 KB
- 文档页数:3
swf文件的数据结构以及转为exe或从exe中剥离出swf的源代码SWF文件是由一个文件头,以及一系列的标签组成的。
标签类型有两种:定义型标签和控制型标签。
定义型标签把所有物体定义成一个个角色,这些角色存在字典里面。
控制型标签操作这些角色,并且控制影片的流程。
swf 的长度单位使用twips(缇),1像素=20缇,这样,分数的像素可以使用整数的缇表示。
swf 的字符串是以00结束的byte序列,采用utf-8编码。
下面介绍swf文件的数据结构。
一、文件头文件头的结构见表1。
表1:SWF文件头---------------------------------------------------------------------------字段字节数说明---------------------------------------------------------------------------标识符 3 “FWS”或“CWS”的ascii码版本号 1 版本,例如:1表示swf1,6表示swf6文件长度 4 长整形,文件的字节数,低位在前帧大小RECT结构SWF场景的大小,单位为twip(缇,1缇=1/20像素,与VB不同)帧速度 2 以8.8表示的浮点数(也有文章说这是一个整形数),默认=000C帧数 2 整形,影片总帧数,低位在前---------------------------------------------------------------------------说明:1.文件头以标识符开始,不是“FWS”就是“CWS”。
FWS表示该文件未压缩;CWS 表示文件从 RECT 字段开始(第 9 个字节开始)至文件结尾的所有内容,都是使用开放标准 ZLIB 压缩过的(CWS 是在 SWF6 以后才被使用的。
对其解压缩可以使用 zlib1.dll 中提供的uncompress)。
第一篇 Flash的SWF文件的搜寻和下载一、查看源代码当浏览网页见到诱人的Flash时,点击右键,在右键菜单中选择“查看源文件”(或点击“查看”菜单中的“源文件”),记事本就带着密密麻麻的源代码显示在面前。
点击菜单“工具/查找”(或按下快捷键“Ctrl+F”),在弹出的对话框中输入“.SWF”,即可查找到Flash的SWF文件,复制下载链接地址,注意看是绝对链接还是相对链接。
打开下载工具软件FlashGet或者NetAnts,粘贴链接地址URL就可以轻松地下载这个SWF文件了。
二、利用全屏欣赏的URL有很多网站为了方便网友看Flash作品,常常提供了全屏欣赏,这种方式最受笔者的欢迎了,只要直接在链接上按鼠标的右键,选择“复制快捷方式”,然后到下载工具上粘贴地址链接URL就可以了。
一些具有在IE中添加右键功能的下载工具就更简单了,如下载软件FlashGet,在链接上按鼠标右键,直接选择“使用网际快车下载”,这个Flash作品就乖乖地归到硬盘上去了。
三、在本机的临时文件夹中查找当你看过一个Flash后,IE便会自动将它存到临时文件夹中——C:\Windows\Temporary Internet Files——注意,这是针对Win98而言。
然后查询其中的.SWF文件,很快,所有的Flash文件都显示在眼前,只要把它们全部Copy到另外的目录,然后自己慢慢挑吧。
不过你首先要注意的是你的IE 所放临时文件夹的大小,如果太小,或许Flash动画就不会被记录,如果你根本取消了IE临时文件夹,那么这个方法并不适合你。
在Win2000中却不同,因为它根据不同用户设置了不同的各种参数,包括上网的记录,我们必须到以下的目录来查找: 操作系统盘\Documents and Settings\Administrator\Local Settings\Temporary Internet Files 或者: 操作系统盘\Documents and Settings\Default User\Local Settings\Temporary Internet Files 这是一种较为简单的方法,并且无需装任何新软件。
怎样快速抓取网页中的FLASH动画A:有如下几种方法:1、查看网页源代码,找到SWF文件的绝对地址,然后通过下载工具下载;2、在浏览器的缓存文件里找;3、用Flash辅助工具来查找,比如FlashJester Woof v1.0。
*****************************************巧抓网页中的flash现在很多的浏览器都带有储存flash的工具,如果你还用的是ie,没有什么抓flash 的插件的话,那你就不妨试一下这个麻烦的方法具体步骤如下:1、用InternetExplore打开你想抓取的flash动画所在的网页,直到flash动画完整出现;2、点击“收藏→添加到收藏夹”,这时出现选项,一定记住在“允许脱机使用”前面小框里打勾(这步很关键),然后点击“确定”;3、等电脑保存完后,点击“开始→查找→文件或文件夹”,在查找的名称里填入“*.swf”,搜索范围限定为“C:\WINDOWS\TemporaryInternetFiles”,查找之后你会惊喜地发现,你要的flash动画就在里面,而且是以单独的swf格式存在,要怎么用就看你了!******************************************招式1 查看脱机浏览文件法首先使用IE浏览观察该Flash,接下来依次选择“工具→Internet选项”,在“常规”选项卡中单击“设置”按钮,在打开的窗口中单击“查看文件”,这样系统会在资源管理器中打开所有脱机浏览文件。
由于这里文件众多,我们可以首先在空白区域单击右键,选择“排列图标→类型”菜单,这样可以很快定位到类型为“Shockware Flash Object”的文件,我们要保存的Flash文件就乖乖地躺在这里了,我们只需将其复制到硬盘的其他区域即可。
这个办法不仅不需要工具,而且还可以批量保存Flash,是不是比较简单呢?编辑提示:为了能够更快速的定位要保存的Flash文件,我们可以首先清空Internet历史文件夹,再用IE访问要下载的Flash。
一、分解获取素材一部精彩的动画,离不开好素材的支持。
那么我们如何才能将别人制作的SWF文件中精彩的素材“剥夺”出来呢!这就离不开SWF Browser的支持了。
安装好SWF Browser,双击桌面上建立的快捷方式启动程序。
SWF Browser 的界面很简洁,左侧为一个类似资源管理器的目录录,而右侧的大部分区域则是用来播放预览Flash动画的。
在左侧的目录树中浏览到要分解的SWF文件所在文件夹,然后在文件中选中要分解的具体某一个SWF文件,这样在预览区别则可以看到该文件了。
如果我们想先欣赏一下该SWF文件,那么很简单,只需要单击主界面中间竖着的工具条最上方的黑色小三角“播放”按钮,这样选中的动画就开始在右侧进行播放了(图1)。
开始分解了嘿,还真不错,通过刚才的欣赏发现里面有很多不错的图片和配音,赶紧将它们占为已有吧。
单击主界面上方的“SWF 分析状态:空闲-点击这里分析当前影片”,或者按下快捷键“Ctrl+P”对当前影片进行分解。
根据要分解的SWF文件的大小,分解的时间会略有不同;稍候片刻,就会在程序主界面右侧增加一个项目列表(如图2),这里包括了声音事件、声音流、图形、影片剪辑以及SWF结构等。
例如我们要保存一个音乐文件,那么只需要在声音事件中点击要提取出来的文件,这样就会自动弹出“另存为”对话框,设置一个保存的位置以及文件名,这样就可以轻松的将这部分声音提取出来。
将声音提取出来小提示:对于其它素材的提取方法是一样的,不过如果提取的是图片,那么还会有一个图片预览窗口。
另外在保存的时候不再是单击即进行保存,而是需要单击“保存图片”按钮方可(如图3)。
图片也不放过最近推荐:[让浏览器搜索速度暴增十倍的秘密!] [小块头大智慧:微软IE网络霸业十年回眸]二、妙取EXE动画素材通过SWF Browser可以轻松的获取SWF文件中的素材,但现在有一部分动画作成了EXE文件,这样它就无法下手了。
这个时候我们就需要借助Swifty Xena Pro的帮助了。
教你找FLASH动画文件的URL网址
大家可能有这样的体会,在网上看到漂亮的动画,却不知如何下载,也找不到这个文件的URL地址。
下面我就这个问题写一下方法。
一、如何下载动画文件“即.swf格式文件”。
swf动画文件是由FLASH动画软件制作出来的影片文件,由于其逼真的效果及其漂亮的色彩,得到了众多人们的喜爱,制作这些文件的人也被称作“闪客”。
网上的动画文件不像图片文件可以直接点击下载,然后保存到本机中。
这种文件要用软件下载。
如果没有这种软件该如何下载动画呢?
1、首先点击网页上面的工具栏中的“工具”-下拉后出现“internet选项”-删除cookies和删除文件-然后再打开含有这个动画的网页(以上操作是为了删除本机中的缓存文件,这样找动画文件更容易一些,不然如果有已经打开过的动画就会和你要找的混淆,增加寻找难度,将这些先删除掉,再找到的动画文件就是你要找的了。
当然不操作这一步也可)。
2、重新点击网页上面的工具栏中的“工具”-下拉后出现“internet选项”-选择internet临时文件中的“设置”-点击“查看文件”,这时就打开了缓存文件,从里面找flash这个图标,这就是此动画文件,将其复制粘贴到自己的本机中就可以欣赏了,当然,如果要链接到博客中,还必须重新将其上传才能在博客中显示。
Photoshop练习(一)阅读:21次作者:2010-10-28 < 12px >1.计算机图像处理技术能够实现的功能是()。
A.绘制图像B.加工图像C.合成图像D.A、B、C选项全部能实现【答案】D 书本P2-P4图像处理技术包括:①绘制图像;②选取图像;③加工图像;④合成图像;2.以下不是图像大小的常用尺寸单位的是()。
A.像素B.厘米C.像点D.英寸【答案】C 书本P11 倒数第2段图像大小的尺寸单位常用:像素(Pixel),厘米(cm)和英寸(inch)3.可以使图像边缘产生模糊效果,使得图像的合成自然和谐的命令是()。
A.模糊B.磁化C.描边D.羽化【答案】D 书本P13 倒数第2段图像的边缘有模糊的效果是“羽化”4. 以下不是常见的图像文件格式的是()。
A..pptB..psdC..jpgD..bmp【答案】APPT是PowerPoint文档的格式5.如果我们想减少选区,可以选择的功能键是()。
A.Shift键B.Alt键C. Ctrl键D. Del键【答案】 B 书本P13探究问题增加选区:Shift键减少选区:Alt键6.如果要选取色彩分布不均匀的图片中不规则图像,应采用的最佳工具是()。
A. B. C. D.【答案】 A7.以下哪种格式的图像文件属于压缩文件,容量较小,适合于在网上发布()。
A.bmpB.psdC. jpgD. tif【答案】 C 书本P19倒数第2行Jpg是压缩的文件格式,文件容量较小,适合于网上发布。
8.以下不属于“变换”选区的操作的是()。
A.缩放B.斜切C. 扭曲D. 透视E.渲染【答案】 E9.在Photoshop中移动图层,必须使用()工具。
A.选框工具B.魔棒工具C. 移动工具D. 文字工具【答案】 C10.在Photoshop中新建图像文件默认的背景颜色是()。
A.白色B.黑色C. 红色D. 蓝色【答案】 A11.在Photoshop中,文字应用了效果后,是否可以再对其内容和效果进行修改?()。
::工具功能:::1、到IE缓存挖掘宝贝(swf、flv、jpg、gif、mp3、wma、htm、自定义类型::2、清除IE缓存::3、自动重命名功能---IE cache里好多重名资源啊,现在好了,哈哈::---------------开始(下面代码存为*.bat)---------------------echo offset file_num=0cls::1.文件类型选择-------:startecho 请选择要提取的文件类型echo 1(swf) 2(flv) 3(jpg) 4(gif) 5(mp3) 6(wma) 7(htm) 8(其它类型) 9(清除IE缓存)10(退出) set /p type=if %type%==1 (set filetype=swf)if %type%==2 (set filetype=flv)if %type%==3 (set filetype=jpg)if %type%==4 (set filetype=gif)if %type%==5 (set filetype=mp3)if %type%==6 (set filetype=wma)if %type%==7 (set filetype=htm)if %type%==8 (echo 请输入文件类型,例如bmpset /p filetype=)if %type%==9 (goto :clear_cache)if %type%==10 (Exit)::2.是否删除原文件-------:select_del_or_notecho 提取后是否删除原文件?(y/n)set /p delornot=if %delornot%==y (goto startcopy)if %delornot%==n (goto startcopy)goto select_del_or_not::3.复制文件过程-------:startcopyecho 正在提取文件,请稍候……md %filetype%::在"%userprofile%\Local Settings\Temporary Internet Files\目录中查找所有文件for /f "delims=" %%i in ('dir "%userprofile%\Local Settings\Temporary InternetFiles\*.%filetype%" /s/b') do if not exist "%CD%\%filetype%\%%~nxi" (copy /y "%%i" "%CD%\%filetype%\") else (call :copy_same_name_file "%%~i" "%%~ni" "%%~xi")if %delornot%==y (for /f "delims=" %%i in ('dir "%userprofile%\Local Settings\Temporary Internet Files\*.%filetype%" /s/b') do del /f/q "%%i")goto :last::复制同名文件过程-------:copy_same_name_fileset file_n=%2set file_x=%3set /a file_num+=1::变量file_num自加1echo %file_num%if not exist "%CD%\%filetype%\%file_n%_%file_num%%file_x%" (copy %1 "%CD%\%filetype%\%file_n%_%file_num%%file_x%">nul) else call :copy_same_name_file %1 %2 %3set file_num=0goto :last::清除缓存过程-------:clear_cachefor /f "delims=" %%i in ('dir "%userprofile%\Local Settings\Temporary Internet Files\*.*" /s/b') do del /f/q "%%i":last::原程序使用goto :eofpause。
如何下载网页上的flash现在网上有很多精彩的flash作品,可是这些作品大都是没有源代码的swf 格式文件,并且有的还做了加密,平时只能通过ie浏览器查看。
如何才能更有效率地使用、查看、研究这些flash文件呢?这里我们为大家介绍一些用于分析学习flash作品的工具,希望能为大家的学习提供一些帮助。
第一篇flash的swf文件的搜寻和下载一、查看源代码当浏览网页见到诱人的flash时,点击右键,在右键菜单中选择“查看源文件”(或点击“查看”菜单中的“源文件”),记事本就带着密密麻麻的源代码显示在面前。
点击菜单“工具/查找”(或按下快捷键“ctrl+f”),在弹出的对话框中输入“.swf”,即可查找到flash的swf文件,复制下载链接地址,注意看是绝对链接还是相对链接。
打开下载工具软件flashget或者netants,粘贴链接地址url就可以轻松地下载这个swf文件了。
二、利用全屏欣赏的url有很多网站为了方便网友看flash作品,常常提供了全屏欣赏,这种方式最受笔者的欢迎了,只要直接在链接上按鼠标的右键,选择“复制快捷方式”,然后到下载工具上粘贴地址链接url就可以了。
一些具有在ie中添加右键功能的下载工具就更简单了,如下载软件flashget,在链接上按鼠标右键,直接选择“使用网际快车下载”,这个flash作品就乖乖地归到硬盘上去了。
三、在本机的临时文件夹中查找当你看过一个flash后,ie便会自动将它存到临时文件夹中——c: \windows \temporary internet files——注意,这是针对win98而言。
然后查询其中的.swf 文件,很快,所有的flash文件都显示在眼前,只要把它们全部copy到另外的目录,然后自己慢慢挑吧。
不过你首先要注意的是你的ie 所放临时文件夹的大小,如果太小,或许flash动画就不会被记录,如果你根本取消了ie临时文件夹,那么这个方法并不适合你。
FLASH调用外部SWF、音乐、视频、TXT,HTML一,在Flash中用loadMovieNum函数调用所有外部文件详解在Flash中我们可以通过帧、按钮、影片剪辑来调用外部文件。
调用的外部文件可以包括:外部文本文件、外部程序文件、外部*.swf文件、外部图片文件、外部音乐文件、外部脚本文件等。
现在我们将Flash加载外部文件的五种方法与技巧总结一下,现在本文是第五讲:第四讲回顾:Flash用mySound.loadSound调用外部声音文件加载到场景:/html/image/flash/20081129/2990.html用loadMovieNum()函数调用所有外部文件(一)loadMovieNum()函数详解用法:loadMovieNum("url",level [, variables])功能:在播放原来加载的 SWF 文件的同时将 SWF 文件或 JPEG 文件加载到 Flash Player 中的某个级别。
参数:该函数有3个参数:url、target、variables。
variables 是可选参数。
1.参数url:要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL(路径)。
该函数的此参数和上面loadMovie中的此参数用法完全一致,这里不再作解释。
2.参数level:一个整数,指定 SWF 文件将加载到Flash Player中的哪个级别。
加载的时候,可以这样来写:loadMovieNum("01.swf", 1);loadMovieNum("02.swf", 2);loadMovieNum("03.swf", 3);loadMovieNum加载后的控制可以这样使用:_level1._x=10 ;_level2.aa._alpha=50 ;_level3.aa.bb._width=110;_level4.mysound.stop();// 加载到级别为4的对象MC:mysound停止(播放音乐)需要注意的的是,每一个级别只能同时存在一个 SWF 或 JPEG 文件。
教你如何提取网页中的视频(主要flv),音乐,flash,图片等多媒体文件打开网页后,发现里面有好看的视频、好听的音乐、好看的图片、很炫的flash,是不是想把它们弄到自己电脑上或手机、mp4上?但很多时候视频无法下载,音乐只能试听,或者好听的背景音乐根本就不知道什么名字,更别说怎么下了;至于图片直接右键另存为即可,不过如果网页突然关掉了,但又想把看过的图片弄下来,而忘了图片网页地址或者不想再通过历史记录打开,这时又该怎么办?其实这些问题都能很好的解决,并且很简单,只要用一个软件来替你从电脑的缓存中搜索一下就OK了,因为网页中显示的内容基本上全部都在缓存中,如果自己手动搜索,那将是很累人滴,又不好找,东西太多,又没分类。
无意中发现一个小软件很强(对此感兴趣,本人玩过无数小软件),我一直在用,也是用它帮了很多网友的忙,为了让更多的网友解决问题,于是拿来和亲们分享一下。
工具/原料这款免费小软件就是YuanBox(元宝箱)v1.6,全称:元宝箱FLV视频下载专家,百度一搜就能下载。
下面是我自己整理的使用步骤,供亲们参考(其实不用看就行,软件简单,不用学就会),我只是用的时间长了,很熟练罢了:软件下好后,解压,打开里面的YuanBox.exe即可,不用安装;打开此软件前,先打开你要提取东西的网页(之后再关掉也行),这是为了保证电脑缓存中有你要的东西。
步骤/方法○11运行软件,初始界面如下图:○22之后直接是flv格式视频搜索结果的界面,原因就是此软件的全称是元宝箱FLV视频下载专家,不想要视频的话,点击最上面的设置或者最下面的高级设置,即可进行搜索范围设定○44以swf格式flash为例,进行搜索,选择类型中的第二项○66点击保存此项进行保存○77下面重点介绍一下网页中音乐的提取过程:○88只有等到网页中音乐缓存完后才能保存到完整的音乐,软件上有提示,只要网页没关,点击右上角的刷新视频就能加快缓冲,缓冲完后就会出现下图中第二条的情况,缓没缓冲完都能预览试听或保存(部分),不过这样就能识别出是不是你要找的哦,之后再决定让其缓冲完○1100保存界面如下:○1111点击复制媒体地址可复制原始链接,即外链地址或下载地址○1122点击原始链接会打开播放器,用原始链接地址播放在线音乐○1133还有一种查看原始链接地址的直观方法,上面的方法还得粘到一个地方才能看到,下面这种方法马上就可见,右键点击原始链接选择属性打开即可○1144属性界面如下,原始链接地址在最下面○1155其它媒体类型的搜索大致相同,下面再说说设置中的情况:大小限制设置的合适会减小搜索范围,快速找到想要的○1166最后再演示一下图片和视频的查找过程(太简单了,其实不用看滴)○1177下面是flv视频的预览亲们,就到这了,还有什么需要我帮忙的尽管说,本人不才,但玩过很多小软件,也喜欢探索,只要我能做到,就一定尽量帮你们解决问题。
package{import flash.display.*;public class img_swf{public var swfload:SWFLoader;public var div;var inputPath;var btn_getPath;public function img_swf(){inputPath=g.bro.OBJ("input",0,"b p=5,25 s=500,20 n=150","这里输入地址");btn_getPath=g.bro.DIV(0,"p=515,25 s=50,20 c=green");div=g.bro.DIV(0,"b p=5,50 s=800,650");var div_=g.bro.DIV(div,"p=0,0 s=800,150");g.bro.DIV(div_,"p=0,0 s=800,20 cid=名字");g.bro.DIV(div_,"p=0,20 s=800,100 cid=图片");g.bro.ARRAY(div, 1, 3);btn_getPath.onclick=function(){upLoad();swf_load(g.bro._(inputPath));};}// 下载当前图片资源public function swf_load(swfPathName):void{var swfPathName=swfPathName.replace(/([ ]{1})/g,"");if(!swfPathName)return;// 加载外部SWFswfload = new SWFLoader;try{swfload.Load(swfPathName, onComplete); // ... g.mapinfo.img + ".swf"}catch(e){g.bro.T("文件没找到,请检查地址是否正确::"+swfPathName);}}// 加载swf完成function onComplete(e):void{var SceneX;var ay=0;g.bro._a(div,"图片",function(obj,idx){if(idx==0){SceneX="SceneB";}else if(idx==1){SceneX="SceneZ";}else{SceneX="SceneQ";}try{var Scnne = swfload.GetClass(SceneX);var scc = new Scnne(0, 0);var mapImgBk = new Bitmap(scc);obj.addChild(mapImgBk);obj.scaleX=0.3;obj.scaleY=0.3;obj.parent.y=ay;ay+=mapImgBk.height*0.3+30;g.bro.DIV(obj,"b p="+mapImgBk.x+","+mapImgBk.y+" s="+mapImgBk.width+","+mapImgBk.height);g.bro._$(obj.parent,"名字",SceneX+",width="+mapImgBk.width+",height="+mapImgBk.height);}catch(e){g.bro.T(SceneX+"————载入失败,请检查是否存在!");}});}public function upLoad(){g.bro._a(div,"图片",function(obj,idx){g.bro.delA(obj);g.bro._$(obj.parent,"名字","");});}}}。
c#实现⽹页图⽚提取⼯具代码分享复制代码代码如下:public Array MatchHtml(string html,string com){List<string> urls = new List<string>();html = html.ToLower();//获取SRC标签中的URLRegex regexSrc = new Regex("src=\"[^\"]*[(.jpg)(.png)(.gif)(.bmp)(.ico)]\"");foreach(Match m in regexSrc.Matches(html)){string src = m.Value;src = src.Replace("src=","").Replace("\"","");if (!src.Contains("http"))src = com + src;if(!urls.Contains(src))urls.Add(src);}//获取HREF标签中URLRegex regexHref = new Regex("href=\"[^\"]*[(.jpg)(.png)(.gif)(.bmp)(.ico)]\"");foreach (Match m in regexHref.Matches(html)){string href = m.Value;href = href.Replace("href=", "").Replace("\"", "");if (!href.Contains("http"))href = com + href;if(!urls.Contains(href))urls.Add(href);}return urls.ToArray();}复制代码代码如下:[DllImport("kernel32.dll")]static extern bool SetConsoleMode(IntPtr hConsoleHandle, int mode);[DllImport("kernel32.dll")]static extern bool GetConsoleMode(IntPtr hConsoleHandle, out int mode);[DllImport("kernel32.dll")]static extern IntPtr GetStdHandle(int handle);const int STD_INPUT_HANDLE = -10;const int ENABLE_QUICK_EDIT_MODE = 0x40 | 0x80;public static void EnableQuickEditMode(){int mode; IntPtr handle = GetStdHandle(STD_INPUT_HANDLE);GetConsoleMode(handle, out mode);mode |= ENABLE_QUICK_EDIT_MODE;SetConsoleMode(handle, mode);}static void Main(string[] args){EnableQuickEditMode();int oldCount = 0;Console.Title = "TakeImageFromInternet";string path = "E:\\Download\\loading\\";while (true){Console.Clear();string countFile = "E:\\CountFile.txt";//⽤来计数的⽂本,以⾄于⽂件名不重复int cursor = 0;if (File.Exists(countFile)){string text = File.ReadAllText(countFile);try{cursor =oldCount = Convert.ToInt32(text);//次数多了建议使⽤long}catch { }}Console.Write("please input a url:");string url = "/";string temp = Console.ReadLine();if (!string.IsNullOrEmpty(temp))url = temp;Match mcom = new Regex(@"^(?i)http://(\w+\.){2,3}(com(\.cn)?|cn|net)\b").Match(url);//获取域名 string com = mcom.Value;//Console.WriteLine(mcom.Value);Console.Write("please input a save path:");temp = Console.ReadLine();if (Directory.Exists(temp))path = temp;Console.WriteLine();WebClient client = new WebClient();byte[] htmlData = null;htmlData = client.DownloadData(url);MemoryStream mstream = new MemoryStream(htmlData);string html = "";using (StreamReader sr = new StreamReader(mstream)){html = sr.ReadToEnd();}Array urls = new MatchHtmlImageUrl().MatchHtml(html,com);foreach (string imageurl in urls){Console.WriteLine(imageurl);byte[] imageData = null;try{imageData = client.DownloadData(imageurl);}catch { }if (imageData != null && imageData.Length>0)using (MemoryStream ms = new MemoryStream(imageData)){try{string ext = Aping.Utility.File.FileOpration.ExtendName(imageurl);ImageFormat format = ImageFormat.Jpeg;switch (ext){case ".jpg":format = ImageFormat.Jpeg;break;case ".bmp":format = ImageFormat.Bmp;break;case ".png":format = ImageFormat.Png;break;case ".gif":format = ImageFormat.Gif;break;case ".ico":format = ImageFormat.Icon;break;default:continue;}Image image = new Bitmap(ms);if (Directory.Exists(path))image.Save(path + "\\" + cursor + ext, format);}catch(Exception ex) { Console.WriteLine(ex.Message); }}cursor++;}mstream.Close();File.WriteAllText(countFile, cursor.ToString(), Encoding.UTF8);Console.WriteLine("take done...image count:"+(cursor-oldCount).ToString()); }}。
提取受保护的.swf文件中的图像、声音
马雪梅
【期刊名称】《计算机教与学》
【年(卷),期】2003(000)002
【摘要】在进行高一信息科技(华东师范大学出版社,2002年8月第三版)第二篇第二节《算法和算法描述方法》的教学过程中,我无意间在网上找到《商人过河》这
个flash动画,发现其中有些素材可以用到教材例题“农夫带着狼、山羊和蔬菜过河”中(如河流、船、水声),便将这个flash动画下载下来。
由于《商人过河》文件受保护。
【总页数】2页(P48-49)
【作者】马雪梅
【作者单位】上海市莘庄中学
【正文语种】中文
【中图分类】G633.67
【相关文献】
1.基于机器学习的图像特征提取技术在图像版权保护中的应用 [J], 胡刚;荆磊;朱磊
2.一种古建墙壁受污题记文字图像边缘提取方法 [J], 刘英杰;杨风暴;吉琳娜;原惠峰;
3.一种古建墙壁受污题记文字图像边缘提取方法 [J], 刘英杰;杨风暴;吉琳娜;原惠
峰
4.图像中的明中晚期都城声音景观r——《皇都积胜图》中的音乐活动 [J], 周鹏
窈
5.手持式图像特征提取分类实现保护压板状态确认装置的研究 [J], 胡义军;尚斌;田兴隆;万力
因版权原因,仅展示原文概要,查看原文内容请购买。
swf反编译原理SWF反编译原理SWF是一种Adobe公司开发的动画格式,常用于互联网上的Flash 动画。
SWF文件中包含了动画的各种元素,如图像、音频、视频和动作脚本等。
而SWF反编译是指将SWF文件转换为可编辑的源代码的过程,使得用户可以查看和修改SWF动画的内部结构和逻辑。
SWF反编译的原理主要涉及两个方面:SWF文件格式的解析和动作脚本的分析。
SWF文件格式的解析是SWF反编译的基础。
SWF文件是由一系列的标签(Tag)组成的,每个标签都有自己的类型和长度。
通过解析SWF文件的字节流,可以将其转换为标签的序列,从而获得SWF文件的内部结构。
常见的SWF标签有文件属性标签、图形标签、文本标签和动作标签等。
通过解析这些标签,可以获取SWF文件中的各种元素,如图像、文字和动作脚本。
动作脚本的分析是SWF反编译的关键。
动作脚本是Flash动画中的逻辑代码,它控制着动画的行为和交互。
通常,动作脚本使用ActionScript语言编写,可以实现各种复杂的功能,如按钮的点击事件、动画的播放控制和数据的处理等。
在SWF反编译过程中,需要将动作脚本从SWF文件中提取出来,并进行词法分析和语法分析,从而获得动作脚本的结构和含义。
常见的动作脚本语句有赋值语句、条件语句和循环语句等。
通过分析这些语句,可以理解动作脚本的逻辑,进而修改和优化动画的行为。
SWF反编译的过程中,还需要解决一些技术难题。
首先,SWF文件通常会进行代码混淆和加密,以防止被反编译。
因此,在进行SWF反编译时,需要先对SWF文件进行解密和解混淆,才能获取可读的源代码。
其次,在动作脚本的分析过程中,需要处理动作脚本中的外部引用和依赖关系。
例如,动作脚本可能会调用外部的函数或变量,这些外部引用需要进行识别和处理,以确保反编译后的源代码可以正常运行。
总结起来,SWF反编译的原理包括SWF文件格式的解析和动作脚本的分析。
通过解析SWF文件的标签和字节流,可以获取SWF文件的内部结构和元素。
■ Flash深入研究之三——编程提取SWF中的图像文件
————————————————以下为程序代码—————————————
unit SWFBlue_u1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ActnList, StdActns, StdCtrls, Buttons, ShlObj, Zlib;
type
TMain = class(TForm)
b_open: TButton;
Button3: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
OpenDialog1: TOpenDialog;
Label4: TLabel;
e_dir: TEdit;
SpeedButton1: TSpeedButton;
procedure b_openClick(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
FileLength : LongWord; //SWF文件尺寸
FileBuf : Array of Byte; //将SWF文件读入内存存放
end;
var
Main: TMain;
implementation
{$R *.dfm}
procedure TMain.b_openClick(Sender: TObject);
由于该函数代码非常多,考虑到版面紧张,请读者参考文末的链接下载源程序自行查看,谢谢——东渐
}
end;
procedure TMain.Button3Click(Sender: TObject);
begin
Close;
end;
procedure TMain.FormShow(Sender: TObject);
var
s : string;
begin
s:=Application.ExeName;
s:=ExtractFilePath(s);
if s[Length(s)]<>'\' then s:=s+'\';
e_dir.Text:=s;
end;
procedure TMain.SpeedButton1Click(Sender: TObject);
var
s : string;
info : TBROWSEINFO;
buf : array [0..MAX_PATH] of char;
p : PItemIDList;
begin
FillChar(Buf[0],MAX_PATH+1,0);
with info do begin
hwndOwner:=Handle;
pidlRoot:=Nil;
pszDisplayName:=buf;
lpszTitle:='选择图像文件生成目录:';
ulFlags:=BIF_RETURNONLYFSDIRS;
lpfn:=Nil;
end;
p:=SHBrowseForFolder(info);
if Buf<>'' then begin
SHGetPathFromIDList(p,buf);
s:=Buf; if s[length(s)]<>'\' then s:=s+'\';
e_dir.text:=s;
end;
end;
end.。