public void DisplayAvi(ISmartSession session, string wndName, string[] fnames, string templateName, string subIdentify, out string outputFname) { string satellite = null; string sensor = null; outputFname = GetOutputGxdFileName(fnames, subIdentify, out satellite, out sensor); bool isOk = false; FileIsSupportable(fnames); ILayoutTemplate temp = GetTemplateByArg(templateName); if (temp == null) { return; } ILayoutViewer viewer = new LayoutViewer(wndName); ApplyLayoutTemplate(viewer, ref temp); //在这里应用模板,初始化数据框的dataProvider TryApplyVars(temp, subIdentify, satellite, sensor); if (viewer.LayoutHost == null) { return; } ICanvas canvas = GetCanvasByTemplate(temp); if (canvas == null) { return; } Size dataSize = Size.Empty; GeoDo.RSS.Core.DrawEngine.CoordEnvelope viewPrjEvp = null; GeoDo.RSS.Core.DF.CoordEnvelope viewGeoEvp = null; float resolution = 0; int maxSize = GetBorderSizeByTemplate(viewer.LayoutHost.LayoutRuntime, temp); IAVILayer aviLyr = AVILayerBuilder.CreatAVILayer(fnames, canvas, maxSize, out dataSize, out viewPrjEvp, out viewGeoEvp, out resolution); if (aviLyr == null) { return; } aviLyr.OnTicked += new EventHandler(RefreshDataFrame); if (_isCustom) { TryApplyCustom(canvas, dataSize, subIdentify, viewPrjEvp, viewGeoEvp, resolution); } isOk = TryAddAviLayerToCanvas(canvas, aviLyr, viewPrjEvp); if (isOk) { session.SmartWindowManager.DisplayWindow(viewer); _host.ToSuitedSize(_host.LayoutRuntime.Layout); TryExportToGIF(session, subIdentify, outputFname); } }
private void button2_Click(object sender, EventArgs e) { _host.ToSuitedSize(); numericUpDown1.Value = (int)(_host.LayoutRuntime.Scale * 100); }