arcgis开发笔记【DeepZoom应用】

对于图片的显示DeepZoom是个非常棒的技术。

 

项目中由于需要对于一个高分辨率的图片进行拖动、放大、Zoom out等操作,

DeepZoom实现这个功能是小菜一碟

具体的使用就是:

使用DeepZoom Composer建立一个项目,最后导出结果,然后silverlight引用

这个发布的服务地址即可

1、导出的结果为:

2、silverlight使用的方法:

 

但由于项目中涉及的这种图片文件非常的多,如果手工一个个的处理,太浪费时间,

因此需要一个工具自动化的处理这个问题。

http://blogs.msdn.com/zxue/archive/2010/05/05/handy-tools-complimentary-to-deep-zoom-composer.aspx?utm_source=feedburner&utm_medium=twitter&utm_campaign=Feed%3A+Microsoft%2FMSDN-Blogs+(MSDN+Blogs)

这个地址实现的是一个旧版本的DeepZoom Composer自动处理的方法。

 

在新版本的DeepZoom Composer[DeepZoomCompose.exe 1.0.0.0]中可以采用如下的方法实现:

1、引用库文件DeepZoom Composer 1.0版本的.dll文件DeepZoomTools.DLL

2、自动处理代码如下:

SparseImageCreator的形式

            SparseImageCreator ic = new SparseImageCreator();

            ic.TileFormat = ImageFormat.Jpg;

            ic.ImageQuality = 1;//0.95;

            ic.TileOverlap = 0;

 

            Microsoft.DeepZoomTools.Image img = new Microsoft.DeepZoomTools.Image(@"C:\Users\Public\Pictures\Sample Pictures\Hydrangeas.jpg");

 

            List<Microsoft.DeepZoomTools.Image> images = new List<Microsoft.DeepZoomTools.Image>() { img };

            ic.Create(images, @"D:\test\silverlight\UntitledProject1\Exported Data\ss\GeneratedImages\dzc_output");

 

CollectionCreator的形式

….

{

     string source = @"C:\Users\Public\Pictures\Sample Pictures";

            string dest = @"C:\Users\Public\Pictures\Sample Pictures";

 

            List<string> images = GetImagesInDirectory(source);

            List<string> data = new List<string>();

 

            foreach (var image in images)

            {

                ImageCreator ic = new ImageCreator();

 

                ic.TileSize = 256;

                ic.TileFormat = ImageFormat.Jpg;

                ic.ImageQuality = 0.95;

                ic.TileOverlap = 0;

 

                string target = dest + "\\output_images\\" + Path.GetFileNameWithoutExtension(image);

 

                ic.Create(image, target);

                data.Add(Path.ChangeExtension(target, ".xml"));

            }

 

            CollectionCreator cc = new CollectionCreator();

 

            cc.TileSize = 256;

            cc.TileFormat = ImageFormat.Jpg;

            cc.MaxLevel = 8;

            cc.ImageQuality = 0.95;

 

            cc.Create(data, dest + "\\output");

        }

 

        private static List<string> GetImagesInDirectory(string path)

        {

            return GetImagesInDirectory(new DirectoryInfo(path));

        }

 

        private static List<string> GetImagesInDirectory(DirectoryInfo di)

        {

            List<string> images = new List<string>();

 

            // get all the images in this directory first

            foreach (var fi in di.GetFiles("*.jpg"))

            {

                images.Add(fi.FullName);

            }

 

            // get all the directories with their images

            foreach (var sub in di.GetDirectories())

            {

                images.AddRange(GetImagesInDirectory(sub));

            }

 

            return images;

        }

 

这样只要确定固定的目录后,可以一次把所有目录的文件按照同样的规则转换一遍,以后更新图片时,使用这个工具转一次即可。

时间: 2024-07-28 21:53:56

arcgis开发笔记【DeepZoom应用】的相关文章

arcgis开发笔记【系统介绍】

最近接触了arcgis的项目开发,有空这个东西做成一些笔记发布   先来简单介绍一下arcgis的组成,这个软件套装是很专业的东西,因此对这个软件的整体构成有个了解 对于开发工作比较有方向指导作用.   整个软件产品线的描述  ArcGIS桌面产品(ArcGIS Desktop)是一系列整合的应用程序的总称,包括ArcCatalog,ArcMap,ArcGlobe,ArcToolbox和ModelBuilder.通过协调一致地调用应用和界面,你可以实现任何从简单到复杂的GIS任务,包括制图,地理

