zoukankan      html  css  js  c++  java
  • arcengine 将地图文件保存为图片(包括各种图片格式)

    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                 //设置输出的IEnvelope
    46                 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();
  • 相关阅读:
    Spring 循环依赖的三种方式(三级缓存解决Set循环依赖问题)
    终于有人把“TCC分布式事务”实现原理讲明白了
    Java synchronized 关键字的实现原理
    Synchronized的实现原理(汇总)
    Spring的Bean的生命周期(大众版)
    Synchronized与Lock的区别与应用场景
    Lock与synchronized 的区别
    线程的同步控制synchronized和lock的对比和区别
    lock和synchronized的同步区别与选择
    Mybatis3.x与Spring4.x整合
  • 原文地址:https://www.cnblogs.com/huchaoheng/p/3579996.html
Copyright © 2011-2022 走看看