PIE SDK云图动画导出
云图动画,就是将一组序列图以动画的形式进行轮播,PIE SDK可以将云图动画以gif或avi格式进行导出,本文示例以云图动画导出gif为例,这样只需要点开gif文件就可以浏览云图动画。
下面来介绍下实现的主要代码:
要实现云图动画导出GIF步骤:
1、加载序列时数据(可以查看打开长时间序列数据)
2、如何将云图动画导出GIF文件;
云图动画由一帧帧的画面组合,也即是加载的序列图的图层数,将云图动画导出GIF,主要是先将每一帧画面保存为图片的格式,本文选择png格式,然后将保存完的图片通过第三方插件Gif.Components.dll生成GIF文件
/// <summary>
/// 云图动画导出GIF
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tbn_Export2GIF_Click(object sender, EventArgs e)
{
if (m_AnimationLayer.GetAnimationState() != && m_AnimationLayer == null) return;
//1、设置保存GIF的路径
if (!this.Enabled) return;
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Title = "请选择保存路径";
saveFileDialog.Filter = "GIF Files|*.gif;";
if (saveFileDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
string filePath = saveFileDialog.FileName; DevExpress.Utils.WaitDialogForm waitDialogForm = new DevExpress.Utils.WaitDialogForm("正在生成GIF动画,请耐心等候……", "生成GIF"); //2、将每一帧图都以png的格式保存在临时文件夹下
string filePath_D = Path.Combine(@"..\Data\Temp\Pic", DateTime.Now.ToString("yyyyMMddhhmmss"));
Directory.CreateDirectory(filePath_D);
Export2PicSilent(filePath_D); //3、将临时文件夹下的每一帧图片保存成GIF格式
string[] filePaths = Directory.GetFiles(filePath_D);
Parames_GeneralGIF para = new Parames_GeneralGIF();
para.WaitDialogFormA = waitDialogForm;
para.PicPaths = filePaths;
para.GIFPath = filePath;
GeneralGif(para);
} /// <summary>
/// 将每一帧动画保存为png图
/// </summary>
/// <param name="folder">存放图片的文件夹</param>
public void Export2PicSilent(string folder)
{
if (mapControlMain == null) return;
m_AnimationLayer.Stop();
Image image = null;
for (int i = ; i <= m_AnimationLayer.LayerCount - ; i++)
{
m_AnimationLayer.SetCurrentFrameIndex(i);
mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
System.Threading.Thread.Sleep();
image = mapControlMain.GetScreenshot();
image.Save(folder + "\\" + i + ".png");
}
m_AnimationLayer.Start();
} /// <summary>
/// 将帧图片生成GIF
/// </summary>
/// <param name="param"></param>
public void GeneralGif(object param)
{
if (param == null) return;
Parames_GeneralGIF param_GeneralGIF = param as Parames_GeneralGIF;
if (param_GeneralGIF == null) return; //生成gif图片实例化
Gif.Components.AnimatedGifEncoder gifEncoder = new Gif.Components.AnimatedGifEncoder();
gifEncoder.Start(param_GeneralGIF.GIFPath);
gifEncoder.SetDelay();//每帧播放时间
gifEncoder.SetRepeat(); //-1:不重复,0:重复 for (int i = ; i < param_GeneralGIF.PicPaths.Length; i++)
{
gifEncoder.AddFrame(System.Drawing.Image.FromFile(param_GeneralGIF.PicPaths[i]));
}
gifEncoder.Finish();
param_GeneralGIF.WaitDialogFormA.Invoke(new Action(() =>
{
param_GeneralGIF.WaitDialogFormA.Close();
}));
}
代码路径:
项目名称 |
百度云盘地址下/PIE示例程序/13.小工具集锦/云图动画导出/AnimationLayerExportToGIF |
数据路径 |
百度云盘地址下/PIE示例数据/栅格数据/05.长时间序列数据 |
视频路径 |
百度云盘地址下/PIE视频教程/13.小工具集锦/云图动画导出.avi |
注意:
在地图初始化的时候,图层树控件需要手动绑定地图控件:
tocControlMain.SetBuddyControl(mapControlMain as PIE.Carto.IPmdContents);
效果图:
PIE SDK云图动画导出的更多相关文章
- PIE SDK 文章目录索引
1.PIE SDK介绍 1.1. PIE软件介绍 1.2. PIE SDK介绍 1.3. PIE支持项目介绍 1.4. PIE.NET-SDK插件式二次开发介绍 1.5. PIE.NET-S ...
- PIE SDK Command&&Tool工具命令一览表
PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls ...
- PIE SDK地图图层渲染方案管理
1. 功能简介 在数据种类较多.渲染规则复杂的情况下,逐个设置其渲染方式是一件繁琐的工作.PIE SDK提供了一种省力省心的办法, PIE SDK提供栅格和矢量数据渲染方案的打开与保存.能够将配色方案 ...
- PIE SDK元素的保存与打开
1.功能简介 绘制元素之后需要对元素进一步的保存操作,可以利用PIE SDK的ExportElementsCommand命令保存成xml格式的文件,打开元素可以利用ImportElementsComm ...
- PIE SDK 距离分类和最大似然分类
1.算法功能简介 监督分类,也叫训练场地法.训练分类法,是遥感图像分类的一种,用被确认类别的样本像元去识别其他未知类别像元的过程.监督分类算法有平行算法.平行六面体法.最小距离法.最大似然法.马 ...
- PIE SDK与OpenCV结合说明文档
1.功能简介 OpenCV是基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它轻量级而且高效——由一系列 C 函数和少量 ...
- PIE SDK影像坏线修复
1.算法功能简介 坏条带的由来:2003年5月31日,Landsat-7ETM+机载扫描行校正器(SLC) 故障,导致此后获取的影像出现了数据条带丢失,严重影响了Landsat ETM遥感影像的使用. ...
- PIE SDK与GeoServer结合说明文档
1. GeoServer简介 GeoServer是OpenGIS Web服务器规范的J2EE实现的社区开源项目,利用GeoServer可以方便的发布地图数据,允许用户对特征数据进行更新.删除.插入操 ...
- PIE SDK组件式开发综合运用示例
1. 功能概述 关于PIE SDK的功能开发,在我们的博客上已经分门别类的进行了展示,点击PIESat博客就可以访问,为了初学者入门,本章节将对从PIE SDK组件式二次开发如何搭建界面.如何综合开发 ...
随机推荐
- logback 中文手册
摘自:http://aub.iteye.com/blog/1896611 logback 中文手册 博客分类: Log loglogbackloback手册loback中文手册 logback 常 ...
- 命令之 ulimit
help ulimit help ulimit ulimit: ulimit [-SHacdefilmnpqrstuvx] [limit] Modify shell resource limits. ...
- Mathematical optimization数学上的最优化
https://en.wikipedia.org/wiki/Mathematical_optimization In mathematics, computer science and operati ...
- wgs84坐标系与gcj02坐标系转换误差分布图 | Mapping the Error in Transformation between WGS84 and GCJ02 Coordinations
国际上通用的是wgs84坐标系,而我国对于境内的坐标进行了加密,采用了gcj02坐标系,或者称为火星坐标系.亢孟军老师带的一门课<多媒体电子地图设计>要求我们从wgs84坐标系转换为gcj ...
- 【转】Android android listview的HeadView左右切换图片(仿新浪,网易,百度等切换图片)
首先我们还是看一些示例:(网易,新浪,百度) 下面我简单的介绍下实现方法:其实就是listview addHeaderView.只不过这个view是一个可以切换图片的view,至于这个vie ...
- 十一、Node.js监听代码改动自动重启node插件supervisor
我们慢慢地发现,每次我们稍微改变js代码都需要重启服务才能在浏览器显示新的效果,很麻烦,这里我们可以通过npm命令安装supervisoror插件,安装方法如下 之前章节我们知道安装了nodejs就会 ...
- c++缓冲区------c++ Primer Plus
通常,通过使用缓冲区可以更高效地处理输入和输出.缓冲区是用作中介的内存块,它是将信息从设备传输到程序或从程序传输给设备的临时存储工具.通常,像硬盘驱动器这样的设备以512字节(或更多)的块为单位来传输 ...
- day02.1-字符串内置方法
字符串——str的定义:test = "zizaijiapu" 特点:1. 字符串是可迭代对象: 2. 字符串中各元素是有序的: 3. 字符串一经创建,其内容值不可修改. 1. 查 ...
- Java代码生成16位纯数字的订单号
//生成16位唯一性的订单号 public static void getUUID(){ //随机生成一位整数 int random = (int) (Math.random()*9+1); Stri ...
- 光猫烽火Hg220破解超级口令实用图文教程(亲测)
1.用光猫背后的useradmin 帐号和密码登录 192.168.1.12.然后下载http://192.168.1.1/backupsettings.conf3.用记事本打开,ctrl+F,查找关 ...