Java处理TIF图像

我的问题是,如何才能将.tif文件成功加载到Java中的Image实例中?

现在让我提供更多细节。我已经阅读了很多关于stackoverflow的关于如何在Java中处理/转换TIF图像的线程。我已经尝试了很多stackoverflow建议(我说建议,因为询问的人很少回来再说对他们有用的东西)。我很确定我需要使用Java

Advanced Imaging(JAI)库,但是我不知道如何使用它。现在让我解释一下该项目:

我正在从“处理”草图中获取帧的屏幕,然后使用Xuggler将其编码为视频。在草图中,我使用Processing的save(file

filePath)函数将当前帧保存到文件中。我曾经有过

,但是创建jpg时发生的压缩将录制速度减慢到9-10fps,所以我切换了文件扩展名以查看是否可以改变结果,而 最快,我可以以22-23fps的速度录制。

处理可以将图像另存为.tif文件。但是不幸的是,如果没有库,Java无法将.tif文件加载回去。我以前有代码:

该行代码会将.jpg文件加载到img中,我会很好地对视​​频进行编码。但是这行代码(用tif而不是jpg):

将不会加载任何图像。我仍然可以使用Xuggler对视频进行编码,但是图像为空白,因此我认为此方法无法加载我的.tif文件。

我正在Windows 8计算机上使用Eclipse。任何帮助将不胜感激!

回答:

是的,您需要JAI。

  import javax.media.jai.PlanarImage;

import com.sun.media.jai.codec.ByteArraySeekableStream;

import com.sun.media.jai.codec.ImageCodec;

import com.sun.media.jai.codec.ImageDecoder;

import com.sun.media.jai.codec.SeekableStream;

import java.awt.Image;

import java.awt.image.RenderedImage;

...

static Image load(byte[] data) throws Exception{

Image image = null;

SeekableStream stream = new ByteArraySeekableStream(data);

String[] names = ImageCodec.getDecoderNames(stream);

ImageDecoder dec =

ImageCodec.createImageDecoder(names[0], stream, null);

RenderedImage im = dec.decodeAsRenderedImage();

image = PlanarImage.wrapRenderedImage(im).getAsBufferedImage();

return image;

}

以上是 Java处理TIF图像 的全部内容, 来源链接: utcz.com/qa/419263.html

回到顶部