python批量打印图片_iData批量将图形打印成png图片

本文档介绍了一款由南方数码研发的iData数据工厂,它是一个一体化地理信息数据处理平台,支持多种测绘数据生产和管理功能。作者通过C#语言实现了从.iData数据文件批量导出地图为PNG图片的功能,程序首先读取数据文件路径,然后打开每个数据文件,利用iData接口将地图图形保存为PNG格式。程序还支持用户选择数据文件夹,确保数据的一致性和完整性。
摘要由CSDN通过智能技术生成

iData数据工厂是南方数码研发的一个集测绘数据采编成图、数据入库、产品制作和生产任务管理于一体的拥有自主产权的一体化地理信息数据处理平台。新一代一体化测绘数据生产平台,能够实现数据采集、数据编辑、数据入库、数据质检、生产任务管理,3D测图等多种功能。支持对 CAD 系统( AutoCAD 、 MicroStation )数据的直接编辑和转换分发和打开,数据处理平台以ArcGIS 的原生空间数据库 Geodatabase PersonalGeodatabase ,文件后缀.mdb )为存储格式,直接面向 ArcGIS 及空间数据库,生产的数据无需转换,直接入库,进一步保证了数据的一致性和完整性。生产还能实现与现有GIS 系统之间的无缝数据交换和入库更新一体化,并且真正实现了图库一体化、图属一体化。并且支持C#、C++、lua、Java、Python语言进行二次开发。

在学习这个软件和软件的C#二次开发接口时,看到有个把图形打印到图片上的功能,后来就尝试做了一个程序,把所有的分幅图自动循环进行打开、调用程序内部接口,把图形打印成png图片。下面就用C#语言做的应用程序。

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.IO;using System.Windows.Forms;using System.Timers;using Southgis.iData;namespace CSiData{    public class iDataMain : iDataRunnerInterface    {        public void AddCommand()        {            //添加要执行的命令            iDataInterface.AddCommand("CSiData.Class1", "ExportPng", "图形导出图片");        }        public void InitApplication()        {            //模块加载后第一个执行        }        public void UnloadApplication()        {            //模块卸载时执行        }    }    public class Class1    {        public static void ExportPng()        {            iDataInterface iDataIntFac = new iDataInterface();            string sourcePath = iDataIntFac.sourcePath();            string[] templesfileNames = File.ReadAllLines(sourcePath + "\\" + "TEMPLESETFILE.txt", Encoding.UTF8);            string templesfileName = templesfileNames[0];            FolderBrowserDialog fderBrowDlg = new FolderBrowserDialog();            fderBrowDlg.Description = "请选择数据文件夹";            if (fderBrowDlg.ShowDialog() == DialogResult.OK)            {                string dbPath = fderBrowDlg.SelectedPath;                List<string> strFilePaths = Tools.GetFilesPath(dbPath);                for (int i = 0; i < strFilePaths.Count; i++)                {                    string strFilePath = strFilePaths[i];                    string extion = Path.GetExtension(strFilePath);                    string dic = Path.GetDirectoryName(strFilePath);                    string fileName = Path.GetFileNameWithoutExtension(strFilePath);                    if (extion == ".mdb")                    {                        DbBase db = iDataIntFac.GetCurBase();                        iDataIntFac.OpenDoc(strFilePath, false, templesfileName, 2);                        List listEnts = new List();                        //选择图上全部实体                        iDataIntFac.iDataSSGetX(out listEnts, null, false, SelectMode.selAll);                        iDataIntFac.saveEntitysToImage(dic + "\\" + fileName + ".png", 1600, 1600, listEnts, null, -1, null, null);                    }                }            }        }    }}

程序加载:

aff096b1d85d44f9a9cccd0dcc6140fb.png

数据文件

a6863142e67aef4ccc078b93268a43ab.png

单个数据打开:

5a7d2f22ab7d2d256155853ec8025d56.png

程序批量处理后结果图片

a39d8beae2ed7b69507aed4911a9eafd.png

4a0feaa07d896dbdf6ae4394eb26a5f8.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值