使用 C# / IronWord 從 DOCX 中擷取影像

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronWord 的 ExtractImages() 方法可讓您以程式化的方式從 Word 文件中萃取所有內嵌的影像,提供影像資料以及尺寸和格式等元資料的存取,以便儲存或處理。

as-heading:2(Quickstart: Extract Images from DOCX in C#)

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronWord

    PM > Install-Package IronWord

  2. 複製並運行這段程式碼。

    // Install IronWord: Install-Package IronWord
    using IronWord;
    
    // Load your Word document
    WordDocument doc = new WordDocument("document.docx");
    
    // Extract all images
    var images = doc.ExtractImages();
    
    // Save each image with custom naming
    int imageIndex = 0;
    foreach (var image in images)
    {
        // Save to specified format
        image.SaveAs($"output-{imageIndex}.png");
    
        // Access image properties
        Console.WriteLine($"Image {imageIndex}: {image.Width}x{image.Height}");
        imageIndex++;
    }
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronWord,免費試用!
    arrow pointer

從 Word 文件中萃取影像是內容轉移、媒體管理和程式化文件處理的常見需求。 無論您是要建立內容管理系統、自動化文件工作流程,或是建立數位歸檔,IronWord 都能簡化內嵌圖片的存取,讓圖片得以儲存、重複使用,或透過尺寸和格式等屬性進行分析。

ExtractImages()函數提供簡單有效的方式,從文件中擷取所有圖片,並存取其元資料以進行進一步處理。 此方法會傳回一個影像物件集合,其中包含原始影像資料和有用的元資料屬性。 對於使用 PowerPoint 簡報的開發人員而言,其他 Iron 套件庫也有類似的功能,展現出整個產品套件一致的 API 設計。

如何開始使用 IronWord?


如何從 Word 文件中萃取圖片?

<! -- 說明 extract images 實作範例的圖表 --> <!--說明:說明程式碼概念的圖表或截圖 -->

使用 IronWord 從 Word 文件中提取圖片非常簡單。 檔案 embedded_images.docx 將被用作範例檔案,其中包含 3 頁不同頁面上的 5 張圖片。 下面的程式碼片段定義了使用 ExtractImages() 方法進行影像擷取的核心工作流程。

在使用文件處理函式庫時,必須瞭解 授權要求,以確保您的應用程式符合使用條款。 IronWord 採用與其他 Iron 產品類似的授權模式,提供永久授權與全面的支援選項。 對於生產部署,您需要套用 license keys 來移除任何水印或限制。

:path=/static-assets/word/content-code-examples/how-to/extract-images-properties.cs
using IronWord;

// Load an existing Word document
WordDocument doc = new WordDocument("embedded_images.docx");

// Extract all images from the document
var images = doc.ExtractImages();

// Iterate through extracted images
int count = 0;
foreach (var image in images)
{
    // Save each image to disk
    string fileName = $"extracted-image-{count}.png";
    image.SaveAs(fileName);

    Console.WriteLine($"Extracted image {count}:");
    Console.WriteLine($"Width: {image.Width}");
    Console.WriteLine($"Height: {image.Height}");
    Console.WriteLine($"Saved as: {fileName}");

    count++;
}

Console.WriteLine($"Total images extracted: {count}");
Imports IronWord

' Load an existing Word document
Dim doc As New WordDocument("embedded_images.docx")

' Extract all images from the document
Dim images = doc.ExtractImages()

' Iterate through extracted images
Dim count As Integer = 0
For Each image In images
    ' Save each image to disk
    Dim fileName As String = $"extracted-image-{count}.png"
    image.SaveAs(fileName)

    Console.WriteLine($"Extracted image {count}:")
    Console.WriteLine($"Width: {image.Width}")
    Console.WriteLine($"Height: {image.Height}")
    Console.WriteLine($"Saved as: {fileName}")

    count += 1
Next

Console.WriteLine($"Total images extracted: {count}")
$vbLabelText   $csharpLabel

ExtractImages() 方法會返回一個可枚举的影像物件集合,每個物件都包含完整的影像資料以及元資料。 此方法允許彈性的處理工作流程 - 您可以如上圖所示將影像儲存至磁碟、轉換成不同格式或直接串流至雲端儲存服務。 該方法可處理 Word 文件中常嵌入的各種圖像格式,包括 JPEG、PNG、BMP 和 GIF。

樣本文件是什麼樣子?

內嵌圖片的 Word 文件:Google 標誌、頭部剪影、銀河景象、獅子和禪石

我應該期待什麼樣的輸出?

調試主控台顯示 5 張擷取的影像,尺寸與檔案名稱為 extracted-image-0.png 至 extracted-image-4.png

擷取的圖片保留原始格式 (例如:.jpg.png 或其他格式),並可以適當的檔案副檔名儲存。 您可以遍歷文件中的所有圖片,或根據您的需求針對特定部分進行翻譯。

進階圖像萃取情境

除了基本的擷取功能之外,IronWord 的圖像處理功能還支援開發人員在生產應用程式中經常遇到的幾種進階情境:

批量處理多個文件:在處理大型文件集時,您可以實施平行處理,同時從多個 Word 檔案中擷取影像。 此方法可大幅縮短文件歸檔或內容遷移專案的處理時間。

影像格式轉換:擷取的影像物件支援格式間的轉換。 您可能會從 Word 文件中擷取 JPEG 並將其儲存為 PNG 以進行網頁最佳化,或轉換為 WebP 以與現代瀏覽器相容。

Metadata Preservation:每張擷取的影像都會保留重要的 metadata,包括尺寸、解析度和色彩深度。 這些資訊在實施影像最佳化管道或維護整個應用程式的品質標準時非常有價值。

對於需要持續支援和定期更新的企業應用程式,請考慮探索授權延伸,以提供持續存取新功能和優先支援。 如果您的專案範圍擴大,升級選項可讓您無縫擴充,以涵蓋更多開發人員或部署地點。

與文件工作流程整合。

影像擷取通常是大型文件處理工作流程的一部分。 考慮這些常見的整合模式:

內容管理系統:在文件上傳時擷取圖片,以建立縮圖預覽、建立圖庫或填充媒體庫。 擷取的圖片可以為搜尋功能編製索引,或標示文件元資料。

文件轉換管道:將 Word 文件轉換為其他格式時,可分別處理擷取的影像,以獲得最佳品質。 這種分離允許特定格式的最佳化 - 例如,針對網頁與列印輸出應用不同的壓縮設定。

品質保證工作流程:自動擷取可系統性檢視內嵌圖片是否符合品牌準則、解析度要求或檔案大小限制。 您可以在出版前標示包含低解析度圖片或不正確格式的文件。

若要隨時更新文件處理功能的最新特性和改進,請定期查看 產品更新記錄。 新版本通常包括效能增強和擴充的格式支援,可讓您的影像擷取工作流程獲益良多。

效能考量

在處理包含大量或高解析度圖片的文件時,請考慮這些效能最佳化策略:

記憶體管理:分批處理影像,而不是同時將所有影像載入記憶體。 在處理大型文件或高解析度影像時,此方法可避免記憶體耗盡。

Asynchronous Processing:為 I/O 作業實施 async/await 模式,尤其是將擷取的影像儲存至磁碟或網路儲存空間時。 這可讓您的應用程式在冗長的擷取作業中保持反應迅速。

選擇性擷取:如果您只需要特定的圖片,請考慮根據圖片屬性或文件結構執行篩選器,以避免處理不必要的內容。

強大的 API 設計可確保在不同的文件類型和圖像格式中都有一致的行為,讓您可以直接在 .NET 應用程式中建立可靠的圖像擷取功能。

常見問題解答

如何使用 C# 從 DOCX 檔案中擷取影像?

您可以使用 IronWord 的 ExtractImages() 方法從 DOCX 檔案中擷取圖片。只需用 WordDocument doc = new WordDocument("document.docx")載入您的 Word 文件,然後調用 doc.ExtractImages() 檢索所有內嵌的圖片。每張圖片都可以使用 SaveAs() 方法以您偏好的格式和檔案名稱儲存。

從 Word 文件擷取影像時,可以存取哪些影像屬性?

IronWord 提供對重要圖像元資料的存取,包括寬度與高度尺寸。ExtractImages() 方法會傳回一個圖像物件集合,其中包含原始圖像資料和這些元資料屬性,讓您可以根據圖像的特性,以程式化的方式分析或處理圖像。

我可以將擷取的影像儲存為不同格式嗎?

是的,IronWord 允許您將擷取的影像儲存為各種格式。在每個影像物件上使用 SaveAs() 方法,並指定您想要的檔案名稱與適當的副檔名 (例如:.png、.jpg)。函式庫會根據您提供的檔案副檔名自動處理格式轉換。

如何安裝從 Word 文件中擷取影像的函式庫?

使用命令透過 NuGet 套件管理員安裝 IronWord:Install-Package IronWord。安裝完成後,在您的 C# 檔案中加入「using IronWord;」,即可存取影像擷取功能及其他文件處理功能。

是否可以從多頁 Word 文件中擷取影像?

是的,IronWord 的 ExtractImages() 方法可以從整個 Word 文檔中擷取所有圖片,不論文檔包含多少頁。該方法會返回整個文件中所有內嵌圖片的完整集合,無論它們是在單一頁面上還是分散在多個頁面上。

Ahmad Sohail
全堆疊開發人員

Ahmad 是一名全堆疊開發人員,在 C#、Python 和 Web 技術方面有深厚的基礎。

在加入 Iron Software 團隊之前,Ahmad 從事自動化專案和 API 整合工作,專注於改善效能和開發人員體驗。

在空閒時間,他喜歡嘗試 UI/UX 想法,為開源工具貢獻心力,偶爾也會鑽研技術撰寫和文件,讓複雜的主題更容易理解。

準備好開始了嗎?
Nuget 下載 32,629 | 版本: 2026.2 剛剛發布