ImageData

ImageData class

Definisce un’immagine per una forma.

Per saperne di più, visita ilLavorare con le immagini articolo di documentazione.

public class ImageData

Proprietà

NomeDescrizione
BiLevel { get; set; }Determina se un’immagine verrà visualizzata in bianco e nero.
Borders { get; }Ottiene l’insieme dei bordi dell’immagine. I bordi hanno effetto solo sulle immagini in linea.
Brightness { get; set; }Ottiene o imposta la luminosità dell’immagine. Il valore per questa proprietà deve essere un numero compreso tra 0,0 (più scuro) e 1,0 (più luminoso).
ChromaKey { get; set; }Definisce il valore del colore dell’immagine che verrà trattata come trasparente.
Contrast { get; set; }Ottiene o imposta il contrasto per l’immagine specificata. Il valore per questa proprietà deve essere un numero compreso tra 0,0 (contrasto minimo) e 1,0 (contrasto massimo).
CropBottom { get; set; }Definisce la frazione di rimozione dell’immagine dal lato inferiore.
CropLeft { get; set; }Definisce la frazione di rimozione dell’immagine dal lato sinistro.
CropRight { get; set; }Definisce la frazione di rimozione dell’immagine dal lato destro.
CropTop { get; set; }Definisce la frazione di rimozione dell’immagine dal lato superiore.
GrayScale { get; set; }Determina se un’immagine verrà visualizzata in modalità scala di grigi.
HasImage { get; }RestituisceVERO se la forma ha byte di immagine o collega un’immagine.
ImageBytes { get; set; }Ottiene o imposta i byte grezzi dell’immagine memorizzata nella forma.
ImageSize { get; }Ottiene le informazioni sulle dimensioni e la risoluzione dell’immagine.
ImageType { get; }Ottiene il tipo di immagine.
IsLink { get; }RestituisceVERO se l’immagine è collegata alla forma (quandoSourceFullName è specificato).
IsLinkOnly { get; }RestituisceVERO se l’immagine è collegata e non memorizzata nel documento.
SourceFullName { get; set; }Ottiene o imposta il percorso e il nome del file sorgente per l’immagine collegata.
Title { get; set; }Definisce il titolo di un’immagine.

Metodi

NomeDescrizione
FitImageToShape()Adatta i dati dell’immagine alla cornice di forma in modo che le proporzioni dei dati dell’immagine corrispondano alle proporzioni della cornice di forma.
Save(Stream)Salva l’immagine nel flusso specificato.
Save(string)Salva l’immagine in un file.
SetImage(Image)Imposta l’immagine visualizzata dalla forma.
SetImage(Stream)Imposta l’immagine visualizzata dalla forma.
SetImage(string)Imposta l’immagine visualizzata dalla forma.
ToByteArray()Restituisce i byte dell’immagine per qualsiasi immagine, indipendentemente dal fatto che l’immagine sia memorizzata o collegata.
ToImage()Ottiene l’immagine memorizzata nella forma comeImage oggetto.
ToStream()Crea e restituisce un flusso contenente i byte dell’immagine.

Osservazioni

Utilizzare ilImageDataproprietà per accedere e modificare l’immagine all’interno di una forma. Non si creano istanze diImageData classe direttamente.

Un’immagine può essere memorizzata all’interno di una forma, collegata a un file esterno o entrambe le cose (collegata e memorizzata nel documento).

Indipendentemente dal fatto che l’immagine sia memorizzata all’interno della forma o collegata, puoi sempre accedere all’immagine actual utilizzandoToByteArray ,ToStream ,ToImage OSave metodi. Se l’immagine è memorizzata all’interno della forma, è anche possibile accedervi direttamente utilizzandoImageBytes proprietà.

Per memorizzare un’immagine all’interno di una forma utilizzareSetImage metodo. Per collegare un’immagine a una forma, imposta ilSourceFullName proprietà.

Esempi

Mostra come estrarre immagini da un documento e salvarle nel file system locale come file singoli.

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

// Ottieni la raccolta di forme dal documento,
// e salva i dati dell'immagine di ogni forma con un'immagine come file nel file system locale.
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)
    {
         // I dati immagine delle forme possono contenere immagini di molti possibili formati.
        // Possiamo determinare automaticamente un'estensione di file per ogni immagine, in base al suo formato.
        string imageFileName =
            $"File.ExtractImages.{imageIndex}{FileFormatUtil.ImageTypeToExtension(shape.ImageData.ImageType)}";
        shape.ImageData.Save(ArtifactsDir + imageFileName);
        imageIndex++;
    }
}

Mostra come inserire un’immagine collegata in un documento.

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

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

// Di seguito sono riportati due modi per applicare un'immagine a una forma in modo da poterla visualizzare.
// 1 - Imposta la forma che conterrà l'immagine.
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");

// Ogni immagine che memorizziamo in un formato aumenterà la dimensione del nostro documento.
Assert.True(70000 < new FileInfo(ArtifactsDir + "Image.CreateLinkedImage.Embedded.docx").Length);

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

// 2 - Imposta la forma per collegarla a un file immagine nel file system locale.
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");

// Il collegamento alle immagini consente di risparmiare spazio e di ottenere un documento più piccolo.
// Tuttavia, il documento può visualizzare correttamente l'immagine solo mentre
// il file immagine è presente nella posizione a cui punta la proprietà "SourceFullName" della forma.
Assert.True(10000 > new FileInfo(ArtifactsDir + "Image.CreateLinkedImage.Linked.docx").Length);

Guarda anche