gpt4 book ai didi

java - ImageJ - 在不保存文件的情况下转换图像格式

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:50:32 24 4
gpt4 key购买 nike

我正在使用 ImageJ API 将一些 24 位 TIFF 图像转换为 8 位 JPG。转换后我需要对这些图像进行其他处理。我做了这个:

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,这样我就根本不需要存储它们。

最佳答案

您可以这样从 ImagePlus 类中获取原始缓冲图像:

BufferedImage rawImage = img.getBufferedImage();

所以理论上你可以从那里使用 API 来获取字节而不是写入磁盘

ByteArrayOutputStream baos=new ByteArrayOutputStream();
ImageIO.write(rawImage, "jpg", baos);
byte[] imageInByte=baos.toByteArray();

希望这能奏效

关于java - ImageJ - 在不保存文件的情况下转换图像格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43778272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com