2012-10-18 102 views
2

现在我必须做一些处理(如读/保存)与一些.tif图像,但它看起来像我不能读取或写入图像的Java。有任何图书馆可以帮助我吗?以及如何使用它来读取或保存图像?感谢您的回答。如何处理.tif图像?

+3

欢迎来到Stack Overflow!我们鼓励你[研究你的问题](http://stackoverflow.com/questions/how-to-ask)。如果你已经[尝试了某些东西](http://whathaveyoutried.com/),请将其添加到问题中 - 如果没有,请先研究并尝试您的问题,然后再回来。 – 2012-10-18 07:57:34

回答

4

我猜你会需要使用JAI(Java的进步成像包),看看this,看看this example

+0

对于***缺省***支持'ImageIO'读取的文件类型,请参见['ImageIO.getReaderFileSuffixes()'](http://docs.oracle.com/javase/7/docs/api /javax/imageio/ImageIO.html#getReaderFileSuffixes%28%29)标准JRE将不包含TIFF。链接到JAI示例的+1。 –

4

Java Advanced Imaging提供TIFF支持开箱即用。或者在应用程序的运行时类路径中添加一个Service Provider Interface JAR for TIFF。和ImageIO将能够处理它们(至少加载它们,它可能不会提供对'多页'TIFF书写的支持)。

+0

谢谢,我会试试看。 – zhao0800

+2

[jai-imageio](http://www.oracle.com/technetwork/java/current-142188.html),请看第二部分称为** Java高级成像 - 图像I/O工具下载的下载** ...不要忘记接受答案,当你可以;) – MadProgrammer

+0

@MadProgrammer良好的联系。我已经充实了JAI Wiki(以上链接)。通过该链接和其他两个与JAI相关的(常见问题和Java文档)。 –

2

Java默认支持读写jpeg,gif和png,使用ImageIO。为了阅读tiff图像,您必须使用名为jai_imageio.jar的JAI插件。您只需将此jar放入类路径中,即可阅读tiff图像。

+0

请参阅我对@MeNoMore的评论。在Windows(至少)中,列表通常也会包含BMP。 –

1

使用jai现在不工作,无法获得“com.sun.image”。 但发现另一个工程包 - jdeli。它有一个类TiffDecoder,它可以用来解码(读取)带有alpha通道的tiff图像到Buffered image。然后你可以使用ImageIO.write