Extract Images from DOCX with C# using IronWord

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

IronWord's ExtractImages() method enables you to programmatically extract all embedded images from Word documents, providing access to image data and metadata like dimensions and format for saving or processing.

Quickstart: Extract Images from DOCX in C#

  1. 使用NuGet套件管理器安裝https://www.nuget.org/packages/IronWord

    PM > Install-Package IronWord
  2. 複製並運行這段程式碼。

    // Install IronWord: Install-Package IronWord
    using IronWord;
    using IronSoftware.Drawing;
    
    // 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)
    {
        // Cast to AnyBitmap to access SaveAs method
        ((AnyBitmap)image.Image).SaveAs($"output-{imageIndex}.png");
    
        // Access image properties
        Console.WriteLine($"Image {imageIndex}: {image.Width}x{image.Height}");
        imageIndex++;
    }
  3. 部署到您的生產環境進行測試

    今天就在您的專案中開始使用免費試用IronWord

    arrow pointer

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

開始使用 IronWord


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

使用 IronWord 從 Word 文件中提取圖片非常簡單。 The file embedded_images.docx will be used as an example file which includes 5 images on 3 different pages. The code snippet below defines the core workflow for the image extraction process using the ExtractImages() method.

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

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

// 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";
    ((AnyBitmap)image.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}");
$vbLabelText   $csharpLabel

The ExtractImages method returns an enumerable collection of image objects, each containing the complete image data along with metadata. To save images, cast the Image property to AnyBitmap using ((AnyBitmap)image.Image).SaveAs() to access the SaveAs method. This requires adding using IronSoftware.Drawing; to your namespace declarations.

此方法允許彈性的處理工作流程 - 您可以如上圖所示將影像儲存至磁碟、轉換成不同格式或直接串流至雲端儲存服務。 該方法可處理 Word 文件中常嵌入的各種圖像格式,包括 JPEG、PNG、BMP 和 GIF。

樣本文件是什麼樣子?

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

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

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

The extracted images retain their original format (e.g., .jpg, .png, or other formats) and can be saved with appropriate file extensions. 您可以遍歷文件中的所有圖片,或根據您的需求針對特定部分進行翻譯。

進階圖像萃取情境

除了基本的擷取功能之外,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 是一位全端開發人員,精通 C#、Python 和 Web 技術。他對建立可擴展的軟體解決方案有著濃厚的興趣,並樂於探索如何在實際應用中實現設計與功能的完美結合。

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

在空閒時間,他喜歡嘗試 UI/UX 設計理念,為開源工具做出貢獻,偶爾還會涉足技術寫作和文件編寫,使複雜的主題更容易理解。

準備好開始了嗎?
Nuget 下載 36,374 | 版本: 2026.3 剛剛發布
Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronWord
執行範例 觀看您的資料變成 Word doc。