云图动画,就是将一组序列图以动画的形式进行轮播,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云图动画导出的更多相关文章

  1. 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 ...

  2. PIE SDK Command&&Tool工具命令一览表

    PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls ...

  3. PIE SDK地图图层渲染方案管理

    1. 功能简介 在数据种类较多.渲染规则复杂的情况下,逐个设置其渲染方式是一件繁琐的工作.PIE SDK提供了一种省力省心的办法, PIE SDK提供栅格和矢量数据渲染方案的打开与保存.能够将配色方案 ...

  4. PIE SDK元素的保存与打开

    1.功能简介 绘制元素之后需要对元素进一步的保存操作,可以利用PIE SDK的ExportElementsCommand命令保存成xml格式的文件,打开元素可以利用ImportElementsComm ...

  5. PIE SDK 距离分类和最大似然分类

       1.算法功能简介 监督分类,也叫训练场地法.训练分类法,是遥感图像分类的一种,用被确认类别的样本像元去识别其他未知类别像元的过程.监督分类算法有平行算法.平行六面体法.最小距离法.最大似然法.马 ...

  6. PIE SDK与OpenCV结合说明文档

    1.功能简介 OpenCV是基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它轻量级而且高效——由一系列 C 函数和少量 ...

  7. PIE SDK影像坏线修复

    1.算法功能简介 坏条带的由来:2003年5月31日,Landsat-7ETM+机载扫描行校正器(SLC) 故障,导致此后获取的影像出现了数据条带丢失,严重影响了Landsat ETM遥感影像的使用. ...

  8. PIE SDK与GeoServer结合说明文档

    1.  GeoServer简介 GeoServer是OpenGIS Web服务器规范的J2EE实现的社区开源项目,利用GeoServer可以方便的发布地图数据,允许用户对特征数据进行更新.删除.插入操 ...

  9. PIE SDK组件式开发综合运用示例

    1. 功能概述 关于PIE SDK的功能开发,在我们的博客上已经分门别类的进行了展示,点击PIESat博客就可以访问,为了初学者入门,本章节将对从PIE SDK组件式二次开发如何搭建界面.如何综合开发 ...

随机推荐

  1. JavaScript 组件编写

    说明 这是一个联系人名过滤组件,还提供可选的"大小写是否敏感"选项,默认大小写不敏感. 一.HTML 结构 <ul class="contacts"> ...

  2. APUE(3)---文件I/O (1)

    一.引言 UNIX系统中的大多数文件对I/O只需用到5个函数:open/read/write/lseek和close,这些函数都是不带缓冲I/O(Unbuffered I/O).只要涉及到多个进程间共 ...

  3. HTML5移动Web开发实战 PDF扫描版​

    <HTML5移动Web开发实战>提供了应对这一挑战的解决方案.通过阅读本书,你将了解如何有效地利用最新的HTML5的那些针对移动网站的功能,横跨多个移动平台.全书共分10章,从移动Web. ...

  4. AD对象DirectoryEntry本地开发

    DirectoryEntry类如果需要在本地计算机开发需要满足以下条件: 1.本地计算机dns解析必须和AD域控制器的dns保持一致,如图: 2.必须模拟身份验证,才能操作查询AD用户 /// < ...

  5. 检查Windows上安装的.net版本

    cmd reg query "HKLM\Software\Microsoft\NET Framework Setup\NDP" /s /v version | findstr /i ...

  6. .net core .NET Core与.NET Framework、Mono之间的关系

    .NET Core与.NET Framework.Mono之间的关系 首先想要知道.NET Core与.NET Framework.Mono之间的关系,就必须他们分别是什么,有什么用途? 一. .ne ...

  7. cdq分治略解

    前言 陌上花开,可缓缓归矣                         --吴越王 寓意:意思是:田间阡陌上的花开了,你可以一边赏花,一边慢慢回来. 隐意:春天都到了,你怎么还没有回来.形容吴越王 ...

  8. .db轻量级本地数据库

    1.概述: db文件一般是数据库数据存放文件. db是datebase的缩写,是数据库文件. 我们可以简单的理解为db是本地轻量级数据库(用了缓存,储存少量本地数据,防止断电等突发意外的发生对我们的程 ...

  9. 使用 GPU 加速计算

    U-n-i-t-y 提供了 [Compute Shader][link1] 来使得我们可以将大量的复杂重复的计算交给并行的 GPU 来处理,正是由于并行原因,这样就可以大大加快计算的速度,相比在 CP ...

  10. 金庸笔下的"程序员" | 附金庸武侠全集

    金庸 飞雪连天射白鹿,笑书神侠倚碧鸳当您八十高龄取得牛津大学唐朝史学博士学位,我还以为这是另一部史诗开始的信号,然而没有后续了.我的高中到大学,是十遍<笑傲江湖>的距离,我的整个青春,是大 ...