跳至页脚内容
使用 IRONOCR

C# 从 PDF 中提取图像:完整开发者指南

您是否是需要从 PDF 中提取图像的开发人员? 也许您需要提取图形以便在其他文档中重复使用,或者需要在用新标识图像更新 PDF 文件之前删除旧标识图像。 无论您的需求是什么,IronPDF 在此帮助您轻松完成整个过程。

这篇文章演示了如何使用 IronPDF 的简单方法检索嵌入的图像。 您将学习如何一次提取所有图像或定位特定页面,提供可以在您的 .NET 应用程序中立即运行的完整代码示例。 在本文结束时,您将能够自信地编程地从任何 PDF 文档中提取图像。

开发人员为什么需要从 PDF 中提取图像?

从 PDF 文档中提取图像可以实现多种商业目的。 文档处理系统通常需要分离可视资产以进行归类或分析。 内容管理平台需要提取图像,以便在不同媒体中重新使用图形。 归档系统通过独立提取和存储图像来获得更好的组织和可搜索性。

当处理数百或数千个文档时,手动提取是不可扩展的。 使用 IronPDF 进行自动提取可确保一致性、节省时间,并在整个过程中保持图像质量。 该库的Chrome 渲染引擎在处理 PDF 内容时可提供像素级的精确度。 无论您是构建文档管理系统、创建归档解决方案还是重新利用视觉内容,IronPDF 都能为您提供高效提取嵌入图像所需的工具。

如何开始使用 IronPDF?

通过 NuGet 包管理器安装 IronPDF 只需几秒钟。 创建一个新项目或打开一个现有项目,然后在包管理器控制台中运行:

Install-Package IronPDF ```

NuGet 使用 NuGet 安装

PM >  Install-Package IronOcr

IronOCR 上查看 NuGet 快速安装。超过 1000 万次下载,它正以 C# 改变 PDF 开发。 您也可以下载 DLLWindows 安装程序
After installation, add the following namespaces to your C# file: ```cs using IronPdf; using System.Collections.Generic; using System.Drawing;
Install-Package IronPDF ```

NuGet 使用 NuGet 安装

PM >  Install-Package IronOcr

IronOCR 上查看 NuGet 快速安装。超过 1000 万次下载,它正以 C# 改变 PDF 开发。 您也可以下载 DLLWindows 安装程序
After installation, add the following namespaces to your C# file: ```cs using IronPdf; using System.Collections.Generic; using System.Drawing;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

下载 IronPDF 即可立即开始提取图像,或查阅全面的文档以了解更多功能。 有关详细的 API 信息,请查看对象参考指南

如何从 PDF 文档中提取所有图像?

ExtractAllImages 方法使从 PDF 中提取每个图像变得异常简单。 此方法返回代表文档中找到的所有图像的 AnyBitmap 对象集合。 为了演示此方法的工作原理,我创建了一个包含三个图像的示例文档:

C# 从 PDF 中提取图像:完整开发者指南:图像 1 - 示例输入文档

现在,让我们来看一下将从该文档中提取所有图像的代码:

