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