因为我们组的项目要通过截图获取数据,所以要经常使用截图工具,之前截图都是根据教程(https://www.cnblogs.com/PIESat/p/10243308.html)用的地图显示范围截图,而用地图显示范围截图有一个很大的缺陷,那就是它只能获取设备的框架(dT.DeviceFrame),也就是mapcontrol的整个范围。有时候你想要截图的范围并不是整个界面,所以这样就很不方便,这里把技术员小姐姐教我的方法介绍给大家,这个方法能截出自定义的范围,达到自己想要的效果:

                //获取截取影像的范围
IEnvelope envelopshp = new Envelope();
envelopshp = feature.envelop;
//实例化输出png对象,并设置输出属性
PIE.Carto.ExportPNG export = new PIE.Carto.ExportPNG(); //确定导出png的宽度和高度
export.Width = ; //(int)dT.DeviceFrame.Width; 自由设置
export.Height = ;//(int)dT.DeviceFrame.Height; 自由设置
// 创建一个矩形区域,将矩形范围设置为截图范围
RectangleF rectangle = new RectangleF((float)envelopshp.XMin, (float)envelopshp.YMax, , ); //png导出
export.ExportFileName = PNGpath;
export.StartExporting();
//根据矩形范围来截取
MC_cut2.ActiveView.Output(export as PIE.Carto.IExport, , rectangle, envelopshp, null); //空间释放
export.FinishExporting();
((IDisposable)export).Dispose();
export = null;

这就是通过一个矩形区域存入截图范围,且利用矩形区域截图的过程,这样就用不用把截图范围局限在mapcontrol整个界面了,最后一定要记得释放空间,要有释放空间的好习惯,这样不仅更加规范,而且也不会影响后续的处理。

至于如何将截图数据转换为GeoTiff,关键在于两个地方,一就是要有截图的四至坐标,二就是根据栅格的读取(https://www.cnblogs.com/PIESat/p/10169156.html),利用截图的四至坐标进行六参数转换,从而读为GeoTiff。

PIE截图方法的优化的更多相关文章

  1. python web自动化测试中失败截图方法汇总

    在使用web自动化测试中,用例失败则自动截图的网上也有,但实际能落地的却没看到,现总结在在实际应用中失败截图的几种方法: 一.使用unittest框架截图方法:   1.在tearDown中写入截图的 ...

  2. SCRUM,一个采用迭代,增量方法来优化可预见控制风险

    Scrum是一个用于开发和维持复杂产品的框架,是一个增量的,迭代的开发过程.在这个框架中,整个开发过程是由若干个短的迭代周期组成,一个短的迭代周期称为一个Sprint,每个Sprint的建议长度是2到 ...

  3. Spark程序运行常见错误解决方法以及优化

    转载自:http://bigdata.51cto.com/art/201704/536499.htm Spark程序运行常见错误解决方法以及优化 task倾斜原因比较多,网络io,cpu,mem都有可 ...

  4. Unity3d之截图方法

    http://blog.csdn.net/highning0007/article/details/37991787 Unity3d之截图方法 分类: Unity3D2013-11-28 17:13  ...

  5. MySQL大数据量分页查询方法及其优化

    MySQL大数据量分页查询方法及其优化   ---方法1: 直接使用数据库提供的SQL语句---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N---适 ...

  6. RF实现多次失败重跑结果合并的基础方法和优化方法

    实现思路:通过分次执行失败案例重跑,然后通过结果文件合并命令实现多次失败重跑结果文件的合并,并输出合并后的log和report文件: 说明:具体失败案例重跑命令和结果文件合并命令请参考本博客其他相关章 ...

  7. selenium-java,UI自动化截图方法

    截图方法: import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; impor ...

  8. C#截图操作(几种截图方法)

    公共函数获取屏幕截图private Bitmap GetScreenCapture(){ Rectangle tScreenRect = new Rectangle(0, 0, Screen.Prim ...

  9. Java&Selenium截图方法封装

    Java&Selenium截图方法封装 package util; import org.apache.commons.io.FileUtils; import org.openqa.sele ...

随机推荐

  1. pymysql之有序字典

    #!/usr/bin/env python #-*-coding:utf-8-*- import pymysql import json import collections conn = pymys ...

  2. Spark之RDD

    Spark学习之路Spark之RDD 目录 一.RDD的概述 1.1 什么是RDD? RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数 ...

  3. 经典的卷积神经网络及其Pytorch代码实现

    1.LeNet LeNet是指LeNet-5,它是第一个成功应用于数字识别的卷积神经网络.在MNIST数据集上,可以达到99.2%的准确率.LeNet-5模型总共有7层,包括两个卷积层,两个池化层,两 ...

  4. jenkins自动打包生成docker镜像后自动发布并nginx代理访问

    之前曾写过docker及jenkins基础使用  https://www.cnblogs.com/xiaochangwei/category/816943.html 现在搭建环境的功能为: 1.jen ...

  5. django rest framework 过滤 lim分页

    一.过滤 1.首先引用diango 自带的过滤配置 2.导入模块 from django_filters.rest_framework import DjangoFilterBackend from ...

  6. python 一些程序规范(跨目录调用文件)

    文档内容学习于 http://www.cnblogs.com/xiaozhiqi/ 参考: https://www.cnblogs.com/monologuesmw/p/9490093.html 软件 ...

  7. 莫烦TensorFlow_06 plot可视化

    import tensorflow as tf import numpy as np import matplotlib.pyplot as plt def add_layer(inputs, in_ ...

  8. nginx发布静态资源

    nginx发布静态资源 参考 ngx_http_index_module index指令 ngx_http_core_module http指令 location指令 listen指令 root指令 ...

  9. 如何禁用Antimalware Service Executable

    有时发现风扇呼呼地转,查看任务管理器,发现其中antimalware service executable占用了大量的CPU和内存. 这是由于Windows Defender软件导致的,可以用如下方法 ...

  10. 【oracle】存储过程中获取delete语句执行后删除的记录数

    dbms_output.put_line(to_char(sql%rowcount));