首页
社区
课程
招聘
[原创]PDFImageViewer 免费的PDF查看图像和无损导出工具
发表于: 2026-5-30 06:56 1135

[原创]PDFImageViewer 免费的PDF查看图像和无损导出工具

2026-5-30 06:56
1135

PDF Image Viewer 是一个神奇的软件,它支持PDF内嵌图像的查看和无损导出。支持Flate、LZW、CCITT Fax、JBIG2、Run Length、DCT、JPX、ASCII85、ASCIIHex等编码,支持RGB、Gray、CMYK、CalGray、CalRGB、Lab、ICCBased、Indexed、Separation 和 DeviceN等色彩空间。

大部分人可能都听说过PDF补丁丁软件,如果你用它导出PDF图像,用得多了,就会发现有的图像无法导出,有的图像全黑,有的图像全是斜线,还有的偏色,与PDF查看器渲染出来的图像不一样。我测试过很多免费工具,国外比较常用免费工具的是XPDF里面的pdfimages 和 MuPDF中的mutool,这两个软件比PDF补丁丁要好很多,但是依然存在某些内嵌图像无法识别或者无法导出的问题。如果把全部的内嵌图像当作100的话,PDF补丁丁大约可以正确导出40%的图像(新版补丁丁打算更换MuPDF内核,可以改善导出图像的问题,大家可以拭目以待)。XPDF的pdfimages 和 MuPDF的mutool 可以正确导出80%~90%的图像。最近实测发现 poppler v26的pdfimages工具可能会好一些。究其原因,主要是这些工具对PDF内嵌图像的色彩空间的解析存在限制,不能正确处理解码后的数据,并根据色彩空间还原图像像素。

为了解决网上免费工具无法正确还原图像的问题,避免命令行的繁琐操作,解决图像的查看和批量导出需求,我用了一个多月的时间开发了这个工具。

**下载:GitHub **

本软件根据提取图像的编码和色彩空间不同,使用不同的流程解码。这么做的好处是方便兼容各种合规的和不合规的图像数据(你想象不到PDF图像数据有多乱,各种不符合规范的文档充斥在网上),坏处是如果哪种图像数据在解码流程中没有覆盖(非技术原因),会导致图像无法查看。所以,完善这个软件需要很多的测试样本,特别是需要印刷业的样本。

如果有无法查看图像的PDF,请发邮件给我(liucq@163.com)。

这里我简单说一下PDF内嵌图像的无损导出流程:

首先,从PDF资源对象中读出来的原始数据要进行解码,例如Flate、LZW、CCITT Fax、JBIG2、Run Length、DCT、JPX、ASCII85、ASCIIHex。这里需要注意的是,有些工具遇到了DCT Decode过滤器就保存成JPG,遇到了JPX Decode过滤器就保存成JP2,遇到CCITT Fax Decode过滤器就保存成TIF。这个做法是错误的,它只对简单色彩空间格式有效。因为解码操作只是色彩空间还原的前置数据处理,DCT、JPX、CCITT Fax解码得到的数据可能是Indexed、RGB、CMYK、LAB、Separation等需要进一步处理的数据,不一定是最终的图像。

然后,对解码得到的数据要进行如下操作
1、根据需要进行索引还原,通过调色板转成Gray、RGB、CMYK、LAB、Separation 、CalGray、CalRGB等各种需要处理的数据。
2、根据需要进行Decode映射(常用于反相处理)。
3、根据需要进行色调还原(Separation、DeviceN)、Cal计算等操作,得到初步的图像像素。
4、根据需要对图像像素进行ICC色彩校正,例如RGB、CMYK、LAB等,转成Windows支持的像素格式。
5、校正之后的数据才是真正图像的像素数据,将其保存成png格式文件。

最终保存的图像体积可能会变大,但一定是正确的图像像素,并且是无损保存的。


[培训]《冰与火的战歌:Windows内核攻防实战》!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。

最后于 5天前 被liucq编辑 ,原因:
收藏
免费 0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回