Our ByteScout SDK products are sunsetting as we focus on expanding new solutions.
Learn More
Important Update
ByteScout SDK Sunsetting Notice
Our ByteScout SDK products are sunsetting as we focus on our new & improved solutions.Thank you for being part of our journey, and we look forward to supporting you in this next chapter!
SWF to Image Library is an ActiveX/NET Library for Converting SWF (Flash) Movies into BMP, JPEG, GIF Image Files
Product testimonials
Thanks for listening to your customers. Actually, we have been using the ByteScout SDK in our software for many years already. In the beginning, we ran into some issues that were solved very quickly on your side. After that, it just worked and since no issue ever popped up, we never upgraded the version we were using.
A detailed description of custom parameters (they are used with a filename to help customize SWF to image conversion using SWF To image):
FORBID_INTERNAL_DOWNLOAD:// tells to let flash player plugin download movie by itself
When a movie loads XML or other data you may need to delay the load of the movie
You can set a timeout in seconds (using PRELOAD prefix) and you can also use 2 different approaches to detect when all data is loaded.
Approach #1: If you are not able to recompile source SWF flash movie
DETECT_READY when library tries to detect objects loaded and then convert the frame into jpeg after all objects were loaded successfully
DETECT_READY:// – with this prefix library tries to detect the first object loaded and then go to conversion into image
DETECT_READY2://
DETECT_READY3://
…
DETECT_READY200:// – you can set the number of objects to wait for before conversion
IMPORTANT NOTE: DETECT_READY prefix can not be used as a standalone prefix. It should be used with PRELOAD:// prefixes as they set “timeout” time to go to conversion even if not object were not loaded
Example 1: (wait for 2 objects, global timeout is 5 sec):
SWFToImage.InputSWFFileName = “PRELOAD5://PRELOAD_READY2://imageTest.swf”
Example 2: (wait for 1 object, global timeout is 2 sec):
SWFToImage.InputSWFFileName = “PRELOAD2://PRELOAD_READY://imageTest.swf”
How to detect how many objects the movie is about to load?
This is possible via a built-in hack:
Use GET_READY_TIMES:// prefix and the library will return a number of objects actually loaded in the .ImageWidth property
Example (get a number of objects actually loaded in SWF)
Approach #2: you can use FSCommand (calling in ActionScript inside your flash movie) to indicate that loading is completed
First insert the following ActionScript code inside the movie to indicate that all data is ready and so loading is done: fscommand(“SWFToImage_LoadingIsDone”);
Then in code that uses SWFToImage library use the following prefix:
USE_FSCOMMAND_TO_DETECT_LOADING_IS_DONE://
This prefix tells the library to wait for the “SWFToImage_LoadingIsDone” command from the Flash movie and then convert the movie into an image immediately.
IMPORTANT: you should use PRELOAD prefix along with USE_FSCOMMAND_TO_DETECT_LOADING_IS_DONE prefix so library will have a timeout setting for the conversion (in example above it uses 10 seconds timeout setting)
Example (create a movie with actionscript command indicating that loading is done. Code uses SWF Scout library to generate SWF flash movie ):
W = 640
H = 480
FPS = 12
Set Movie = CreateObject(“SWFScout.FlashMovie”)
Movie.InitLibrary “demo”,”demo”
Movie.BeginMovie 0,0,W,H,1,FPS,6
Font = Movie.AddFont( “Arial”,26,true,false,false,false,0)
Text= Movie.AddTextEdit (“edText”,”undefined”,255,100,0,255,Font,10,70,500,120)
Movie.PlaceText Text,DepthForText ‘ place text
Movie.AddScript
Movie.SCRIPT_Compile “if(_root.Variable1!=undefined){edText=_root.Variable1;}else{edText = ‘Variable1 not set’;};”
PRELOAD:// – with this prefix flash movie is loaded with a little delay
PRELOAD05:// – with this prefix flash movie is loaded with 500 ms delay
PRELOAD1:// – with this prefix flash movie is loaded with 1000 ms delay
PRELOAD15:// – with this prefix flash movie is loaded with 1500 ms delay
PRELOAD2:// – with this prefix flash movie is loaded with 2000 ms delay
PRELOAD25:// – with this prefix flash movie is loaded with 2500 ms delay
PRELOAD3:// – with this prefix flash movie is loaded with 3000 ms delay
PRELOAD35:// – with this prefix flash movie is loaded with 3000 ms delay
PRELOAD4:// – with this prefix flash movie is loaded with 4000 ms delay
PRELOAD45:// – with this prefix flash movie is loaded with 4500 ms delay
PRELOAD5:// – with this prefix flash movie is loaded with 5000 ms delay
PRELOAD55:// – with this prefix flash movie is loaded with 5500 ms delay
PRELOAD6:// – with this prefix flash movie is loaded with 6000 ms delay
PRELOAD65:// – with this prefix flash movie is loaded with 6500 ms delay
PRELOAD7:// – with this prefix flash movie is loaded with 7000 ms delay
PRELOAD75:// – with this prefix flash movie is loaded with 7500 ms delay
PRELOAD8:// – with this prefix flash movie is loaded with 8000 ms delay
PRELOAD85:// – with this prefix flash movie is loaded with 8500 ms delay
PRELOAD9:// – with this prefix flash movie is loaded with 9000 ms delay
PRELOAD95:// – with this prefix flash movie is loaded with 9500 ms delay
PRELOAD10:// – with this prefix flash movie is loaded with 10000 ms delay
PRELOAD150:// – with this prefix flash movie is loaded with 15000 ms delay
PRELOAD200:// – with this prefix flash movie is loaded with 20000 ms delay
Example Code (using fixed preload time)
Set SWFToImage = CreateObject(“SWFToImage.SWFToImageObject”)
SWFToImage.InputSWFFileName = “PRELOAD1://movie_with_dynamic_data.swf”
SWFToImage.ImageOutputType = 1 ‘ set output image type to Jpeg (0 = BMP, 1 = JPG, 2 = GIF)
SWFToImage.Execute_Begin ‘ start conversion
SWFToImage.FrameIndex = 1 ‘ set frame index
SWFToImage.Execute_GetImage
SWFToImage.SaveToFile “movie_with_dynamic_data.jpg”
SWFToImage.Execute_End ‘ end conversion
Example Code (switching library to use flash player engine download engine instead of library built-in engine)
Set SWFToImage = CreateObject(“SWFToImage.SWFToImageObject”)
SWFToImage.InputSWFFileName = “FORBID_INTERNAL_DOWNLOAD://PRELOAD1://movie_with_dynamic_data.swf?myparam=123”
SWFToImage.ImageOutputType = 1 ‘ set output image type to Jpeg (0 = BMP, 1 = JPG, 2 = GIF)