arcgis开发笔记【rest服务参考】

上篇文章讲到了要访问地图rest服务,为了把这个服务接口的开发工作弄清,有以下参考: http://cid-56b433ad3d1871e3.skydrive.live.com/self.aspx/.Public/ArcGIS%20Server%209.3%20REST%20%e5%9f%ba%e7%a1%80%e6%95%99%e7%a8%8b.zip 这个是arcgis官方发布的一个rest解说的图书,看了这个可以了解arcgis的rest服务基础和基本架构等内容   了解了以后要用这个re

arcgis开发笔记【参考资料】

由于是新接触arcgis和silverlight的开发,因此快速的找到相关的资料很重要,通过这些例子可以快速的学习, 如下有很多的参考资源的站点:   关于arcgis silverlight的开发 http://www.gisall.com/html/zhuanti/ria/index.html http://bbs.esrichina-bj.cn/ESRI/thread-48129-1-2.html   silverlight的实现方案和例子参考 http://www.silverlight

arcgis开发笔记【silverlight开发资料】

关于silverlight的开发 http://bbs.esrichina-bj.cn/ESRI/thread-48129-1-2.html 以上资料是个很好的开始,涉及了常用的开发任务 我把这个资料和例子独立整理出来放到了一个文档中,我们的开发小组人员都可以看到,现 共享一下供园子人员方便参考: http://cid-56b433ad3d1871e3.skydrive.live.com/self.aspx/.Public/arcGIS-silverlight.docx [文档中的例子代码包括了

arcgis开发笔记【系统的安装】

由于需要熟悉和部署整个arcgis的系统,因此把安装步骤记录一下 ArcGIS有JAVA和.net两个版本,根据服务端开发技术的不同选择不同的安装包 Server安装注意[必选] 安装时系统用户必须有管理员权限,按步骤"下一步"即可,没什么需要特别注意的.安装完之后会在系统中新建3个用户arcgisSOM. arcgisSOC .arcgismanager ,2个用户组agsadmin和agsusers.将当前用户加入agsadmin组以可以管理服务,xp 系统关闭简单文件共享,关闭防

arcgis开发笔记【打印】

Web打印 从网上找了一些关于asp.net打印的资料,参考"关于Web打印",参考 http://cid-56b433ad3d1871e3.skydrive.live.com/self.aspx/.Public/%e5%85%b3%e4%ba%8eWEB%e6%89%93%e5%8d%b0.docx 最后选择了使用ReportViewer实现打印功能 arcgis silverlight内容的打印 实现思路: silveilight程序中把页面中需要打印的对象转换成图形base64编

arcgis开发笔记【Oracle远程连接开发】

项目中使用了oracle数据库,为了配置远程连接花费了一些功夫,特记录一下:   由于orcale数据库已经在别的机器安装好了,而开发机器都是自己的机器上的,因此需要远程连接oracle数据库, 网上有说要安装oracle的客户,不过那个工具太大,一个简便的方法是:   前提:首先本机上已安装JDK,并设置了CLASSPATH   [以下来自网络] 1.从Oracle官方下载"Instant Client Package"的软件http://www.oracle.com/technol

arcgis开发笔记【Oracle使用汇总】

由于是第一次应用Oracle系统,在参考相关的资料后,总算顺利安装和开发好了,把 遇到的一些问题总结一下. 1.数据库服务不能启动 在Windows系统中有些时候,Oracle的数据库会无法自动启动成功,但是手动启动却是可以的,在这种情况下我们可以尝试重新创建Oracle服务来看看问题是否能够解决. 重建Oracle服务可以利用Oracle在Windows操作系统下特有的oradim使用程序. 数据库的SID可以通过下面的方法知道: 检查windows的服务,找到类似于OracleService

arcgis开发笔记[silverlight提高访问速度,减小XAP]

用户打开同一SilverLight站点时,由于每次都要重新加载SilverLight应用程序包(.xap文件),因此会大大的降低用户体验.因此微软在SilverLight 3.0版本中提供了应用程序集缓存(Application Library Caching),可以解决这一缺陷.   应用程序集缓包括两个部分:     1.SilverLight本身的程序集缓存:     2.用户自定义程序集缓存. 第一种方式MSDN已经提到,只要在IDE设置一下即可 第二种方式操作时容易出错,具体例子如下: