Deepzoom教程

Deepzoom是silverlight2.0的新特性之一,通过它,用户可以无限放大图片以浏览清晰的图片。以下就通过一个简单的实例来实现一个deepzoom应用。

首先启动Deep Zoom Composer (这个东西最近刚更新,给出的下载地址是最新版本的,界面可能会和下面的图有点不同但功能都是一样的):

1

新建一个project,然后输入project名字

projectname

接下来就可以看到如下的界面

userface

然后选择Add image,把图片文件导入到project中。

3

然后选择上方的Compose,把图片按照你想的方式排列好。这个时候在下方可以看到这样一条工具栏:

5

从第5个图标开始就是内建的一些排列方式,有向左或右对齐、水平或垂直对齐等等。比如这次我就做了类似于九宫格的排列方式:

6

然后就可以导出了:

7

导出后即得到如下SDI文件:

outputdata

至此,deep zoom应用的图片源文件就制作完成了,下面就是设计和coding部分了。

启动visual studio 2008,新建silverlight工程。然后复制如上的SDI文件粘贴到Clientbin文件夹下:

clientbin

之后在page.xml使用<MultiScaleImage>应用文件中的info.bin文件

<MultiScaleImage Source=”ws2008/info.bin” Height=”440″ x:Name=”ws2008rtm” Width=”600″ Canvas.Left=”20″ Canvas.Top=”20″  Grid.Row=”0″ Grid.RowSpan=”6″  Grid.Column=”0″ Grid.ColumnSpan=”3″/>

之后可以编辑page.xml.cs,加入一些鼠标事件,比如拖动阿、使用滚轮放大缩小等等。

部分源代码如下,本来想上传到skydrive上的,但是最近国内电信访问不了,需要完整的可以发e-mail给我,[email protected]

code1    

这里用到了MouseWheelHelper类,以下为部分MouseWheelHelper类的源代码,需要的依然可以给我mail。

mousecode

按f5进行调试并预览:

result

至此,一个简单的deep zoom应用做完了,需要完整solution的可以发e-mail给我: [email protected]

Continue reading “Deepzoom教程”

Silverlight Streaming Step by Step

Silverligh作为Microsoft下一代表现层已经发布许久了,3月的mix 08’上又发布了silverlight 2.0 beta的内容,包括visual studio 2008 tools,SDK等等,一切都很好很强大。现在就来介绍以下免费托管Silverlight应用的windows live 应用,并一步一步地说明如何托管一个简单的Silverlight应用。

1

首先访问http://silverlight.live.com,如果有windows live id的话可以免费注册,并获取高达10G的存储空间,单个105M的文件限制,最高1.4M/bps的码率。space

创建好帐号后,会得到一个account id和key,id是公开的,托管应用的时候要用到,而Key则是私有的,不过忘记了可以regenerate一下,如果用过http://code.google.com 的话,是一样的。

account

接下来就是实际托管应用了。首先你需要写一个应用的manifest.xml文件,记事本、visual studio 2008都可以创建,具体写法如下:

<SilverlightApp>

<version>2.0</version>

<source>SilverlightApplication1.xap</source>

<width>400</width>

<height>300</height>

<background>white</background>

<isWindowless>false</isWindowless>

</SilverlightApp>

这是个最简单应用的manifest.xml的写法,具体属性可以在Silverlight Streaming SDK->Preparing Applications for Silverlight Streaming->Creating the Application Manifest中找到。不过你也可以先不急着创建这个xml文件,后面会说到这个问题。

写好之后,就是上传文件的步骤了。

manageapplicants

一共需要上传2个,一个就是manifest.xml一个就是你的silverlight project目录client bin 文件夹下那个编译好的.xap文件。把这2个文件打包成一个.zip压缩包上传就可以了,后台会自动解压。上传完之后就出现这个画面。

manapp3 

Upload Updated Application需要用same name,也可以delete application。也可以直接preview你做好的应用。manapp4

然后在这里大家注意到有个Configure this Application没有。如果没有上传manifest.xml的话,其实在这里可以自动创建一个。如下图

manapp2

现在一切都已经差不多做好了,下一步就是把应用发布到你现有的网站里了。

addapp

3种途径,

第一就是以frame方式写在html代码里;第2种使用live control,照着3步做就可以了;还有就是可以根据下面的地址下载一个windows程序,打开就可以了。

至此,使用silverlight streaming托管一个程序就全部结束了,还是挺方便的,不过对于国内用户来说,load一个应用的时间还是太长,带宽因素吧,赫赫。