モジュール java.desktop
パッケージ javax.imageio

インタフェースImageTranscoder

既知のすべての実装クラス:
ImageWriter

public interface ImageTranscoder
メタデータ変換機能を提供するインタフェースです。

読込みに続いて書き込みするだけで、すべてのイメージを変換、つまりもともと保存されていたイメージとは違う形式で書き込むことができます。 ただし、形式の違いのため、この処理中にデータが損失する可能性があります。

一般に、もっとも良い結果が得られるのは、形式固有のメタデータ・オブジェクトを作成して、イメージとそれに関連付けられたメタデータについてできるだけ多くの情報をカプセル化できる場合です。符号化に使用される固有のImageWriterによって理解されるためです。

ImageTranscoderは、ストリームごと、イメージごとのメタデータを表すImageReaderが提供するIIOMetadataオブジェクトを、特定のImageWriterが符号化するのに適した、対応するオブジェクトに変換するために使用します。 このインタフェースのメソッドが直接ImageWriter上に呼び出される場合、出力はその書込み側に適したものとなります。

IIOMetadataオブジェクトを書込み側の固有の形式に変換するときの内部詳細は、その変換する操作のコンテキストに応じて変わります。 通常、ImageWriterは、書込み側が認識できる追加インタフェースが入力オブジェクトに実装されているかどうかを調べます。 たとえば、書込み側と同じメーカーが書き込んだ、読込み側のプラグインでの読込み操作によってオブジェクトが取得された場合などがこれにあたります。 この場合、プラグイン固有のインタフェースにより、書込み側は入力オブジェクトにアクセスできます。 イメージ・ファイル形式が一定に保たれていれば、ほとんど損失なく再符号化できます。 形式が変更されても、書込み側はできるだけ多くの情報を保存しようとします。

入力オブジェクトが書込み側で認識できる追加インタフェースを実装しない場合、書込み側が選択できるのは、IIOMetadata.getAsTreeで提供されるツリー表示のような、標準IIOMetadataインタフェースを介したアクセスだけです。 この場合、情報の大部分が失われる可能性があります。

独立したImageTranscoderは基本的に、上記の例の書込み側プラグインと同じ機能を持ちます。 これは読込み側プラグインと書込み側プラグインの両方が使用するprivateインタフェースを認識し、書込み側で使用できるオブジェクトを手動でインスタンス化します。 生成されるメタデータ・オブジェクトは、書込み側から直接使用できます。

ImageTranscoderの独立した実装は、標準APIの一部としては提供されていません。 むしろ、このインタフェースの目的は、アプリケーションが必要に応じて実装を発見し、作成する方法を提供することです。