Base64 エンコード イメージ

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  デザインオブジェクト/機能 > イメージ >

Base64 エンコード イメージ

イメージが Base64 テキストとしてエンコードされる場合、 XML 要素ノード のテキストコンテンツとして保管されることができます。下のリストでは、 Base 64 エンコード イメージは <png> 要素のコンテンツです。

<images><png>iVBORw0KGgoAAAANSUhEU...</png></images>

 

Base 64 エンコードイメージを挿入するには、イメージ コントロールの [イメージ ソース] プロパティの XPath 式がイメージの Base64 エンコード テキスト文字列を解決する必要があります。イメージの Base64 エンコード文字列を含む XML ノードを [ページ ソース] ペイン から [イメージ コントロール] へドロップすることもできます。下の例は Base64 イメージがデザインでどのように使用できるかを説明しています。

 

メモ:イメージソースが変更するたびに、 (例えばユーザーの選択により)、 イメージの [再ロード] アクション が新しいイメージを表示するために必要になります。

 

ファイルの例: Base64Images.mtd

デザイン ファイル Base64Images.mtdマイドキュメント MobileTogether フォルダーにあります: MobileTogetherDesignerExamples\Tutorials\Images。  MobileTogether Designer でこのファイルを開くことができ、シミュレータ [F5] を実行してデザインの定義を確認することができます。

 

デザインファイルは、 (Tutorials\Images フォルダにも存在する) XML ファイル Base64Images.xml に保管される、 Base 64 エンコード イメージを使用します。 XML ファイルの構造は下のスクリーンショットに表示されています。 images 要素は、 5 つの子要素を持ち、各子要素は、 Base64 テキスト文字列として保管される異なるフォーマットのイメージを持ちます。 $PERSISTENT ツリーは、一時的なユーザー選択(ComboBoxValue) と選択されたイメージの Exif データが存在する場合そのデータを保存するために使用されます。

MTDBase64ImagesTut01

デザイン(下のスクリーンショット) には、ページタイトルのラベルと 2 つのテーブルがあります。2 番目のテーブルにはラベルと編集フィールドがあります。

MTDBase64ImagesTut02Design

コンボボックスからイメージの種類を選択します (下のシミュレーターを参照)。 コンボボックスは (XML ファイルから) 表示する Base64 イメージを選択するために使用されています。

MTDBase64ImagesTut03Sim

注意する重要な点:

 

ページのロード時イベントは jpg の値を使用して $PERSISTENT/ComboBoxValue ノードを初期化します。
( [ページ ソース] ペイン からノードコンボ ボックスにドロップして) コンボ ボックスをノード $PERSISTENT/ComboBoxValue に関連付けます。 この関連付けは、現在のノードの値がコンボ ボックスに表示されており、コンボ ボックスの選択が自動的にノードを更新します。
値の簡単なリスト付き コンボ ボックス のドロップダウンリストが作成されます。
[イメージ] コントロールの [イメージソースの種類] プロパティは Base64 に設定されています。
[イメージ] コントロールの [イメージ ソース] プロパティは次の XPath 式に設定されています: $XML1/images/element()[local-name() eq $PERSISTENT/Root/ComboBoxValue]。これは、ノード $PERSISTENT/ComboBoxValue のコンテンツと等しいイメージ要素の子要素を選択します。 つまり、ノードのコンテンツに一致する名前を持つ XML ファイルの Base 64 エンコード イメージ要素を選択します。
エンドユーザーがコンボ ボックスからアイテムを選択すると、そのアイテムの値がノード $PERSISTENT/ComboBoxValue に入力されます。このノードの値は XML ファイル内の正確な Base64 イメージ要素を選択するために使用されます。例えば、 png がコンボ ボックスで選択されている場合、 png$PERSISTENT/ComboBoxValue ノードの値として入力されます。[イメージ ソース] プロパティの XPath 式は、 XML ファイルの png 要素を選択し、コンテンツ ( Base 64 エンコード PNG イメージ) をイメージとして表示します。
もう一つ重要なアクションがあります。コンボボックスで新しい値が選択されると、イメージが再ロードされることを指定しなければなりません イメージが再ロードされると、 $PERSISTENT/ComboBoxValue の値を読み込み、 XML ファイルから対応するイメージを取得します。
2 番目のテーブルの、イメージの種類は XPath 拡張子関数 suggested-image-file-extension を使用して Base 64 エンコード テキスト文字列 から取得されたものです。この関数は文字列 ( Base64 イメージ) を引数として使用し、ファイル拡張子の情報を文字列から取得します。 Base64 文字列に使用可能なファイル拡張子に情報が存在しない場合、空の文字列が返されます。使用される XPath 式は:
 
for $k 
in suggested-image-file-extension($XML1/images/element()[local-name() eq $PERSISTENT/Root/ComboBoxValue])
return if ($k != ''then $k else "Data not available"
 
式は、 suggested-image-file-extension 関数により返されたファイル拡張子変数 ($k) を作成します。変数が空でない場合、コンテンツは表示されます。その他の場合は適切なメッセージが表示されます。

 

次のセクション エクスチェンジャブル イメージ ファイル フォーマット (Exif) では、 Exif データに関連するデザインの残りの部分について説明されています。

 


(C) 2019 Altova GmbH