我实际上使用我自己的代码来产生金字塔的不同层的图像(瓷砖)(那些本来是由deepzoom composer产生的).I想知道是否可以在silverlight中加载它们?通常在网上,我看到过从深度缩放编写器中导出的图像,因此也就有了这个问题。
发布于 2011-03-03 23:35:21
对于一个大的图像,如果你已经有了该图像的金字塔组的瓦片图像,这是相当容易的。
Xml
自己创建一个子文件夹(通常在ClientBin下),以包含您的一组大图像(在本例中,我们只将其称为"Content“)。在此文件夹中创建一个Xml文件来描述您的深度缩放图像,例如"MyLargeImage1.xml“。使用以下Xml:
<?xml version="1.0" encoding="utf-8"?>
<Image TileSize="256" Overlap="1" Format="jpg" xmlns="http://schemas.microsoft.com/deepzoom/2008">
<Size Width="40000" Height="30000" />
</Image>注意:TileSize属性指示您所使用的瓦片的边长。因此,如果你在创建金字塔时使用了不同的瓦片大小,那么你应该调整这个值。另请注意Overlap,这表示每个平铺可以重叠的像素数,如果您在平铺中没有使用任何重叠,请将此值设置为0。
在Size元素中指定图像的实际像素尺寸。
图像文件
现在,在与该Xml文件相同的文件夹中,创建一个具有相同标题但后缀为"_files“的文件夹。在本例中是一个名为"MyLargeImage1_files“的文件夹。在这个文件夹中,我们有一系列代表金字塔图层的子文件夹。
在使用Gigapixel图像的情况下(例如我在上面使用的尺寸),您将有17个文件夹,命名范围从"0“到"16”。因为您需要降至16级才能以其原始分辨率查看此类图像。
这些文件夹中的每一个都将包含组成金字塔中此层的一组瓦片。这些是文件标题为"x_y“形式的.jpg文件,其中x和y是平铺在x和y轴上的顺序位置,其中0_0是左上角平铺。
在本例中,"8“之前的所有文件夹都将包含单个0_0.jpg文件,因为只有在级别8以上时,我们才会发现图像大于在Xml中指定的单个瓦片的256个限制。当然,如果您使用了不同的磁贴大小,那么这将对您有所不同。
到了"16“级,你会期望拥有从0_0.jpg到156_117.jpg的所有文件(18526个文件对于单个文件夹来说是一个很大的文件)。
Xaml
最后,要实际显示图像,请使用MultiScaleImage控件并将其源属性指向xml文件:-
<MultiScaleImage Source="/Content/MyLargeImage1.xml" />https://stackoverflow.com/questions/5174182
复制相似问题