2015-10-15 63 views
-2

我有包含单个图像的TIFF文件。 我需要能够将它们转换为我们的Java应用程序中的PNG。几乎每个搜索都说要使用JAI - 这似乎不再存在。我可以使用iTextpdf lib将TIFF转换为PNG吗?

我们目前在我们的系统中已经有了itextpdf库,看起来它可以读取TIFF并编写PNG。

任何人都知道如何?或者可以将我指向正确的文档部分? 我看到有一个TIFFImage类,它看起来像它可以读取一个TIFF和一个可以写PNG的PNGWriter - 但我一直无法弄清楚如何获取TIFFImage(一个Image对象)的结果,并将这些数据传递给PNGWriter。

+0

iText是PDF文件创建,操作和分析的库。这意味着它有许多类专注于解析图像并将图像序列化为某些位图图像格式。但这并不意味着这些功能可用于位图图像格式转换。 – mkl

回答

1

您可以使用标准ImageIO和我的TwelveMonkeys ImageIO TIFF plugin来读取TIFF并将其作为PNG写回。该插件在大多数情况下可以用作JAI ImageIO TIFF插件的直接替代品。

在安装该插件后,你的TIFF是单页,和所有你关心的是像素数据,代码可能仅仅是:

BufferedImage image = ImageIO.read(tiffFile); 
if (!ImageIO.write(image, "PNG", pngFile)) { 
    // Handle file not written 
} 

我不会建议使用iText的这个(既不看起来布鲁诺洛瓦吉)。 :-)

+0

PS:如果当前版本(3.1.2)无法读取您的TIFF文件,请尝试从源代码构建3.2-SNAPSHOT,因为我最近添加了不少新的压缩和其他功能。 3.2版本即将发布。 – haraldK