CONTENTS | PREV | NEXT | JavaTM Image I/O API Guide |
Transcoding refers to reading an image file with a reader plug-in, and writing out the image using a writer plug-in, especially, if the writer plug-in cannot directly understand the native metadata format of the reader. In such a case, there will always be some loss of information, even if both plug-ins deal with the same file format. A transcoder plug-in is responsible for converting the stream and image metadata that have been created by a reader plug-in into a better form for use by a writer plug-in. The API does not mandate the presence of any transcoder plug-ins, but they may be installed and registered just like readers and writers.A set of reader and writer plug-ins may be designed to interpret each other's metadata without the need for a separate transcoder. The relationships between plug-ins can be determined using the
ImageReaderSpi.getImageWriterSpiNames
andImageWriterSpi.getImageReaderSpiNames
methods, which indicate which plug-ins are known to work well with a given plug-in of the opposite type. If multiple plug-ins are being written by a single vendor, this mechanism will provide the best quality.However, when working with plug-ins that have not been designed to interoperate, a transcoder plug-in may be provided by a developer who understands the metadata formats of a given pair of reader and writer plug-ins, even though each was written without knowledge of the other.
Given a particular pair of reader and writer plug-ins, the set of appropriate transcoder plug-ins may be located as follows:
ImageReader reader; ImageWriter writer; Iterator transcoders = ImageIO.getImageTranscoders(reader, writer);