在线 PDF 图片提取,免费

立即从 PDF 文件中提取所有嵌入图片。预览图片并查看尺寸,可单独下载或打包为 ZIP。

您的文件永不离开您的设备
将 PDF 文件拖到此处 或点击浏览

支持 PDF · 最大 50 MB

处理中:0%

工作原理

  1. 上传 PDF: 拖放或选择一个 PDF 文件以提取其中的图片。
  2. 自动提取: 工具会分析所有页面并提取每个嵌入图片,在网格中显示它们的尺寸和大小。
  3. 下载图片: 点击图片单独下载,或使用「全部下载为 ZIP」获取所有提取的图片。

为什么要从 PDF 中提取图片?

从 PDF 中提取图片适合内容复用、为演示文稿或网站获取图形、归档可视化文档,或在不分享整个 PDF 的情况下分享单张图片。提取保留原始质量 · 不进行再处理,只按原样导出嵌入的图片。

功能特性

常见问题

提取后图片质量会保留吗?

会。工具以原始格式提取图片,不进行再处理或重新压缩。质量与 PDF 中嵌入的完全一致。

可以提取哪些图片格式?

工具以原始嵌入格式提取:PNG、JPG、TIFF、GIF、JPEG2000 及其他常见格式。提取的文件保持原格式和质量。

下载前可以查看图片尺寸吗?

可以。预览网格中的每张图片都会显示宽度和高度(像素)、格式和大致大小。这能帮您识别和选择要下载的图片。

可以单独下载图片吗?

可以。点击图片的下载按钮即可立即获取。您也可以使用「全部下载为 ZIP」将所有提取的图片打包为一个压缩文件。

工具会提取用作背景或装饰的图片吗?

会。工具会提取 PDF 中所有嵌入的图像对象,包括用作背景、装饰或插图的图片,涵盖所有页面。

我的 PDF 会被上传到服务器吗?

不会。所有提取都通过 PDF.js 在您的浏览器中本地完成。您的 PDF 绝不会离开您的设备,确保完全的隐私和安全。

文件大小限制是多少?

支持最大 50 MB 的 PDF。提取速度取决于页数和嵌入图片的数量。包含大量图片的大型 PDF 可能需要一些时间处理。

可以在手机上提取图片吗?

可以。此工具适用于桌面、平板和手机浏览器。只需点击选择 PDF 即可 · 所有图片都会被提取并显示以供下载。

「从 PDF 中提取图像」实际的含义

「从 PDF 中提取图像」这一日常表述含义模糊,而这种模糊性会影响工具实际输出的内容。两种真正不同的操作隐藏在同样的词语背后。第一种是提取嵌入的图像对象:遍历文档,识别作者放入文件的每一个图像 XObject(或内联图像),并将每个对象作为独立的 PNG 重新写出。输出就是文档作者实际放入文件的内容,且分辨率与放入时一致。第二种是把页面渲染为图像:按选定的 DPI 将每个 PDF 页面光栅化为一张图像,把文字、矢量形状和图像一起捕获为扁平像素。输出是页面的图像,而不是页面里的图像。

本工具做的是第一种。给定一份 10 页文档,其中第 2 页和第 7 页共嵌入三张照片,它会生成三个图像文件,而不是十个页面图像。如果您需要第二种,即按页渲染为图像,请使用 PDF 转图像工具。区分这两种操作是用户首次到达时最常见的混淆点:「PDF 转 JPG」服务通常做的是第二种,很多用户在想要第一种时却找到了它们。输出数量是最明显的提示:提取返回嵌入图像的数量;页面渲染返回页面的数量。

本工具的工作原理

本工具运行 PDF.js,Mozilla 的纯 JavaScript PDF 渲染引擎,与 Firefox 内置 PDF 预览所使用的是同一引擎。当您选择一个 PDF 时,浏览器的 File API 将字节直接交给 PDF.js,完全没有网络往返。PDF.js 在 Web Worker 中解析交叉引用表、trailer 和文档目录,以便主线程保持响应。对每一页,工具请求操作符列表,并遍历每一个 paintImageXObjectpaintInlineImageXObject 调用。对于每个图像操作符,它通过 PDF.js 的对象缓存解析出真正的图像 XObject,按其过滤器和色彩空间解码,把位图绘制到离屏 canvas 上,并把 canvas 导出为 PNG。

宽度、高度和近似的文件大小会记录到画廊视图中。当您点击「下载全部为 ZIP」时,JSZip 会在内存中把所有提取出的图像打包到一个压缩档,浏览器的下载锚点会触发保存。整个过程不会发起任何网络请求。您可以直接验证:在选择 PDF 之前打开浏览器开发者工具的网络面板,运行提取,然后观察没有任何数据离开您的机器。PDF.js 引擎和 JSZip 库在首次访问时下载一次,然后被浏览器缓存,因此后续访问会立即加载且完全离线运行。

PDF 如何存放图像

