Extract Images from DOCX with C# using IronWord

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

Metoda ExtractImages() IronWord umożliwia programistyczne wyodrębnienie wszystkich osadzonych obrazów z dokumentów Word, zapewniając dostęp do danych obrazu i metadanych, takich jak wymiary i format, do zapisu lub przetwarzania.

Szybki start: Wyodrębnianie obrazów z DOCX w C#

  1. Install IronWord with NuGet Package Manager

    PM > Install-Package IronWord
  2. Skopiuj i uruchom ten fragment kodu.

    // 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. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronWord w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer

Wyodrębnianie obrazów z dokumentów Word jest częstym wymogiem przy migracji treści, zarządzaniu mediami i programistycznym przetwarzaniu dokumentów. Niezależnie od tego, czy tworzysz system zarządzania treścią, automatyzujesz procesy dokumentacyjne, czy tworzysz archiwa cyfrowe, IronWord upraszcza dostęp do osadzonych obrazów, umożliwiając ich zapis, ponowne wykorzystanie lub analizę przez takie właściwości jak wymiary i format.

Rozpocznij pracę z IronWord


Jak wyodrębnić obrazy z dokumentu Word?

Wyodrębnianie obrazów z dokumentu Word jest proste z IronWord. Plik embedded_images.docx zostanie użyty jako plik przykładowy, który zawiera 5 obrazów na 3 różnych stronach. Poniższy fragment kodu definiuje główny przepływ pracy dla procesu wyodrębniania obrazów przy użyciu metody ExtractImages().

Pracując z bibliotekami do przetwarzania dokumentów, ważne jest zrozumienie wymagań licencyjnych, aby upewnić się, że Twoja aplikacja spełnia warunki użytkowania. IronWord stosuje podobne wzorce licencyjne do innych produktów Iron, oferując licencje wieczyste z kompleksowymi opcjami wsparcia. Do wdrożeń produkcyjnych będziesz musiał zastosować klucze licencyjne, aby usunąć wszelkie znaki wodne lub ograniczenia.

: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

Metoda ExtractImages zwraca enumerowalną kolekcję obiektów obrazów, z których każdy zawiera kompletne dane obrazu wraz z metadanymi. Aby zapisać obrazy, przekształć właściwość Image na AnyBitmap używając ((AnyBitmap)image.Image).SaveAs(), aby uzyskać dostęp do metody SaveAs. Wymaga to dodania using IronSoftware.Drawing; do deklaracji przestrzeni nazw.

Takie podejście pozwala na elastyczne przepływy pracy — można zapisywać obrazy na dysku, jak pokazano powyżej, konwertować je do różnych formatów lub przesyłać strumieniowo bezpośrednio do usług przechowywania w chmurze. Metoda obsługuje różne formaty obrazów powszechnie osadzane w dokumentach programu WORD, w tym JPEG, PNG, BMP i GIF.

Jak wygląda przykładowy dokument?

Dokument WORD z osadzonymi obrazami: logo Google, sylwetki głów, scena z galaktyką, lew i kamienie zen

Jakiego wyniku się spodziewać?

Konsola debugowania wyświetlająca 5 wyodrębnionych obrazów wraz z wymiarami i nazwami plików: extracted-image-0.png do extracted-image-4.png

Wyodrębnione obrazy zachowują swój oryginalny format (np. .jpg, .png lub inne formaty) i mogą być zapisane z odpowiednimi rozszerzeniami plików. Możesz przeglądać wszystkie obrazy w dokumencie lub skupić się na konkretnych sekcjach w zależności od potrzeb.

Zaawansowane scenariusze ekstrakcji obrazów

Oprócz podstawowego wyciągania danych, możliwości obsługi obrazów w IronWord obsługują kilka zaawansowanych scenariuszy, z którymi programiści często spotykają się w aplikacjach produkcyjnych:

Przetwarzanie wsadowe wielu dokumentów: Podczas przetwarzania dużych zbiorów dokumentów można wdrożyć przetwarzanie równoległe, aby jednocześnie wyodrębnić obrazy z wielu plików WORD. Takie podejście znacznie skraca czas przetwarzania archiwów dokumentów lub projektów migracji treści.

Konwersja formatów obrazów: Wyodrębnione obiekty obrazów obsługują konwersję między formatami. Można wyodrębnić plik JPEG z dokumentu WORD i zapisać go jako PNG w celu optymalizacji pod kątem sieci WWW lub przekonwertować do formatu WebP w celu zapewnienia zgodności z nowoczesnymi przeglądarkami.

Zachowanie metadanych: Każdy wyodrębniony obraz zachowuje ważne metadane, w tym wymiary, rozdzielczość i głębię kolorów. Informacje te okazują się cenne podczas wdrażania procesów optymalizacji obrazów lub utrzymywania standardów jakości w całej aplikacji.

W przypadku aplikacji korporacyjnych wymagających stałego wsparcia i regularnych aktualizacji warto rozważyć rozszerzenia licencji, które zapewniają stały dostęp do nowych funkcji i priorytetowe wsparcie. Jeśli zakres projektu się powiększy, opcje aktualizacji pozwalają na płynne skalowanie, aby objąć dodatkowych programistów lub lokalizacje wdrożenia.

Integracja z procesami obiegu dokumentów

Pobieranie obrazów często stanowi część większych procesów przetwarzania dokumentów. Weź pod uwagę następujące typowe wzorce integracji:

