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

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

IronWord 的ExtractImages()方法可讓您以程式設計方式從 Word 文件中提取所有嵌入的圖像,從而可以存取圖像資料和元資料(如尺寸和格式)以進行儲存或處理。

快速入門:使用 C# 從 DOCX 中提取圖像

```csharp {title="快速影像擷取範例"} // 安裝 IronWord:Install-Package IronWord 使用 IronWord;

// 載入您的 Word 文檔 WordDocument doc = new WordDocument("document.docx");

// 提取所有圖像 var images = doc.ExtractImages();

// 使用自訂名稱儲存每張圖片 int imageIndex = 0; foreach (var image in images) { // 儲存為指定格式 image.SaveAs($"output-{imageIndex}.png");

// 存取圖像屬性
Console.WriteLine($"映像 {imageIndex}: {image.Width}x{image.Height}");
imageIndex++;

}


從 Word 文件中提取影像是內容遷移、媒體管理和程式化文件處理的常見需求。 無論您是建立內容管理系統、自動化文件工作流程還是建立數位檔案,IronWord 都能簡化對嵌入式影像的訪問,讓您透過尺寸和格式等屬性來保存、重複使用或分析這些影像。

`ExtractImages()`函數提供了一種簡單且有效率的方法,可以從文件中檢索所有影像並存取其元資料以進行進一步處理。 此方法傳回一個影像物件集合,其中包含原始影像資料和有用的元資料屬性。 對於使用[PowerPoint 簡報的](https://ironsoftware.com/csharp/ppt/examples/create-empty-presentation/)開發人員來說,其他 Iron 庫中也存在類似的功能,這表示整個產品套件的 API 設計是一致的。

### 我該如何開始使用 IronWord?

---

<div class="hsg-featured-snippet">
    <h2>如何從 DOCX 檔案中提取圖像</h2>
    <ol>
        <li>下載用於從 DOCX 檔案中提取圖像的 C# 庫</li>
        <li>載入現有 Word 文檔</li>
        <li>使用<code>ExtractImages</code>存取和提取映像內容</li>
        <li>將提取的映像儲存到磁碟</li>
        <li>處理或匯出影像文件</li>
    </ol>
</div>

## 如何從Word文件中提取圖片?

<!-- TODO: Add image here -->
<!-- ![Diagram illustrating extract images example implementation](/static-assets/images/TODO/extract-images-example-code_illustration.webp) -->
<!-- Description: Diagram or screenshot illustrating the code concept -->

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

使用文件處理庫時,了解[許可要求](https://ironsoftware.com/csharp/ppt/licensing/)至關重要,以確保您的應用程式符合使用條款。 IronWord 的授權模式與其他 Iron 產品類似,提供永久授權和全面的支援選項。 對於生產環境部署,您需要套用[許可證金鑰](https://ironsoftware.com/csharp/ppt/get-started/license-keys/)來移除任何浮水印或限制。

```csharp
:path=/static-assets/word/content-code-examples/how-to/extract-images-properties.cs

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 格式以與現代瀏覽器相容。

元數據保留:每個提取的圖像都保留重要的元數據,包括尺寸、解析度和顏色深度。 在實施影像優化流程或維護整個應用程式的品質標準時,這些資訊非常有用。

對於需要持續支援和定期更新的企業應用程序,可以考慮購買許可證延期服務,以便持續獲得新功能和優先支援。 如果您的專案範圍擴大,升級選項可實現無縫擴展,以涵蓋更多開發人員或部署位置。

與文檔工作流程集成

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

內容管理系統:在文件上傳過程中提取圖像,以建立縮圖預覽、建立圖像庫或填充媒體庫。 提取出的圖像可以建立索引以實現搜尋功能,或添加文件元資料標籤。

文件轉換流程:將 Word 文件轉換為其他格式時,可以單獨處理擷取的影像以獲得最佳品質。 這種分離可以實現針對特定格式的最佳化——例如,對網頁輸出和列印輸出套用不同的壓縮設定。

品質保證工作流程:自動擷取功能可對嵌入影像進行系統性審查,以確保其符合品牌指南、解析度要求或檔案大小限制。 發布前,您可以標記包含低解析度影像或格式錯誤的文件。

若要隨時了解文件處理功能的最新特性和改進,請定期查看產品變更日誌。 新版本通常包含性能增強和擴展的格式支持,這可以為您的圖像提取工作流程帶來益處。

性能考量

處理包含大量或高解析度影像的文件時,請考慮以下效能最佳化策略:

記憶體管理:分批處理圖像,而不是同時將所有圖像載入到記憶體中。 這種方法可以防止在處理大型文件或高解析度影像時記憶體耗盡。

非同步處理:對 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 下載 29,594 | 版本: 2025.12 剛剛發布