使用IronWord與C#從DOCX中提取圖像

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

IronWord的ExtractImages()方法使您能夠程式化地從Word文件中提取所有嵌入的圖像,從而存取圖像資料和元資料,如尺寸和格式,以供保存或處理。

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

  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文件中提取圖像是簡單的。 文件embedded_images.docx將被用作範例文件,其中包括3個不同頁面上的5張圖像。 下面的程式碼片段定義了使用ExtractImages()方法進行圖像提取過程的核心工作流。

當使用文件處理庫時,了解許可要求是至關重要的,以確保您的應用程式符合使用條款。 IronWord遵循與其他Iron產品類似的許可模式,提供永久許可和全面的支持選項。 對於生產部署,您將需要應用許可金鑰來移除任何水印或限制。

: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}");
Imports System
Imports IronWord
Imports IronSoftware.Drawing

' 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"
    DirectCast(image.Image, AnyBitmap).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方法返回一個可枚舉的圖像物件集合,每個物件包含完整的圖像資料以及元資料。 要保存圖像,請將SaveAs方法。 這需要將using IronSoftware.Drawing;新增到您的命名空間聲明中。

這種方法允許靈活的處理工作流——您可以將圖像保存到磁碟,如上所示,將其轉換為不同的格式,或直接流式傳輸到雲儲存服務。 該方法處理常見嵌入在Word文件中的多種圖像格式,包括JPEG、PNG、BMP和GIF。

範例文件看起來如何?

帶嵌入圖像的Word文件:谷歌標誌、人頭剪影、星系場景、獅子和禪石

我應該期待什麼輸出?

除錯控制台顯示提取的5張圖像,其尺寸和文件名從extracted-image-0.png到extracted-image-4.png

提取的圖像保留其原始格式(例如.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文件中的圖像?

使用命令:Install-Package IronWord,通過NuGet包管理器安裝IronWord。一旦安裝完成,將'using IronWord;'新增到您的C#文件中,以存取圖像提取功能和其他文件處理功能。

是否可以從多頁的Word文件中提取圖像?

可以,IronWord的ExtractImages()方法可以從整個Word文件中提取所有圖像,無論它包含多少頁。該方法返回整個文件中找到的所有嵌入圖像的完整集合,無論它們位於單一頁面上還是分佈在多個頁面上。

Ahmad Sohail
全端開發人員

Ahmad是一位擁有C#、Python和網頁技術堅實基礎的全端開發人員。他對構建可擴展的軟體解決方案深感興趣,並喜歡探索設計和功能在現實世界應用中的結合。

加入Iron Software團隊之前,Ahmad曾致力於自動化專案和API整合,專注於提升性能和開發者體驗。

在空閒時間,他喜歡試驗UI/UX理念,為開放原始碼工具做出貢獻,偶爾也會潛心編寫技術文件和文章以簡化複雜的主題。

準備開始了嗎?
Nuget 下載 49,323 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

還在滾動?

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