ImageData

ImageData class

Definierar en bild för en form.

public class ImageData

Egenskaper

namn Beskrivning
BiLevel { get; set; } Bestämmer om en bild ska visas i svartvitt.
Borders { get; } Hämtar samlingen av kanter för bilden. Kanter har endast effekt för inline-bilder.
Brightness { get; set; } Hämtar eller ställer in bildens ljusstyrka. Värdet för den här egenskapen måste vara ett tal från 0,0 (dynast) till 1,0 (ljusast).
ChromaKey { get; set; } Definierar färgvärdet för bilden som kommer att behandlas som transparent.
Contrast { get; set; } Hämtar eller ställer in kontrasten för den angivna bilden. Värdet för den här egenskapen måste vara ett tal från 0,0 (den minsta kontrasten) till 1,0 (den största kontrasten).
CropBottom { get; set; } Definierar andelen av bildborttagning från undersidan.
CropLeft { get; set; } Definierar andelen av bildborttagning från vänster sida.
CropRight { get; set; } Definierar andelen av bildborttagning från höger sida.
CropTop { get; set; } Definierar andelen av bildborttagning från ovansidan.
GrayScale { get; set; } Bestämmer om en bild ska visas i gråskaleläge.
HasImage { get; } Returnerar sant om formen har bildbytes eller länkar en bild.
ImageBytes { get; set; } Hämtar eller ställer in råbyte för bilden som lagras i formen.
ImageSize { get; } Får information om bildstorlek och upplösning.
ImageType { get; } Hämtar typen av bild.
IsLink { get; } Returnerar sant om bilden är länkad till formen (närSourceFullName anges).
IsLinkOnly { get; } Returnerar sant om bilden är länkad och inte lagrad i dokumentet.
SourceFullName { get; set; } Hämtar eller ställer in sökvägen och namnet på källfilen för den länkade bilden.
Title { get; set; } Definierar titeln på en bild.

Metoder

namn Beskrivning
Save(Stream) Sparar bilden i den angivna strömmen.
Save(string) Sparar bilden i en fil.
SetImage(Image) Ställer in bilden som formen visar.
SetImage(Stream) Ställer in bilden som formen visar.
SetImage(string) Ställer in bilden som formen visar.
ToByteArray() Returnerar bildbyte för alla bilder oavsett om bilden är lagrad eller länkad.
ToImage() Får bilden lagrad i formen som enImage objekt.
ToStream() Skapar och returnerar en ström som innehåller bildbytes.

Anmärkningar

AnvändImageData egenskap för att komma åt och ändra bilden i en form. Du skapar inte instanser avImageData klass direkt.

En bild kan lagras i en form, länkas till extern fil eller båda (länkas och lagras i dokumentet).

Oavsett om bilden är lagrad i formen eller länkad, kan du alltid komma åt den faktiska -bilden med hjälp avToByteArray ,ToStream ,ToImage ellerSave methods. Om bilden är lagrad i formen kan du också komma åt den direkt med hjälp avImageBytes fast egendom.

För att lagra en bild i en form användSetImage metod. För att länka en bild till en form, ställ inSourceFullName fast egendom.

Exempel

Visar hur man extraherar bilder från ett dokument och sparar dem i det lokala filsystemet som enskilda filer.

Document doc = new Document(MyDir + "Images.docx");

// Hämta samlingen av former från dokumentet,
// och spara bilddata för varje form med en bild som en fil till det lokala filsystemet.
NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true);

Assert.AreEqual(9, shapes.Count(s => ((Shape)s).HasImage));

int imageIndex = 0;
foreach (Shape shape in shapes.OfType<Shape>())
{
    if (shape.HasImage)
    {
        // Bilddata för former kan innehålla bilder av många möjliga bildformat. 
        // Vi kan bestämma en filtillägg för varje bild automatiskt, baserat på dess format.
        string imageFileName =
            $"File.ExtractImages.{imageIndex}{FileFormatUtil.ImageTypeToExtension(shape.ImageData.ImageType)}";
        shape.ImageData.Save(ArtifactsDir + imageFileName);
        imageIndex++;
    }
}

Visar hur man infogar en länkad bild i ett dokument.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

string imageFileName = ImageDir + "Windows MetaFile.wmf";

// Nedan finns två sätt att applicera en bild på en form så att den kan visa den.
// 1 - Ställ in formen så att den innehåller bilden.
Shape shape = new Shape(builder.Document, ShapeType.Image);
shape.WrapType = WrapType.Inline;
shape.ImageData.SetImage(imageFileName);

builder.InsertNode(shape);

doc.Save(ArtifactsDir + "Image.CreateLinkedImage.Embedded.docx");

// Varje bild som vi lagrar i form kommer att öka storleken på vårt dokument.
Assert.True(70000 < new FileInfo(ArtifactsDir + "Image.CreateLinkedImage.Embedded.docx").Length);

doc.FirstSection.Body.FirstParagraph.RemoveAllChildren();

// 2 - Ställ in formen för att länka till en bildfil i det lokala filsystemet.
shape = new Shape(builder.Document, ShapeType.Image);
shape.WrapType = WrapType.Inline;
shape.ImageData.SourceFullName = imageFileName;

builder.InsertNode(shape);
doc.Save(ArtifactsDir + "Image.CreateLinkedImage.Linked.docx");

// Att länka till bilder sparar utrymme och resulterar i ett mindre dokument.
// Dokumentet kan dock bara visa bilden korrekt medan
// bildfilen finns på den plats som formens "SourceFullName"-egenskap pekar på.
Assert.True(10000 > new FileInfo(ArtifactsDir + "Image.CreateLinkedImage.Linked.docx").Length);

Se även