PDF 文件是一棵对象树。页面树引用页面对象;每个页面对象引用一个内容流和一个资源字典。资源字典的 XObject 条目把短名称(如 Im1Im2)映射到图像 XObject 流。内容流通过 Do 操作符来绘制它们:像 q 200 0 0 150 50 300 cm /Im1 Do Q 这样的序列的意思是「设置变换,从资源中绘制名为 Im1 的图像,恢复变换」。每个图像 XObject 都带有 WidthHeight(像素尺寸)、ColorSpace(如何解释每个分量)、BitsPerComponent(1、2、4、8 或 16)以及 Filter(用于压缩字节的编解码链)。

对提取器而言,Filter 字段最为关键,因为它决定了字节能否直接写出,还是必须先解码。实践中常见六种过滤器。DCTDecode 把字节存为一个完整的 JPEG 文件,可直接以 .jpg 扩展名写出;在彩色 PDF 中,这大约占图像的 60% 至 70%。JPXDecode 是 JPEG2000,在消费级文档中罕见,但在高端印刷流水线中可见。CCITTFaxDecode 是用于单比特黑白扫描的第 3 组或第 4 组传真压缩,在扫描的商业档案中很常见。JBIG2Decode 是更高效的后继者,被 Acrobat 的「减小文件体积」处理与 ABBYY FineReader 使用。FlateDecode 是 zlib 压缩的原始像素数据,在图形、屏幕截图以及来自以 Web 为先的创作工具的 PDF 中常见。RunLengthDecode 是简单的游程编码,大多出现在较旧或手工构造的 PDF 中。

内联图像,容易被遗漏的情况

PDF 规范允许将小图像直接嵌入到页面的内容流中,夹在 BI(begin image)、ID(image data)、EI(end image)操作符之间,而不必成为有名字的 XObject。这是 1990 年代初的一项优化,针对几百字节大小的徽标、图标和项目符号这类极小图形,旨在避免为如此小的图像建立独立对象的开销。除此之外,其格式与图像 XObject 相同:相同的过滤器、色彩空间和尺寸字段,以紧凑形式书写。

许多「图像提取」工具完全错过内联图像,因为它们只遍历资源字典的 XObject 表就停下。本工具会遍历页面操作符列表,通过 paintInlineImageXObject 把它们抓取出来。实际后果是:页眉中包含公司徽标(常以内联形式存在)的 PDF,以及来自较旧的、习惯用内联图像放图标的创作工具的 PDF,会比简单遍历 XObject 时返回更多图像。如果您把本工具的提取数量与其他工具对比,这是差异的原因之一。下文将提到的其他原因还包括包含装饰性图形、模板掩码以及某些工具默认会过滤掉的水印。

软掩码、模板与透明度

PDF 中的图像透明度很少在图像内部编码。相反,页面会把彩色图像与一个独立的单通道「软掩码」(XObject 字典中的 SMask 条目)合成。阅读器中可见的结果是合成结果;单独提取的彩色图像本身是不透明的。对于希望用于视觉再利用的提取图像,这会带来意外:从使用了 SMask 的 PDF 中提取的徽标,可能呈现为一个不透明的矩形,而不是一个背景透明的 PNG。当前的行为是只提取彩色图像 XObject,不重新合成 SMask,这与命令行 pdfimages -png 的行为以及我们测试过的所有云提取服务的行为一致。

一个相关概念是 ImageMask 标志。当 ImageMask 为 true 时,字节并不是像素数据;它们是一个单比特模板,用来定义当前填充颜色应用的位置。单独提取一个 ImageMask 得到的是黑白剪影,而不是可用的图片。工具为了完整性会在画廊中报告它们,但除非您特别关心剪影,否则其用处不大。按尺寸排序,如果剪影把画廊弄乱,可以忽略小的模板。把软掩码重新合成为带 Alpha 通道的单张 PNG 是愿望清单上的功能,目前留给桌面工具,因为这种合成有时是破坏性的:重新合成会把背景颜色烙进结果中,这可能是,也可能不是您想要的。

色彩空间及其对输出的影响

2026 年绝大多数 PDF 使用 DeviceRGB(类似 sRGB)或 DeviceCMYK。PDF.js 透明地解码这两者,在绘制到 canvas 之前把 CMYK 转换为 RGB。因此,即使源是 CMYK,提取出的 PNG 始终是 RGB。对于纯粹的视觉再利用而言这是正确的:CMYK 图像本是为印刷而设计,未经转换无法在网站上正确显示。对印刷再现而言,这种转换是近似的,因为目标 canvas 上没有附加打印配置文件。以印刷为目标的用户应当保留原始 PDF,而不要经过提取这一次往返;当印刷流水线直接读取 CMYK 图像时,色彩保真度会更好。