Systemy zarządzania treścią: Wyodrębnianie obrazów podczas przesyłania dokumentów w celu tworzenia podglądów miniatur, budowania galerii obrazów lub uzupełniania bibliotek multimediów. Wyodrębnione obrazy mogą być indeksowane na potrzeby funkcji wyszukiwania lub oznaczane metadanymi dokumentu.

Procesy konwersji dokumentów: Podczas konwersji dokumentów WORDa do innych formatów wyodrębnione obrazy mogą być przetwarzane oddzielnie w celu uzyskania optymalnej jakości. Takie rozdzielenie pozwala na optymalizację pod kątem konkretnego formatu — na przykład zastosowanie różnych ustawień kompresji dla wydruków i stron internetowych.

Procesy zapewnienia jakości: Zautomatyzowane wyodrębnianie umożliwia systematyczną weryfikację osadzonych obrazów pod kątem zgodności z wytycznymi dotyczącymi marki, wymaganiami dotyczącymi rozdzielczości lub ograniczeniami rozmiaru plików. Przed publikacją można oznaczyć dokumenty zawierające obrazy o niskiej rozdzielczości lub nieprawidłowe formaty.

Aby być na bieżąco z najnowszymi funkcjami i ulepszeniami w zakresie przetwarzania dokumentów, regularnie sprawdzaj dziennik zmian produktu. Nowe wersje często zawierają ulepszenia wydajności i rozszerzoną obsługę formatów, które mogą przynieść korzyści w procesach pozyskiwania obrazów.

Kwestie związane z wydajnością

Podczas pracy z dokumentami zawierającymi liczne obrazy lub obrazy o wysokiej rozdzielczości należy wziąć pod uwagę następujące strategie optymalizacji wydajności:

Zarządzanie pamięcią: Przetwarzaj obrazy partiami, zamiast ładować wszystkie obrazy do pamięci jednocześnie. Takie podejście zapobiega wyczerpaniu pamięci podczas pracy z dużymi dokumentami lub obrazami o wysokiej rozdzielczości.

Przetwarzanie asynchroniczne: Należy zaimplementować wzorce async/await dla operacji wejścia/wyjścia, zwłaszcza podczas zapisywania wyodrębnionych obrazów na dysk lub do pamięci sieciowej. Dzięki temu aplikacja zachowuje responsywność podczas długotrwałych operacji pobierania danych.

Wybiórcze wyodrębnianie: Jeśli potrzebujesz tylko określonych obrazów, rozważ wdrożenie filtrów opartych na właściwościach obrazu lub strukturze dokumentu, aby uniknąć przetwarzania zbędnej treści.

Solidna konstrukcja API zapewnia spójne działanie w różnych typach dokumentów i formatach obrazów, co ułatwia wbudowanie niezawodnych funkcji wyodrębniania obrazów w aplikacjach .NET.

Często Zadawane Pytania

Jak wyodrebnic obrazy z pliku DOCX w C#?

Mozesz wyodrebnic obrazy z plikow DOCX za pomoca metody ExtractImages() IronWord. Po prostu zaladuj dokument Word z WordDocument doc = new WordDocument("document.docx"), a nastepnie wywolaj doc.ExtractImages(), aby pobrac wszystkie osadzone obrazy. Kazdy obraz mozna zapisac za pomoca metody SaveAs() z wybranym formatem i nazwa pliku.

Jakie wlasciwosci obrazu moga byc dostepne przy wyodrebnianiu obrazow z dokumentow Word?

IronWord zapewnia dostep do waznych metadanych obrazow, wlaczajac wymiary szerokosci i wysokosci. Metoda ExtractImages() zwraca kolekcje obiektow obrazow zawierajacych zarowno surowe dane obrazowe, jak i te wlasciwosci metadanych, pozwalajac na programowa analize lub przetwarzanie obrazow na podstawie ich charakterystyk.

Czy moge zapisac wyodrebnione obrazy w roznych formatach?

Tak, IronWord pozwala na zapisanie wyodrebnionych obrazow w roznych formatach. Uzyj metody SaveAs() na kazdym obiekcie obrazu i okresl pozadana nazwe pliku z odpowiednim rozszerzeniem (np. .png, .jpg). Biblioteka automatycznie zajmie sie konwersja formatu na podstawie podanego rozszerzenia pliku.

Jak zainstalowac biblioteke do wyodrebniania obrazow z dokumentow Word?

Zainstaluj IronWord za posrednictwem NuGet Package Manager uzywajac komendy: Install-Package IronWord. Po instalacji dodaj 'using IronWord;' do pliku C#, aby uzyskac dostep do funkcjonalnosci wyodrebniania obrazow oraz innych funkcji przetwarzania dokumentow.

Czy mozna wyodrebnic obrazy z dokumentow Word o wielu stronach?

Tak, metoda ExtractImages() IronWord wyodrebnia wszystkie obrazy z calego dokumentu Word, niezaleznie od ilosci stron. Metoda zwraca pelna kolekcje wszystkich osadzonych obrazow znalezionych w calym dokumencie, niezaleznie od tego, czy sa one na jednej stronie, czy na wielu stronach.

Ahmad Sohail
Full Stack Developer

Ahmad to full-stack developer z solidnym fundamentem w C#, Pythonie i technologiach webowych. Ma głębokie zainteresowanie tworzeniem skalowalnych rozwiązań oprogramowania i cieszy się badaniem, jak projektowanie i funkcjonalność spotykają się w rzeczywistych aplikacjach.

Przed dołączeniem do zespołu Iron Software, Ahmad pracował nad projektami ...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 38,043 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronWord
uruchom próbkę zobacz, jak twoje dane stają się dokumentem Word.