2023/11/12

DXL Step-by-Step:#12)イメージの形式と DXL の関係

DXL 活用の調査・検証で、実現できたことや発見したことご紹介する『DXL Step-by-Step』シリーズの第 12 回です。

第 8 回から DXL で画像データを扱う方法についてまとめてきました。これまでは、話を単純化するため、扱う画像を PNG に限定して記載してきました。ただ、実際のアプリ開発においては、別の形式の画像ファイルを使用することが多々あります。そこで、今回は一般的に使用される JPEG と GIF についてもまとめておきます。

なお、最近は使用頻度は下がっているとは言え BMP 形式を使用することもあるかと思います。ただ、ノーツ内で BMP は、内部的に一般的な BMP と NOTESBMP というノーツ専用の形式の2種類で扱われているようです。現時点では、仕様がつかめていない点もありますので、いったん割愛します。もう少し情報が集まれば別途まとめたいと思います。


DXL のタグと $MimeType

デザイナーから通常の手順でイメージリソースを登録し、それを DXL で表示させ確認しました。結果、各画像形式毎のタグと $MimeType は次の通りでした。

画像形式 タグ $MimeType
PNG <png> image/png
JPEG <jpeg> image/jpeg
GIF <gif> image/gif

この結果は、Notes 12.0.2 を使用して確認しました。

ところが、Notes 9.0.1 を使用した場合は、少し結果が違いました。PNG ファイルを DXL に変換してみたところ、画像データのタグが <jpeg> となっていました。

しかし、$MimeType の値は "image/png" で 12.0.1 と同じでした。

これがバグなのか仕様なのかは判断できませんが、バージョンによってタグが変わることがあるという点に注意が必要ですね。


画像データのアクセス方法

イメージリソースに対して、画像を入出力する場合、画像データが入っているタグが明確にならないと処理ができません。

例えば、DXL からイメージデータを抜き出す場合で考えると、上記の関係を利用して、次のように処理すると、画像形式にとらわれず柔軟に処理ができるかと思います。

  1. $MimeType フィールドを取得
  2. その値からタグ名を判断
  3. そのタグのエレメントを取得
  4. その配下のテキストノードから Base64 の画像データを取得

前回 DXL Step-by-Step 次回

0 件のコメント:

コメントを投稿