public abstract class Swf2Imgae
{
public Swf2Imgae()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
private static readonly int _defaultImgType = (int)SWFToImage.TImageOutputType.iotJPG;
private static readonly int _defaultWidth = WebConfiguration.ConverterSetting.GetThumbSize()[0];
private static readonly int _defaultHeight = WebConfiguration.ConverterSetting.GetThumbSize()[1];
/// <summary>
/// 截取swf缩略图
/// </summary>
/// <param name="swfPath">输入swf路径</param>
/// <param name="outImgPath">输出图片路径</param>
/// <param name="imgType">iotBMP = 0,iotJPG = 1,iotGIF = 2,iotPNG = 3,</param>
/// <param name="width">设置生成图片的宽度</param>
/// <param name="height">设置生成图片的高度</param>
/// <returns></returns>
public static string SWF2Image(string swfPath,string outImgPath,int width,int height)
{
try
{
SWFToImage.TImageOutputType imgType = SWFToImage.TImageOutputType.iotJPG; ;
if (!System.IO.File.Exists(swfPath))
{
return "ERROR:no find the swf file,invalid swf path";
}
string imgTypeStr = System.IO.Path.GetExtension(outImgPath);
switch (imgTypeStr.ToLower())
{
case ".bmp":
imgType = SWFToImage.TImageOutputType.iotBMP;
break;
case ".gif":
imgType = SWFToImage.TImageOutputType.iotGIF;
break;
case ".jpg":
imgType = SWFToImage.TImageOutputType.iotJPG;
break;
case ".png":
imgType = SWFToImage.TImageOutputType.iotPNG;
break;
}
string imgDir = System.IO.Path.GetDirectoryName(outImgPath);
if (!System.IO.Directory.Exists(imgDir))
{
System.IO.Directory.CreateDirectory(imgDir);
}
SWFToImage.SWFToImageObjectClass c = new SWFToImage.SWFToImageObjectClass();
c.ImageHeight = height;
c.ImageWidth = width;
c.JPEGQuality = 127;
c.InputSWFFileName = swfPath;
c.ImageOutputType = imgType;//SWFToImage.TImageOutputType.iotJPG;
c.Execute();
bool result = c.SaveToFile(outImgPath);
if (!result)
{
return "ERROR:convert fail";
}
if (System.IO.File.Exists(outImgPath))
{
return outImgPath;
}
}
catch (System.Exception ex)
{
return "ERROR:" + ex.Message;
}
return null;
}
/// <summary>
/// 截取swf缩略图,默认宽高为400:300,默认格式为jpg
/// </summary>
/// <param name="swfPath">输入swf路径</param>
/// <param name="outImgPath">输出图片路径</param>
/// <returns></returns>
public static string SWF2Image(string swfPath, string outImgPath)
{
return SWF2Image(swfPath, outImgPath, _defaultWidth, _defaultHeight);
}
public static object SWF2Image(string swfPath)
{
SWFToImage.SWFToImageObjectClass c = new SWFToImage.SWFToImageObjectClass();
c.ImageHeight = _defaultHeight;
c.ImageWidth = _defaultWidth;
c.JPEGQuality = 127;
c.InputSWFFileName = swfPath;
c.ImageOutputType =SWFToImage.TImageOutputType.iotJPG;
c.Execute();
return c.BinaryImage;
}
/// <summary>
/// 截取swf缩略图,默认宽高为400:300,默认格式为jpg
/// </summary>
/// <param name="swfPath">输入swf路径</param>
/// <param name="outImgPath">输出图片路径</param>
/// <returns></returns>
public static void SWF2Image(object o)
{
SWF2ImageParams4 Values=null;
SWF2ImageParams2 Values2 = null;
try
{
Values = (SWF2ImageParams4)o;
if (Values==null)
{
return;
}
SWF2Image(Values.SwfPath, Values.ImgPath, Values.Width, Values.Height);
}
catch (System.Exception ex)
{
Values2 = (SWF2ImageParams2)o;
if (Values2 == null)
{
return;
}
SWF2Image(Values2.SwfPath, Values2.ImgPath, _defaultWidth, _defaultHeight);
}
}
/// <summary>
/// 供SWF2Image 重载(4参数)SwfPath;ImgPath,Width,Height使用
/// </summary>
public class SWF2ImageParams4
{
public string SwfPath;
public string ImgPath;
public int Width;
public int Height;
}
/// <summary>
/// 供SWF2Image 重载(2参数)SwfPath;ImgPath;使用
/// </summary>
public class SWF2ImageParams2
{
public string SwfPath;
public string ImgPath;
}
}