【问题标题】:Reduce image size (bytes) in ITextPDF减小 ITextPDF 中的图像大小(字节)
【发布时间】:2013-02-14 06:13:55
【问题描述】:

我正在使用 itext PDF 库在 Java 中构建一个图像密集型 PDF 文档。每页都有十几张图片。原始源图像的分辨率非常高,我使用scaleToFit 将图像渲染为我需要的大小。

我遇到的问题是 PDF 文档仍然很大。我的理解是包含了整个原始高分辨率图像,并且我使用的缩放比例只影响实际渲染,而不影响文件中包含的图像的大小。

我已通过移除缩放来验证这一点 - 渲染页面时高分辨率图像彼此重叠且页面边缘重叠,并且 PDF 的大小与缩放时的大小相同。

那么,问题来了——如何通过缩小每个图像来减小 PDF 文件的大小?如果我失去一点图像质量,那没关系。手动重新缩放源图像会很困难。

【问题讨论】:

    标签: java itext


    【解决方案1】:

    所以我找到了一种方法。我现在将图像加载到BufferedImage,然后使用此处找到的提示进行缩放:how do I scale a BufferedImage

    这给了我一个BufferedImage——然后我使用它把它转换成一个 iText 图像

            Image returnedImage = Image.getInstance ( pcb, bufferedImage, quality );
    

    quality 当前为 0.6。这对于我正在做的工作来说是可以接受的。

    【讨论】:

    • FWIW,使用这种技术,我的测试文件从 29MB 变成了 3MB。
    • 赞成答案。另外:即使您自己回答了问题,接受好的答案也是一种很好的做法。
    • 我试图这样做,但它说我必须等待 2 天才能回答我自己的问题。现在回来做吧。
    • @BrunoLowagie 如果我们想用 itext7 做这个怎么办?似乎也有可能(请参阅链接),但实际上它的质量是不可接受的。 developers.itextpdf.com/examples/image-examples/…
    • @webyildirim (1.) 不要评论 2013 年的问题。几乎没有人会注意到您的评论。而是发布一个新问题。这不会是一个重复的问题,因为这个问题是关于 iText 5 而你的问题是关于 iText 7。但是:(2.) 你的指控“质量实际上是不可接受的”很奇怪,因为 决定质量。如果 0.5 的质量不可接受,请使用 0.8 的质量。尺寸减小会更低,但质量会更好。常识应该告诉您不要期望在没有显着降低质量的情况下显着减小尺寸。
    猜你喜欢
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    相关资源
    最近更新 更多