1,最近做了个地图文件输出图片的功能,思想主要就是利用MapControl的ActiveView中的out方法:
2代码如下:欢迎交流指正
1 SaveFileDialog m_save = new SaveFileDialog(); 2 m_save.Filter = "jpeg图片(*.jpg)|*.jpg|tiff图片(*.tif)|*.tif|bmp图片(*.bmp)|*.bmp|emf图片(*.emf)|*.emf|png图片(*.png)|*.png|gif图片(*.gif)|*.gif"; 3 m_save.ShowDialog(); 4 string Outpath = m_save.FileName; 5 if (Outpath != "") 6 { 7 //分辨率 8 double resulotion = MapControl.ActiveView.ScreenDisplay.DisplayTransformation.Resolution; 9 IExport m_export = null;10 if (Outpath.EndsWith(".jpg"))11 {12 m_export = new ExportJPEG() as IExport;13 14 }15 else if (Outpath.EndsWith(".tig"))16 {17 m_export = new ExportTIFF() as IExport;18 19 }20 else if (Outpath.EndsWith(".bmp"))21 {22 m_export = new ExportBMP() as IExport;23 24 }25 else if (Outpath.EndsWith(".emf"))26 {27 m_export = new ExportEMF() as IExport;28 }29 else if (Outpath.EndsWith(".png"))30 {31 m_export = new ExportPNG() as IExport;32 }33 else if (Outpath.EndsWith(".gif"))34 {35 m_export = new ExportGIF() as IExport;36 }37 //设置输出的路径38 m_export.ExportFileName = Outpath;39 //设置输出的分辨率40 m_export.Resolution = resulotion;41 tagRECT piexPound;42 piexPound = MapControl.ActiveView.ScreenDisplay.DisplayTransformation.get_DeviceFrame();43 IEnvelope m_envelope = new Envelope() as IEnvelope;44 m_envelope.PutCoords(piexPound.left, piexPound.bottom, piexPound.right, piexPound.top);45 //设置输出的IEnvelope46 m_export.PixelBounds = m_envelope;47 48 ITrackCancel m_trackCancel = new CancelTracker();49 //输出的方法50 MapControl.ActiveView.Output(m_export.StartExporting(), (short)resulotion, ref piexPound, MapControl.ActiveView.Extent, m_trackCancel);51 m_export.FinishExporting();