package org.lesogo.swf.pdf.util;


import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.zip.DataFormatException;




import com.flagstone.transform.FSBounds;
import com.flagstone.transform.FSCoder;
import com.flagstone.transform.FSColor;
import com.flagstone.transform.FSColorTable;
import com.flagstone.transform.FSCoordTransform;
import com.flagstone.transform.FSDefineMorphShape;
import com.flagstone.transform.FSDefineObject;
import com.flagstone.transform.FSDefineShape3;
import com.flagstone.transform.FSMovie;
import com.flagstone.transform.FSPlaceObject;
import com.flagstone.transform.FSPlaceObject2;
import com.flagstone.transform.FSSetBackgroundColor;
import com.flagstone.transform.FSShape;
import com.flagstone.transform.FSShowFrame;
import com.flagstone.transform.FSSolidFill;
import com.flagstone.transform.FSSolidLine;
import com.flagstone.transform.util.FSImageConstructor;


public class PdfToSwfUtil {


public static final String SWF_FILE = "C:/Users/zhangliju/Desktop/手机软件包/swf/pdf/image/img.swf";


public static final String IMAGE_SOURCE_FILE = "C:/Users/zhangliju/Desktop/手机软件包/swf/pdf/image";


public static void main(String[] args) {
try {
// PdfToSwfUtil.setUpBeforeClass();
createMovie(IMAGE_SOURCE_FILE, SWF_FILE,1f);
// tool.transformToIMG(SWF_FILE, IMAGE_TARGET_FILE);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DataFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


/**
*
* @param sourceIMG 图片文件夹(多个图片),或者图片绝对路径(单个图片)
* @param targetSWF 保存swf路径
* @param frameRate 每张图片帧率 一般1秒1帧 0.1开始 越大越快
* @throws DataFormatException
* @throws IOException
*/
public static void createMovie(final String sourceIMG,final String targetSWF,final float frameRate)
throws DataFormatException, IOException {
FSMovie movie = new FSMovie();

File file = new File(sourceIMG);
int i = 1;
for (File f : file.listFiles()) {

//获取图片基本属性
FSImageConstructor imageGenerator = new FSImageConstructor(f.getAbsolutePath());

//获取图片和画布id
int imageId = movie.newIdentifier();

int shapeId = movie.newIdentifier();


//获取到图片格式
FSDefineObject image = imageGenerator.defineImage(imageId);

image.setIdentifier(imageId);

imageGenerator.defineImage(imageId);
//加入图片
movie.add(image);
//设置swf画布样式、位置
FSDefineShape3 shape = imageGenerator.defineEnclosingShape
//x ,y 设置画布边框大小颜色
(shapeId,imageId, 0, 0, new FSSolidLine(10, FSColorTable.white()));
//加入swf模型
movie.add(shape);
//得到画布
FSBounds bounds = shape.getBounds();
//设置画布到容器
movie.setFrameSize(bounds);
//设置每张图片1秒一帧
movie.setFrameRate(frameRate);
//设置容器背景颜色
movie.add(new FSSetBackgroundColor(FSColorTable.white()));
//在每一帧上添加一个图片,并且设置上下距离为0
movie.add(new FSPlaceObject2(shapeId, i, 0, 0));
//显示动画
movie.add(new FSShowFrame());
i+=2;
}
//在每一帧上添加一个图片,并且设置上下距离为0,这个地方需要在Flash中最后多添加一帧加入空白帧,否则显示不正常。
movie.add(new FSPlaceObject2(-1, i, 0, 0));
//输出路径
movie.encodeToFile(targetSWF);
}

}


<a href="http://download.csdn.net/detail/u012659564/9219339">资源下载</a>

更多相关文章

  1. Java怎么实现保存页面内容 导出为图片到本地
  2. 【笔记】上传图片和音频
  3. java后台对上传的图片进行压缩

随机推荐

  1. Android--动态添加控件
  2. android设备信息获取
  3. android手机QQ尾巴修改(QQ for Pad)
  4. Android 开发 官方 论坛
  5. Android-sharedUserId
  6. android常用颜色代码定义
  7. 怎样更新Android SDK1.1 到 Android SDK1
  8. Android Support Library 23.2
  9. Android(安卓)动画特效的运用
  10. android FactoryReset