用到的引用

using ESRI.ArcGIS.Output;   //文件导出用
using ESRI.ArcGIS.Geometry;   //获得Envelope用

用到的关键类/接口

类/接口 描述
IExporter 提供访问地图导出类的方法
JpegExporterClass 导出jpg文件的类
tagRect 用来存储坐标范围的结构体
IEnvelope 提供访问图形外包络矩形的方法
EnvelopeClass 用于创建外包络矩形的类

实现思路:

Exporter有三个必要参数:文件保存位置 path、分辨率 resolution、栅格范围 pixel bound,按照这个思路进行

  • 获取保存位置
  • 指定输出图片类型
  • 获取AxMapControl分辨率
  • 获取输出图片大小
  • 使用IActiveView接口的Output方法输出

详细步骤:

创建导出Jpg类,指定保存路径及分辨率

IExporter pExport = new JpegExporterClass();  //创建jpg格式输出
pExp.Resolution = resolution;
pExp.ExportFileName = path;

获取输出图片大小

tagRECT tag = axMapControl1.ActiveView.ExportFrame;
IEnvelope deviceEnveloe = new EnvelopeClass();
deviceEnveloe.PutCoords(deviceRect.left, deviceRect.top, deviceRect.right, deviceRect.bottom);   //定义与初始化Envelope
pExport.PixelBounds = deviceEnveloe;  //设置范围为全图

使用IActiveView接口的Output方法输出

axMapControl1.ActiveView.Output(pExport.StartExporting(), pExport.Resolution, ref deviceRect, axMapControl1.ActiveView.Extent,null);
pExport.FinishExporting();  //与输出有关的都会在最后关闭输出流

全部代码(函数)

        private void saveJpg(string path){//获得范围double resolution = axMapControl1.ActiveView.ScreenDisplay.DisplayTransformation.Resolution;tagRECT tag = axMapControl1.ActiveView.ExportFrame;IEnvelope pEnvelope = new EnvelopeClass();pEnvelope.PutCoords(rect.left, rect.bottom, rect.right, rect.top);IExporter pExporter = new JpegExporterClass();pExporter.ExportFileName = path;pExporter.Resolution = (short)resolution;pExporter.PixelBounds = pEnvelope;axMapControl1.ActiveView.Output(pExporter.StartExporting(), pExporter.Resolution, ref rect, axMapControl1.Extent, null);pExporter.FinishExporting();}

ArcGIS Engine导出jpg相关推荐

  1. ArcGIS Engine 项目10.1升级10.2

    一 10.1 到 10.2 ArcGIS Engine 项目,相同代码,从10.1升级10.2: 首先是VS载入项目时窗体上的控件会出现问题:然后,如下面图,即可: 看下引用,已经出了问题: 右击添加 ...

  2. ArcGIS Engine开发之旅02--ArcGIS Engine中的类库

    原文 ArcGIS Engine开发之旅02--ArcGIS Engine中的类库 System类库 System类库是ArcGIS体系结构中最底层的类库.System类库包含给构成ArcGIS的其他 ...

  3. ArcGIS Engine代码共享-可以直接移植到你的工程中

    以前写ArcGIS Engine程序,都是一些代码积累,基本上都是静态变量,如果有基础的一看就明白了,我也没有时间来总结这一块了,大家自己消化吧,好多东西应该可以直接移植到其他地方. ArcGIS E ...

  4. ArcGIS Engine开发:框架/结构+对象库

    ArcGIS Engine开发:框架/结构+对象库 框架/结构: ArcGIS Engine 开发人员有权使用一系列的控制器,这些控制器 准许很多属性.事件和方法的使用.尽管一个简单的应用软件 仅仅通 ...

  5. ArcGIS Engine环境下VS窗体与Unity虚拟现实地理空间的嵌套和交互

    本文目录 一.前言 1.结果图片 2.相关系统与平台介绍 3.实践思路与基本流程 4.涉及环境与软件 二.前期操作介绍 1.Unity和Winform窗体的连接交互 1.1.Unity和Winform ...

  6. Arcgis Engine 提示The operation cannot be performed on a non-simple geometry.

    问题背景: 使用search对SDE中图层进行查询与目标Geometry相交的图层.geometry是我通过图幅号获取得到的.报错结果:The operation cannot be performe ...

  7. ArcGIS Engine开发的类ArcCatalog数据管理工具

    这是以前的ArcGIS Engine开发成果,主要是Geodatabase方面的,模仿ArcCatalog的相关功能,进行了相关的开发 系统环境: VS2010.ArcGIS Engine10.Dev ...

  8. ArcSDE、ArcGis Engine、ArcGis Desktop的授权配置

    ArcSDE.ArcGis Engine.ArcGis Desktop的授权配置 <?xml:namespace prefix = o ns = "urn:schemas-micros ...

  9. ArcGIS Engine中的Symbols详解

    转自原文 ArcGIS Engine中的Symbols详解 本文由本人翻译ESRI官方帮助文档.尊重劳动成果,转载请注明来源. Symbols ArcObjects用了三种类型的Symbol(符号样式 ...

最新文章

  1. Java 多线程的基本方式
  2. Android多线程:深入分析 Handler机制源码(二)
  3. 化工原理 补考(重点)
  4. 高效程序员的45个习惯 pdf_如何培养孩子高效学习?养成高效学习的7 个习惯。建议收藏...
  5. android jpush json,发送了正确的JPush json却报1002
  6. 闭包 装饰器 偏函数
  7. linux之抓包神器tcpdump
  8. 4.4 VGG CNN、tensorflow实现——python实战
  9. shell oracle 多进程,Shell多进程实现
  10. MFC中给对话框重绘边框
  11. 【BZOJ2959】长跑 LCT+并查集
  12. 电源完整性之Cadence Sigrity Power DC_电热协同仿真
  13. java模板beetl引擎_模板引擎-beetl
  14. 搭档之家:14天1.5万人民币!悉尼将征收入境隔离费
  15. 利用VBA在EXCEL 获取网页上的天气
  16. HTTP状态码全部说明
  17. (七)通过pygame来设置飞机大战中 敌机 的速度、位置等
  18. matlab基础语法
  19. 《科学的画廊》:看见图片背后的科学
  20. 【二】、什么是抽象数据类型

热门文章

  1. 散养土鸡野外天敌的防护
  2. 教育在线学习系统,教育培训都能用,支持多个终端
  3. linux 配置串口重定向,Linux重定向console口控制台
  4. 2019.4.3拼多多笔试第一题
  5. 51单片机 串口发送数据(只是发送)
  6. 会计专业为什么要学python-御丽诗妃:为什么我建议你一定要学Python?
  7. 网站交换友情链接是否对SEO优化有帮助?
  8. 消息队列处理高并发【转】
  9. python 矩阵特征值分解_python3-特征值,特征分解,SVD奇异值分解
  10. 三层架构 - 表现层(界面层、Web层 - MVC)、业务逻辑层(Service)、数据访问层(DAO)