我正在尝试将 pdf 转换为 tiff 图像。我使用 pdfbox 让它工作,但图像太大。
假设我的 PDF 大小为 224kb => 图像大小=1.4Mb
如何在不损失质量的情况下缩小 tiff 文件?
下面是一些代码:
TIFFImageWriterSpi tiffspi = new TIFFImageWriterSpi();
writer = tiffspi.createWriterInstance();
ImageWriteParam param = writer.getDefaultWriteParam();
TIFFImageWriteParam param2 = (TIFFImageWriteParam) writer.getDefaultWriteParam();
param2.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param2.setCompressionType("LZW");
param2.setCompressionQuality(1.0f);
writer.setOutput(output);
writer.write(null,new IIOImage(image,null,null),param2);
最佳答案
以下是一些准则:
- 使颜色与您的输出相匹配。如果您以黑色和 白色使用双值输出,即每像素一位。如果 你的颜色很少,没有太多的阴影或混合,比如 突出着色或卡通风格的图形,使用 256 种颜色。仅有的 如果 PDF 中有照片,请使用全彩。如果你必须 产生全彩,你对小尺寸的追求注定是注定的。
- 将压缩率与颜色深度相匹配。用于单色使用 CCITT T.4 或 CCITT T.6,效率更高 位序列。 LZW 在字节序列(例如 256 色)上效果最佳。 如果你必须生产全彩,这是你获得体面的唯一希望 压缩是 jpeg,但这会使您的文本和线条变得模糊。
关于java - PDFBox 将 PDF 转换为 TIFF。减少图像大小(以字节为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16058213/