最近、画像ファイルを表示しようとすると問題に直面しています。残念ながら、画像形式は TIFF 形式であり、主要な Web ブラウザーではサポートされていません (この形式をサポートしているのは Safari だけです)。特定の制約により、この形式を主要なブラウザーでサポートされている他の形式に変換する必要があります。ただし、フォーマットを変換しようとすると、多くの問題が発生します。
Web を検索しましたが、このリンクに同様の問題が投稿されていますが、Java で TIF を PNG に変換するにはどうすればよいですか? "しかし、提案された結果を得ることができません..
したがって、この質問をもう一度提起して、皆さんからのより良い説明とガイドラインが得られることを願っています..
提案されたソリューションを使用する際に直面した問題はほとんどありませんでした:
1) Jonathan Feinbergが提案した回答によると、JAI と JAI/ImageIO をインストールする必要があります。ただし、両方をインストールした後も、Netbean 7.2 にファイルをインポートできませんでした。NetBean 7.2 は引き続きデフォルトの imageIO ライブラリのインポートを提案します。
2) デフォルトの ImageIO ライブラリの Read メソッドを使用すると、NULL 値が返され、処理を続行できません。
3) BufferedOutputStream メソッドを使用して TIFF ファイルを BIN ファイルに変換するなど、他の方法も試しましたが、結果のファイルが 11 MB を超えていて読み込めませんでした。読み込みに失敗しました。
if (this.selectedDO != null) {
String tempDO = this.selectedDO.DONo;
String inPath = "J:\\" + tempDO + ".TIF";
String otPath = "J:\\" + tempDO + ".bin";
File opFile = new File(otPath);
File inFile = new File(inPath);
BufferedInputStream input = null;
BufferedOutputStream output = null;
try {
input = new BufferedInputStream(new FileInputStream(inPath), DEFAULT_BUFFER_SIZE);
output = new BufferedOutputStream(new FileOutputStream(otPath), DEFAULT_BUFFER_SIZE);
byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
int length;
while ((length = input.read(buffer)) > 0) {
output.write(buffer, 0, length);
}
} finally {
try {
output.flush();
output.close();
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
したがって、TIFF形式をJPEG / PNGなどの他の形式に変換できるように、皆さんから助けとアドバイスを得られることを願っています.