<Tag></Tag>お気づきのように、DeepZoomComposerは、Silverlight MultiScaleImage コントロールで使用できる要素をサポートしています (タグによるフィルタリングの例)。
また、DeepZoomComposer で編集して再生成すると、XML ファイルに追加した情報が「失われる」ことも正しいです (ただし、DeepZoomComposer に入力した場合は失われません)。
この問題を回避するために、TagUpdaterという小さなコンソール アプリケーションを作成しました。基本的には次のように動作します。
メタデータを画像に入力します: JPG ファイル形式はさまざまなフィールドをサポートしていますが、ここでは、タイトル、キーワード (タグ)、説明、および評価を使用しましょう。
画像を Microsoft の DeepZoomComposer に追加し (画像を動的に並べ替える必要があるため、レイアウトを気にする必要はありません。また、メタデータを入力する必要もありません)、通常どおりエクスポートします。
コンソール経由で呼び出しTagUpdater.exe Metadata.xmlます (DeepZoomComposer によって Metadata.xml ファイルが生成されます)。
TagUpdaterは、画像と更新からメタデータを直接抽出しますMetadata.xml(以下を参照)。これは既存の<Tag>データを破壊しますが、それ以外の場合は、ファイルを以前と同様に使用して、MultiScaleImage コントロールの 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>
メタデータは画像から取得されるため (DeepZoomComposer タグ ボックスではありません)、画像の追加/再生成を続けることができます。
以下に例を示します。各画像にカーソルを合わせると、右側のタグと説明がどのように更新されるか、およびタグのクリックに基づいて表示される画像がフィルター処理されることに注目してください。
Kirupa のソースは、この余分なデータを使用するように変更できます...
string tagString = g.Element("Tag").Value;
// get new elements as well
string descriptionString = g.Element("Description").Value;
string titleString = g.Element("Title").Value;
string ratingString = g.Element("Rating").Value;
これが興味深いものであることを願っています.TagUpdater自体がこれを達成する唯一の方法ではありません. これは非常に単純です。Metadata.XML ファイルを開き、<Image>要素をループ処理して を開き<FileName>、メタデータを抽出し、追加の XML 要素を追加して XML を保存するだけです。ファイル名を「キー」として使用すると、データベースから追加情報 (価格やその他の説明データなど) を取得し、必要なだけ XML ファイルを展開できます。