Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将元数据与DeepZoom子映像关联?_C#_Silverlight_Deepzoom - Fatal编程技术网

C# 如何将元数据与DeepZoom子映像关联?

C# 如何将元数据与DeepZoom子映像关联?,c#,silverlight,deepzoom,C#,Silverlight,Deepzoom,我试图根据与每个图像相关联的任意数据,对DeepZoom子图像集合进行排序。子图像通过DeepZoom Composer生成的XML文件自动加载。我看不到一个清晰的方法将任意数据与DeepZoom子图像关联起来 对我来说,最明显的解决方案是脆弱的,而且不能很好地扩展。理想情况下,我希望将相关数据放在生成的XML文件中,但在下一组生成的图像中会丢失这些信息 是否有一种行之有效的方法来实现这一目标?Metadata.xml有一个可以与每个图像关联的标记属性。万岁 Metadata.xml具有可与每个

我试图根据与每个图像相关联的任意数据,对DeepZoom子图像集合进行排序。子图像通过DeepZoom Composer生成的XML文件自动加载。我看不到一个清晰的方法将任意数据与DeepZoom子图像关联起来

对我来说,最明显的解决方案是脆弱的,而且不能很好地扩展。理想情况下,我希望将相关数据放在生成的XML文件中,但在下一组生成的图像中会丢失这些信息


是否有一种行之有效的方法来实现这一目标?

Metadata.xml有一个可以与每个图像关联的标记属性。万岁

Metadata.xml具有可与每个图像关联的标记属性。万岁

正如您所注意到的,DeepZoomComposer支持可在Silverlight MultiScale图像控件()中使用的
元素

在DeepZoomComposer中编辑并重新生成时,您将“丢失”添加到XML文件中的任何信息,这也是正确的(但是,如果您在DeepZoomComposer中键入,则不会丢失这些信息)

为了解决这个问题,我编写了一个名为的小控制台应用程序——基本上是:

  • 您将元数据放在图像中:JPG文件格式支持许多不同的字段,但现在让我们使用标题、关键字(标记)、描述和评级

  • 您可以将图像添加到Microsoft的DeepZoomComposer(不必费心布置它们,因为您可能希望对它们进行动态排序;也不必费心输入任何元数据)并正常导出

  • 通过控制台调用
    TagUpdater.exe Metadata.xml
    (DeepZoomComposer将生成Metadata.xml文件)

  • TagUpdater直接从图像中提取元数据,并更新
    metadata.xml
    (见下文)。它会破坏现有的
    数据,但除此之外,该文件可以像以前一样用于为多尺度图像控件中的DeepZoom集合提供元数据信息

    <Image>
    <FileName>C:\Documents and Settings\xxxxxx\My Documents\Expression\Deep Zoom Composer Projects\Bhutan\source images\page01.jpg</FileName> 
    <x>0</x> 
    <y>0</y> 
    <Width>0.241254523522316</Width> 
    <Height>0.27256162721473</Height> 
    <ZOrder>1</ZOrder> 
    <Tag>Bhutan,Mask</Tag> 
    <Description>Land of the Thunder Dragon</Description> 
    <Title>Bhutan 2008</Title> 
    <Rating>3</Rating> 
    </Image>
    

    希望这会引起一些兴趣-TagUpdater本身并不是实现这一点的唯一方法。它非常简单:它只需打开Metadata.XML文件,循环通过
    元素打开
    ,提取元数据,添加其他XML元素并保存XML。使用文件名作为“键”,您可以从数据库中获取附加信息(例如价格或更多描述数据),并根据需要扩展XML文件。

    正如您所注意到的,DeepZoomComposer支持可在Silverlight MultiScaleImage控件()中使用的
    元素

    在DeepZoomComposer中编辑并重新生成时,您将“丢失”添加到XML文件中的任何信息,这也是正确的(但是,如果您在DeepZoomComposer中键入,则不会丢失这些信息)

    为了解决这个问题,我编写了一个名为的小控制台应用程序——基本上是:

  • 您将元数据放在图像中:JPG文件格式支持许多不同的字段,但现在让我们使用标题、关键字(标记)、描述和评级

  • 您可以将图像添加到Microsoft的DeepZoomComposer(不必费心布置它们,因为您可能希望对它们进行动态排序;也不必费心输入任何元数据)并正常导出

  • 通过控制台调用
    TagUpdater.exe Metadata.xml
    (DeepZoomComposer将生成Metadata.xml文件)

  • TagUpdater直接从图像中提取元数据,并更新
    metadata.xml
    (见下文)。它会破坏现有的
    数据,但除此之外,该文件可以像以前一样用于为多尺度图像控件中的DeepZoom集合提供元数据信息

    <Image>
    <FileName>C:\Documents and Settings\xxxxxx\My Documents\Expression\Deep Zoom Composer Projects\Bhutan\source images\page01.jpg</FileName> 
    <x>0</x> 
    <y>0</y> 
    <Width>0.241254523522316</Width> 
    <Height>0.27256162721473</Height> 
    <ZOrder>1</ZOrder> 
    <Tag>Bhutan,Mask</Tag> 
    <Description>Land of the Thunder Dragon</Description> 
    <Title>Bhutan 2008</Title> 
    <Rating>3</Rating> 
    </Image>
    

    希望这会引起一些兴趣-TagUpdater本身并不是实现这一点的唯一方法。它非常简单:它只需打开Metadata.XML文件,循环通过
    元素打开
    ,提取元数据,添加其他XML元素并保存XML。使用文件名作为“密钥”,您可以从数据库中获取附加信息(例如,价格或更多描述数据),并根据需要扩展XML文件。

    @CraigD,非常酷的回答,您提供的信息非常好,但我的一个问题仍然没有回答,即如何知道选择了哪幅图片(当鼠标停在图片上时)?我需要知道光标所在的图片,以便在面板上显示相关的元数据。我从以下URL下载了您提到的示例的源代码,但相关的mousemove事件似乎无法处理决定鼠标光标当前所在图片的问题?@CraigD,非常酷的回答,infor您提供的信息非常好,但我的一个问题仍然没有回答,即如何知道选择了哪张图片(当鼠标停在图片上时)?我需要知道光标所在的图片,以便在面板上显示相关元数据。我从以下URL下载了您提到的示例的源代码,但相关的mousemove事件似乎无法处理确定鼠标光标当前所在图片的问题?