javax.imageio.ImageIOを使用するコードを整理しています。ユーザーが要求しているファイル接尾辞 (jpg など) があり、保存された画像を変換してから、正しい形式でユーザーにレンダリングします。
次に、サフィックスを MIME タイプにマップします。これはクイック スイッチで比較的簡単に実行できますが、ImageIO には両方の機能があることを考えると、
static Iterator<ImageWriter>
getImageWritersBySuffix(String fileSuffix)
static Iterator<ImageWriter>
getImageWritersByMIMEType(String MIMEType)
サフィックスと MIME タイプの間のマッピング、または特定の によって生成された MIME タイプを認識している必要がありImageWriter
ます。したがって、これから使用するライターからコンテンツ タイプを取得する方法が必要です。しかし、コンテンツ タイプやサフィックスを返す ImageWriter のメソッドやプロパティは見当たりません。
基本的に、次のコード ブロックを完成させようとしています。
Iterator<ImageWriter> imageWriters = ImageIO.getImageWritersBySuffix(type);
ImageWriter imageWriter = imageWriters.hasNext() ? imageWriters.next() : null;
if (imageWriter != null) {
contentType = imageWriter. ???
}
ありがとう!私が推測する力ずくのアプローチは、サポートされているすべての MIME タイプを取得し、get-by-suffix 呼び出しと同じ ImageWriter を返すタイプが見つかるまでそれらを反復することです (実際に結果を比較するのが簡単な場合)。それよりももう少しエレガントなものを望んでいます-私はそれに切り替えたいと思います.