C# 從 PDF 擷取影像:完整開發者指南
您是一位需要從PDF中提取影像的開發者嗎? 也許您需要提取圖形以供其他文件使用,或者需要在用新圖像更新PDF文件之前移除舊的品牌圖像。 無論您的需求是什麼,IronPDF在這裡可以讓整個過程變得輕而易舉。
本文介紹了如何使用IronPDF的簡單方法來檢索嵌入的圖像。 您將學會一次提取所有影像或針對特定頁面進行提取,並獲得可在您的.NET 應用程式中立即運行的完整程式碼範例。 到本文結束時,您將能夠自信地以程式化的方式從任何PDF文件中提取影像。
為什麼開發者需要從PDF中提取影像?
從PDF文件中提取影像具有眾多商業用途。 文件處理系統通常需要分離視覺資產以進行目錄編錄或分析。 內容管理平台需要提取影像以在不同媒介間重新利用圖形。 檔案系統通過提取並獨立儲存影像來受益於更好的組織和可搜索性。
處理數百或數千個文件時,手動提取不可擴展。 使用IronPDF自動提取確保一致性,節省時間,並在整個過程中保持圖像質量。 程式庫的Chrome渲染引擎在處理PDF內容時提供像素級的準確性。 無論您是在構建文件管理系統、建立檔案解決方案,還是重新利用視覺內容,IronPDF提供了您需要的工具來高效提取嵌入圖片。
如何開始使用IronPDF?
通過NuGet包管理器安裝IronPDF僅需幾秒鐘。 建立一個新專案或打開一個現有專案,然後在包管理器控制台中運行:
Install-Package IronOcr
安裝後,在您的C#文件中新增以下命名空間:
using IronPdf;
using System.Collections.Generic;
using System.Drawing;
using IronPdf;
using System.Collections.Generic;
using System.Drawing;
Imports IronPdf
Imports System.Collections.Generic
Imports System.Drawing
如何從PDF文件中提取所有影像?
ExtractAllImages方法使從PDF中提取每個影像變得非常簡單。 該方法返回一個代表文件中所有影像的AnyBitmap物件集合。 為了演示其工作原理,我建立了一個包含三張圖像的範例文件:

現在,我們來看看將提取出這份文件中所有影像的程式碼:
// 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++;
}
Imports System.Collections.Generic
' Load the PDF document
Dim PDF = PdfDocument.FromFile("document.pdf")
' Extract all images from the PDF
Dim allImages As IEnumerable(Of AnyBitmap) = PDF.ExtractAllImages()
' Save each image to disk
Dim imageIndex As Integer = 0
For Each image In allImages
image.SaveAs($"extracted_image_{imageIndex}.png")
imageIndex += 1
Next
這段程式碼載入您的PDF,提取所有嵌入的圖像,並將它們保存為PNG文件。 AnyBitmap類可無縫處理各種圖像格式,保留原始質量。 您還可以通過更改文件擴展名將它們保存為JPEG、BMP或TIFF圖像格式。 對於更複雜的情況,請探索處理註釋或管理PDF元資料。
提取過程保持圖像解析度和色深,在提取期間保證無質量損失。 IronPDF會自動處理PDF中發現的不同影像壓縮型別,包括嵌入文件中的JPEG、PNG和TIFF格式。
在此,您可以看到程式碼已成功保存了提取出的影像文件:

如果我們查看第一個,您可以看到它保持了原有的色彩和質量:

如何從特定頁面提取影像?
有時您只需要特定頁面的影像而不是整個文件的影像。 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++;
}
' Extract images from a single page (page 2)
Dim singlePageImages = pdf.ExtractImagesFromPage(1) ' Pages are zero-indexed
' Extract images from multiple pages (pages 1, 3, and 5)
Dim multiplePageImages = pdf.ExtractImagesFromPages(New Integer() {0, 2, 4})
' Process extracted images
Dim i As Integer = 0
For Each image In multiplePageImages
image.SaveAs($"C:\Users\kyess\Desktop\Desktop\Code-Projects\ExtractImageFromPdf\output\MultiPaged_image{i}.jpg")
i += 1
Next
這種方法在處理僅包含相關圖片的某些部分的大型PDF時特別有用。 它通過避免不必要的提取操作來減少記憶體占用和提高處理速度。 為了高效處理多個PDF,考慮實施異步操作或探索並行PDF生成技術。
正如您所見,程式碼輕鬆提取了指定頁面上的圖像以及第2頁上的單一圖像:

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);
}
' Extract raw image data for advanced processing
Dim rawImages = pdf.ExtractAllRawImages()
For Each imageData As Byte() In rawImages
' Process raw bytes - store in database, apply filters, etc.
System.IO.File.WriteAllBytes("raw_image.dat", imageData)
Next

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的全部功能。 對於生產部署,探索我們的授權選項以找到最符合您需求的選擇。
常見問題
我可以使用C#從PDF中提取圖像嗎?
您可以使用IronPDF提供的強大方法處理PDF內容,在C#中提取圖像。IronPDF為開發者提供了簡單明了的程式碼範例來高效地提取圖形。
使用IronPDF從PDF中提取圖像的好處是什麼?
IronPDF使從PDF中提取圖像的過程變得簡單,其強大且易於使用的方法允許快速高效的提取,讓您可以在其他文件中重新使用圖形或無縫更新品牌圖像。
是否有完整的指南可以使用IronPDF從PDF中提取圖像?
是的,有一份綜合指南提供詳細的說明和程式碼範例,方便.NET開發者使用IronPDF從PDF中提取圖像。
IronPDF能夠用來更新帶有新圖像的PDF文件嗎?
絕對可以,IronPDF不僅能夠提取圖像,還能通過替換舊圖形或品牌元素來更新PDF文件。
IronPDF支持的用於從PDF中提取圖像的程式語言是什麼?
IronPDF支持使用C#從PDF中提取圖像,這對於在.NET框架中工作的開發者來說是理想之選。