附着在 PDF 图像上的 ICCBased 色彩配置文件在 PDF.js 解码时被尊重,因此提取出的 PNG 在标准观看条件下接近预期外观。索引色空间(调色板图像,典型的 256 色情况,常见于旧的 GIF 导入)在提取时会被去索引化,生成全彩 PNG 而不是基于调色板的图像。这是用于视觉再利用的正确行为,但意味着提取后的 PNG 文件大小可能比 PDF 内部原始索引图像的文件大小更大。在基于 canvas 的流水线中这一折衷无法避免,我们更看重保真度而非紧凑性;希望文件尽量小的用户可以随后把输出过一遍图像压缩器。

推动图像提取的真实工作流

常见陷阱及其含义

仅在浏览器内提取与云端提取

占据搜索结果顶部的云端图像提取服务(Smallpdf、ILovePDF、PDF24 web、Sejda、CleverPDF)都会把 PDF 上传到他们的服务器,在服务器端解码,然后把 ZIP 送回到您的浏览器。它们的隐私政策通常承诺一小时内删除并对传输使用 TLS,而且大型运营商在商业声誉上受到的压力是真实存在的。这些都不能改变一个简单的结构性事实:您的文档以及其中的每一张图像,曾短暂地落在别人的存储上,经过了他们的软件。对于敏感材料(医疗记录、财务对账单、内部草稿,任何受保密协议保护的内容)而言,更好的做法是从一开始就不让文件离开设备。

本工具完全在浏览器标签页中运行。PDF.js 在本地解析 PDF,在本地解码图像,把它们写入本地 canvas,并触发一次本地下载。页面初始加载之后不再发起任何网络请求。任何浏览器都能验证这一点:在点击提取之前打开开发者工具的网络面板,运行提取,然后观察没有任何携带您的文件或图像内容的请求被发出。在浏览器中处理的代价是,非常大的 PDF(几百 MB)会比在快速服务器上慢一些,但隐私层面的姿态有本质区别。本工具中的 50 MB 上限是为了防止移动设备内存耗尽而设置的,并不是因为该架构在桌面浏览器上无法处理更大的文件。

更多常见问题

本工具与「PDF 转 JPG」或「PDF 转图像」有何不同?

两种真正不同的操作。「PDF 转图像」把每一页光栅化为一张图,捕获文字、矢量和图像形成扁平像素;输出是页面的图像。「提取图像」取出作者嵌入在文件中的单个图像对象;输出是页面里的那张图像。对于一份 10 页的报告,第 2 页和第 7 页之间含有三张照片,「PDF 转图像」返回十个文件(每页一张);「提取图像」返回三张(那三张照片)。如需第一种操作,请使用 PDF 转图像工具。

为什么原本是 JPEG 的图像在提取后变成了 PNG?

当前流水线把每张图像都过一次 HTML canvas,得到解码后的位图,再把这张位图重新编码为 PNG,以便在存在透明度时予以保留。PNG 是无损的:JPEG 的量化损失已经烙进位图,被完整保留,不会再经历第二轮量化。输出的 PNG 比原始 JPEG 字节更大,但质量并未下降。直接写出原始 JPEG 字节的未来模式(对应 pdfimages -j)在愿望清单上;那带来的收益是更小的文件,而不是更高的质量。

工具会找出所有图像,包括作为背景或内联的图像吗?

会。工具会遍历页面操作符列表,既解析有名字的图像 XObject(绘制操作符 Do),也解析直接嵌入到内容流 BIIDEI 操作符之间的内联图像。许多提取工具只遍历 XObject 表,因此漏掉内联图像;本工具不会。模板掩码(ImageMask 为 true)也会被报告,尽管它们更像剪影而非图像,只在受限场景下才有用。

我能处理多大的 PDF?

当前实现支持最多 50 MB。这一上限由移动设备上的浏览器内存压力决定:大 PDF 会同时把已解析的文档和已解码的图像放在内存里,超过设备可用堆容量时,操作系统会回收该标签页。桌面浏览器通常可以处理多得多;这一上限只是为了安全保守。对于非常大的文档,使用桌面端 poppler-utils 中的 pdfimages -all 更合适。

提取会改变图像的版权吗?

不会。嵌入在 PDF 中的图像,无论其版权属于文档作者、摄影师还是许可持有人,提取后归属不变。从您有合法访问权限的 PDF 中提取一张图像,在机制上等同于对它截图;对提取出文件的使用,受与源 PDF 相同的版权规则约束。个人参考使用通常没有争议;再分发或商业使用则取决于源的许可条款。

有桌面或命令行的等价工具吗?

有,两个不错的选择。poppler-utils 中的 pdfimages 最接近:pdfimages -all input.pdf prefix- 会尽可能按原始编码提取每张图像。在 macOS 上用 brew install poppler 安装,在 Debian 或 Ubuntu 上用 apt install poppler-utils 安装,或者从项目站点下载 Windows 二进制包。另一个是 MuPDF 的 mutool extract,它会一起提取图像和字体。两者都是本地、免费,并且维护良好。

相关工具