// Load the PDF document
var PDF = PdfDocument.FromFile("document.pdf");
// Extract all images from the PDF
IEnumerable<AnyBitmap> allImages = pdf.ExtractAllImages();
// Save each image to disk
int imageIndex = 0;
foreach (var image in allImages)
{
    image.SaveAs($"extracted_image_{imageIndex}.png");
    imageIndex++;
}
// Load the PDF document
var PDF = PdfDocument.FromFile("document.pdf");
// Extract all images from the PDF
IEnumerable<AnyBitmap> allImages = pdf.ExtractAllImages();
// Save each image to disk
int imageIndex = 0;
foreach (var image in allImages)
{
    image.SaveAs($"extracted_image_{imageIndex}.png");
    imageIndex++;
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这段代码加载您的 PDF,提取所有嵌入的图像,并将它们保存为 PNG 文件。 AnyBitmap 类无缝处理各种图像格式,保证原始质量。 通过更改文件扩展名,您还可以将它们保存为 JPEG、BMP 或 TIFF 图像格式。 对于更复杂的场景,可以探索使用注释管理 PDF 元数据

提取过程保持图像分辨率和色深,确保提取期间不会发生质量损失。 IronPDF 自动处理 PDF 中的不同图像压缩类型,包括嵌入文档中的 JPEG、PNG 和 TIFF 格式。

在此,您可以看到代码已成功保存提取的图像文件:

C# 从 PDF 中提取图像:完整开发者指南:图像 2 - 提取的图像文件

如果我们查看第一个图像,您可以看到它保持了原始颜色和质量:

C# 从 PDF 中提取图像:完整开发者指南:图像 3 - 提取的第一张图像

如何从特定页面提取图像?

有时您只需要从特定页面而不是整个文档中获取图像。 ExtractImagesFromPage 和 ExtractImagesFromPages 方法提供了这种目标提取能力。 在以下示例中,让我们使用一个较长的 PDF 文档来演示 IronPDF 如何处理特定页面提取。 我将使用从维基百科页面生成的 PDF。

// Extract images from a single page (page 2)
var singlePageImages = pdf.ExtractImagesFromPage(1); // Pages are zero-indexed
// Extract images from multiple pages (pages 1, 3, and 5)
var multiplePageImages = pdf.ExtractImagesFromPages(new[] { 0, 2, 4 });
// Process extracted images
var i = 0;
foreach (var image in multiplePageImages)
{
    image.SaveAs($"C:\\Users\\kyess\\Desktop\\Desktop\\Code-Projects\\ExtractImageFromPdf\\output\\MultiPaged_image{i}.jpg");
    i++;
}
// Extract images from a single page (page 2)
var singlePageImages = pdf.ExtractImagesFromPage(1); // Pages are zero-indexed
// Extract images from multiple pages (pages 1, 3, and 5)
var multiplePageImages = pdf.ExtractImagesFromPages(new[] { 0, 2, 4 });
// Process extracted images
var i = 0;
foreach (var image in multiplePageImages)
{
    image.SaveAs($"C:\\Users\\kyess\\Desktop\\Desktop\\Code-Projects\\ExtractImageFromPdf\\output\\MultiPaged_image{i}.jpg");
    i++;
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这种方法特别适用于处理只包含相关图像的特定部分的大型 PDF。 通过避免不必要的提取操作,它减少了内存使用量并提高了处理速度。 为了高效处理多个 PDF 文件,可以考虑实现异步操作或探索并行 PDF 生成技术。

如您所见,代码轻松地提取了指定页面上的图像,以及来自第 2 页的单个图像:

C# 从 PDF 中提取图像:完整开发者指南:图像 4 - 特定页面图像提取输出

IronPDF 提供哪些高级功能?

IronPDF 支持超出基础图像提取的更复杂提取场景。 ExtractAllRawImages 方法提供对原始图像数据的访问,以字节数组形式,非常适合直接数据库存储或自定义处理管道。

// Extract raw image data for advanced processing
var rawImages = pdf.ExtractAllRawImages();
foreach (byte[] imageData in rawImages)
{
    // Process raw bytes - store in database, apply filters, etc.
    System.IO.File.WriteAllBytes("raw_image.dat", imageData);
}
// Extract raw image data for advanced processing
var rawImages = pdf.ExtractAllRawImages();
foreach (byte[] imageData in rawImages)
{
    // Process raw bytes - store in database, apply filters, etc.
    System.IO.File.WriteAllBytes("raw_image.dat", imageData);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

C# 从 PDF 中提取图像:完整开发者指南:图 5 - 流程图演示了从 PDF 提取原始图像数据并存储到数据库的过程

IronPDF 还无缝处理加密的 PDF。 加载文档时提供密码,图像提取与未加密文件的操作相同。 该库在尊重文档权限的前提下,管理各种PDF 安全级别。 Microsoft 在其处理 .NET 中的图像文档中提供了有关图像处理操作的更多背景信息。

您应该了解哪些常见问题?

从 PDF 中提取图像时,几个注意事项可确保顺畅的操作。 处理包含高分辨率图像的大文档时,内存管理变得至关重要。 逐页处理 PDF 而不是一次加载全部以获得最佳性能。 Stack Overflow 社区经常讨论各种方法,但 IronPDF 的实现因其简单和可靠性而脱颖而出。

损坏的 PDF 可能包含受损的图像。 IronPDF 优雅地处理这些情况,跳过不可恢复的图像同时提取有效的图像。 在生产环境中,总是将提取代码包裹在 try-catch 块中。

一些 PDF 使用图像遮罩或透明层。 IronPDF 正确处理这些复杂的图像结构,在适用的情况下保持 alpha 通道。 当您需要从具有透明度的 PDF 文档中提取图像时,库能准确保持所有图像属性。 如需更多故障排除资源,请访问IronPDF 故障排除指南

结论

IronPDF 将 PDF 图像提取的复杂任务转变为简单、可靠的过程。 从使用 ExtractAllImages 的基本提取到页面特定的目标操作,库高效地处理各种需求。 在您的 .NET 应用程序中以最少代码从 PDF 文档中提取图像的能力使 IronPDF 成为文档处理工作流的重要工具。 现在您可以操作这些提取的图像,将它们用于其他 PDF 文档或做任何你想做的事情。 如果您想在更多文档中重复使用这些图片,请务必查看 IronPDF 的PDF 图片加盖指南。

准备在您的项目中实施图像提取了吗? 立即开始免费试用,体验 IronPDF 的全部功能。 对于生产环境部署,请了解我们的许可选项,找到最适合您需求的方案。

立即开始使用 IronOCR。
green arrow pointer

常见问题解答

我怎样才能使用 C# 从 PDF 中提取图像?

您可以使用 IronPDF,利用其专为处理 PDF 内容而设计的强大方法,在 C# 中从 PDF 中提取图像。IronPDF 为开发人员提供了简洁易懂的代码示例,帮助他们高效地提取图形。

使用 IronPDF 从 PDF 中提取图像有哪些好处?

IronPDF凭借其强大而易用的方法,简化了从PDF中提取图像的过程。它能够快速高效地提取图像,使您可以在其他文档中重复使用图形,或无缝更新品牌图像。

是否有使用 IronPDF 从 PDF 中提取图像的完整指南?

是的,有一份全面的指南,其中提供了使用 IronPDF 从 PDF 中提取图像的详细说明和代码示例,非常适合 .NET 开发人员。

IronPDF 能否用于更新包含新图像的 PDF 文件?

当然,IronPDF 不仅可以提取图像,还可以通过替换旧图形或品牌元素来更新 PDF 文件,从而添加新图像。

IronPDF 支持使用哪种编程语言从 PDF 文件中提取图像?

IronPDF 支持使用 C# 从 PDF 中提取图像,因此是 .NET 框架内开发人员的理想选择。

Kannaopat Udonpant
软件工程师
在成为软件工程师之前,Kannapat 在日本北海道大学完成了环境资源博士学位。在攻读学位期间,Kannapat 还成为了车辆机器人实验室的成员,隶属于生物生产工程系。2022 年,他利用自己的 C# 技能加入 Iron Software 的工程团队,专注于 IronPDF。Kannapat 珍视他的工作,因为他可以直接从编写大多数 IronPDF 代码的开发者那里学习。除了同行学习外,Kannapat 还喜欢在 Iron Software 工作的社交方面。不撰写代码或文档时,Kannapat 通常可以在他的 PS5 上玩游戏或重温《最后生还者》。