ImageData

ImageData class

Define una imagen para una forma.

Para obtener más información, visite elTrabajar con imágenes artículo de documentación.

public class ImageData

Propiedades

NombreDescripción
BiLevel { get; set; }Determina si una imagen se mostrará en blanco y negro.
Borders { get; }Obtiene la colección de bordes de la imagen. Los bordes solo tienen efecto para imágenes en línea.
Brightness { get; set; }Obtiene o establece el brillo de la imagen. El valor de esta propiedad debe ser un número entre 0,0 (más tenue) y 1,0 (más brillante).
ChromaKey { get; set; }Define el valor de color de la imagen que será tratada como transparente.
Contrast { get; set; }Obtiene o establece el contraste de la imagen especificada. El valor de esta propiedad debe ser un número entre 0,0 (el menor contraste) y 1,0 (el mayor contraste).
CropBottom { get; set; }Define la fracción de eliminación de la imagen desde la parte inferior.
CropLeft { get; set; }Define la fracción de eliminación de imagen desde el lado izquierdo.
CropRight { get; set; }Define la fracción de eliminación de la imagen desde el lado derecho.
CropTop { get; set; }Define la fracción de eliminación de la imagen desde la parte superior.
GrayScale { get; set; }Determina si una imagen se mostrará en modo de escala de grises.
HasImage { get; }Devolucionesverdadero si la forma tiene bytes de imagen o vincula una imagen.
ImageBytes { get; set; }Obtiene o establece los bytes sin formato de la imagen almacenada en la forma.
ImageSize { get; }Obtiene la información sobre el tamaño y la resolución de la imagen.
ImageType { get; }Obtiene el tipo de imagen.
IsLink { get; }Devolucionesverdadero si la imagen está vinculada a la forma (cuandoSourceFullName se especifica).
IsLinkOnly { get; }Devolucionesverdadero si la imagen está vinculada y no almacenada en el documento.
SourceFullName { get; set; }Obtiene o establece la ruta y el nombre del archivo fuente de la imagen vinculada.
Title { get; set; }Define el título de una imagen.

Métodos

NombreDescripción
Save(Stream)Guarda la imagen en la secuencia especificada.
Save(string)Guarda la imagen en un archivo.
SetImage(Image)Establece la imagen que muestra la forma.
SetImage(Stream)Establece la imagen que muestra la forma.
SetImage(string)Establece la imagen que muestra la forma.
ToByteArray()Devuelve bytes de imagen para cualquier imagen independientemente de si la imagen está almacenada o vinculada.
ToImage()Obtiene la imagen almacenada en la forma comoImage objeto.
ToStream()Crea y devuelve una secuencia que contiene los bytes de la imagen.

Observaciones

Utilizar elImageData propiedad para acceder y modificar la imagen dentro de una forma. No crea instancias de laImageData clase directamente.

Una imagen puede almacenarse dentro de una forma, vincularse a un archivo externo o ambas (vinculadas y almacenadas en el documento).

Independientemente de si la imagen está almacenada dentro de la forma o vinculada, siempre puede acceder a la imagen actual usando elToByteArray ,ToStream ,ToImage oSave métodos. Si la imagen se almacena dentro de la forma, también puede acceder directamente a ella utilizando elImageBytes propiedad.

Para almacenar una imagen dentro de una forma use elSetImage método. Para vincular una imagen a una forma, configure elSourceFullName propiedad.

Ejemplos

Muestra cómo extraer imágenes de un documento y guardarlas en el sistema de archivos local como archivos individuales.

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

// Obtener la colección de formas del documento,
// y guarda los datos de la imagen de cada forma con una imagen como un archivo en el sistema de archivos local.
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)
    {
         // Los datos de imagen de las formas pueden contener imágenes de muchos formatos de imagen posibles.
        // Podemos determinar una extensión de archivo para cada imagen automáticamente, según su formato.
        string imageFileName =
            $"File.ExtractImages.{imageIndex}{FileFormatUtil.ImageTypeToExtension(shape.ImageData.ImageType)}";
        shape.ImageData.Save(ArtifactsDir + imageFileName);
        imageIndex++;
    }
}

Muestra cómo insertar una imagen vinculada en un documento.

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

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

// A continuación se muestran dos formas de aplicar una imagen a una forma para que pueda mostrarla.
// 1 - Establece la forma para contener la imagen.
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");

// Cada imagen que almacenemos en forma aumentará el tamaño de nuestro documento.
Assert.True(70000 < new FileInfo(ArtifactsDir + "Image.CreateLinkedImage.Embedded.docx").Length);

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

// 2 - Establece la forma para vincular a un archivo de imagen en el sistema de archivos local.
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");

// Vincular a imágenes ahorrará espacio y dará como resultado un documento más pequeño.
// Sin embargo, el documento sólo puede mostrar la imagen correctamente mientras
// el archivo de imagen está presente en la ubicación a la que apunta la propiedad "SourceFullName" de la forma.
Assert.True(10000 > new FileInfo(ArtifactsDir + "Image.CreateLinkedImage.Linked.docx").Length);

Ver también