我使用ImageJ API將一些24位TIFF圖像轉換爲8位JPG。 轉換後,我需要對這些圖像進行其他處理。 我做了這個:ImageJ - 在不保存文件的情況下轉換圖像格式
ImagePlus img = IJ.openImage(f.getAbsolutePath()); // Open image
new ImageConverter(img).convertToGray8(); // Convert image to 8-bit grayscale
IJ.saveAs(img, "jpg", newPath); // Export image to jpg
// Read the same image again
// Process it
我的問題是轉換必須將圖像保存到磁盤和我後立即看了一遍,還我處理大量的圖像。 有沒有辦法創建jpg圖像並將其放入對象而不將其存儲在磁盤上?
具體來說,我的目標是創建一個帶有圖像字節內容的Hadoop SequenceFile,所以我根本不需要存儲它們。
您不能在ImageIO.write()中使用Image,因爲它是一個Abstract類,而是像其他答案中的@sorifiend所提示的那樣使用像BufferedImage bufferedImage = img.getBufferedImage()這樣的實現。 順便說一句,這個工程,我所缺少的是,ImageIO可以寫入ByteArrayOutputStream而不是File,非常感謝。 – kennyFF92
謝謝!更新的答案是準確的 –