DicomImage

DicomImage class

Es la clase de la implementación que trabaja con la imagen del archivo DICOM

public sealed class DicomImage : RasterCachedMultipageImage, IMultipageImageExt

Constructores

NombreDescripción
DicomImage(Stream)Inicializa una nueva instancia delDicomImage clase.
DicomImage(Stream, LoadOptions)Inicializa una nueva instancia delDicomImage clase.
DicomImage(DicomOptions, int, int)Inicializa una nueva instancia delDicomImage clase.

Propiedades

NombreDescripción
ActivePage { get; set; }Obtiene o establece la página activa.
ActivePageIndex { get; }Obtiene la página activa del índice.
AutoAdjustPalette { get; set; }Obtiene o establece un valor que indica si la paleta se ajusta automáticamente.
override BackgroundColor { get; set; }Obtiene o establece un valor para el color de fondo.
override BitsPerPixel { get; }Obtiene el recuento de bits por píxel de la imagen.
Bounds { get; }Obtiene los límites de la imagen.
BufferSizeHint { get; set; }Obtiene o establece la sugerencia de tamaño de búfer que se define como el tamaño máximo permitido para todos los búferes internos.
Container { get; }Obtiene elImage contenedor.
DataStreamContainer { get; }Obtiene el flujo de datos del objeto.
DicomPages { get; }Obtiene las páginas.
Disposed { get; }Obtiene un valor que indica si esta instancia se desecha.
override FileFormat { get; }Obtiene un valor de formato de archivo
FileInfo { get; }Obtiene un valor, que contiene el encabezado de información del archivo DICOM
override HasAlpha { get; }Obtiene el canal Tiene alfa.
virtual HasBackgroundColor { get; set; }Obtiene o establece un valor que indica si la imagen tiene color de fondo.
override HasTransparentColor { get; }Obtiene un valor que indica si la imagen tiene color transparente.
override Height { get; }Obtiene la altura de la imagen.
virtual HorizontalResolution { get; set; }Obtiene o establece la resolución horizontal, en píxeles por pulgada, de esteRasterImage .
override ImageOpacity { get; }Obtiene la opacidad de esta imagen.
InterruptMonitor { get; set; }Obtiene o establece el monitor de interrupción.
IsCached { get; }Obtiene un valor que indica si los datos de la imagen se almacenan en caché actualmente.
IsRawDataAvailable { get; }Obtiene un valor que indica si la carga de datos sin procesar está disponible.
override PageCount { get; }Obtiene el número de páginas.
override PageExportingAction { get; set; }Obtiene o establece la acción de exportación de la página. Tenga en cuenta que configurar este método liberará automáticamente los recursos de la página después de ejecutarlo. Se ejecutará justo antes de que se guarde cada página.
override Pages { get; }Obtiene las páginas.
Palette { get; set; }Obtiene o establece la paleta de colores. La paleta de colores no se utiliza cuando los píxeles se representan directamente.
virtual PremultiplyComponents { get; set; }Obtiene o establece un valor que indica si los componentes de la imagen se deben premultiplicar.
RawCustomColorConverter { get; set; }Obtiene o establece el convertidor de color personalizado
virtual RawDataFormat { get; }Obtiene el formato de datos sin procesar.
RawDataSettings { get; }Obtiene la configuración actual de datos sin procesar. Tenga en cuenta que al usar esta configuración, los datos se cargan sin conversión.
RawFallbackIndex { get; set; }Obtiene o establece el índice alternativo que se utilizará cuando el índice de la paleta esté fuera de los límites
RawIndexedColorConverter { get; set; }Obtiene o establece el convertidor de color indexado
virtual RawLineSize { get; }Obtiene el tamaño de línea sin formato en bytes.
Size { get; }Obtiene el tamaño de la imagen.
virtual TransparentColor { get; set; }Obtiene la imagen en color transparente.
virtual UpdateXmpData { get; set; }Obtiene o establece un valor que indica si se deben actualizar los metadatos XMP.
override UsePalette { get; }Obtiene un valor que indica si se utiliza la paleta de imágenes.
virtual UseRawData { get; set; }Obtiene o establece un valor que indica si se debe usar la carga de datos sin procesar cuando la carga de datos sin procesar está disponible.
virtual VerticalResolution { get; set; }Obtiene o establece la resolución vertical, en píxeles por pulgada, de esteRasterImage .
override Width { get; }Obtiene el ancho de la imagen.
override XmpData { get; set; }Obtiene o establece los datos Xmp.

Métodos

NombreDescripción
AddPage()Agrega una nueva página al final de la lista de páginas.
AddPage(RasterImage)Agrega página a la imagen.
override AdjustBrightness(int)Ajuste de unbrightness para imagen.
override AdjustContrast(float)Image contrastando
override AdjustGamma(float)Corrección gamma de una imagen.
override AdjustGamma(float, float, float)Corrección gamma de una imagen.
override BinarizeBradley(double)Binarización de una imagen usando el algoritmo de umbral adaptativo de Bradley usando el umbral de imagen integral
override BinarizeBradley(double, int)Binarización de una imagen usando el algoritmo de umbral adaptativo de Bradley usando el umbral de imagen integral
override BinarizeFixed(byte)Binarización de una imagen con umbral predefinido
override BinarizeOtsu()Binarización de una imagen con umbral Otsu
override CacheData()Guarda en caché los datos privados.
CanSave(ImageOptionsBase)Determina si la imagen se puede guardar en el formato de archivo especificado representado por las opciones de guardado pasadas.
override Crop(Rectangle)Recortando la imagen.
override Crop(int, int, int, int)Recortar imagen con turnos.
Dispose()Elimina la instancia actual.
Dither(DitheringMethod, int)Realiza tramado en la imagen actual.
override Dither(DitheringMethod, int, IColorPalette)Realiza tramado en la imagen actual.
override Filter(Rectangle, FilterOptionsBase)Filtra el rectángulo especificado.
GetArgb32Pixel(int, int)Obtiene una imagen ARGB pixel de 32 bits.
GetDefaultArgb32Pixels(Rectangle)Obtiene la matriz de píxeles ARGB de 32 bits predeterminada.
virtual GetDefaultOptions(object[])Obtiene las opciones predeterminadas.
GetDefaultPixels(Rectangle, IPartialArgb32PixelLoader)Obtiene la matriz de píxeles predeterminada usando un cargador de píxeles parcial.
GetDefaultRawData(Rectangle, RawDataSettings)Obtiene la matriz de datos sin procesar predeterminada.
GetDefaultRawData(Rectangle, IPartialRawDataLoader, RawDataSettings)Obtiene la matriz de datos sin procesar predeterminada mediante el cargador de píxeles parciales.
virtual GetModifyDate(bool)Obtiene la fecha y la hora en que se modificó por última vez la imagen del recurso.
virtual GetOriginalOptions()Obtiene las opciones basadas en la configuración del archivo original. Esto puede ser útil para mantener sin cambios la profundidad de bits y otros parámetros de la imagen original. Por ejemplo, si cargamos una imagen PNG en blanco y negro con 1 bit por píxel y luego guardarlo usando the Save se producirá la imagen PNG de salida con 8 bits por píxel.Save método como el segundo parámetro.
GetPixel(int, int)Obtiene un píxel de imagen.
GetSkewAngle()Obtiene el ángulo de inclinación. Este método es aplicable a documentos de texto escaneados, para determinar el ángulo de inclinación al escanear.
override Grayscale()Transformación de una imagen a su representación en escala de grises
InsertPage(int)Inserta una nueva página en la lista de páginas en el índice especificado.
LoadArgb32Pixels(Rectangle)Carga píxeles ARGB de 32 bits.
LoadArgb64Pixels(Rectangle)Carga píxeles ARGB de 64 bits.
LoadCmyk32Pixels(Rectangle)Carga píxeles en formato CMYK.
LoadPartialArgb32Pixels(Rectangle, IPartialArgb32PixelLoader)Carga píxeles ARGB de 32 bits parcialmente por paquetes.
LoadPartialPixels(Rectangle, IPartialPixelLoader)Carga píxeles parcialmente por paquetes.
LoadPixels(Rectangle)Carga píxeles.
LoadRawData(Rectangle, RawDataSettings, IPartialRawDataLoader)Carga datos sin procesar.
LoadRawData(Rectangle, Rectangle, RawDataSettings, IPartialRawDataLoader)Carga datos sin procesar.
NormalizeAngle()Normaliza el ángulo. Este método es aplicable a documentos de texto escaneados para eliminar el escaneo sesgado. Este método utilizaGetSkewAngle yRotate métodos.
override NormalizeAngle(bool, Color)Normaliza el ángulo. Este método es aplicable a documentos de texto escaneados para eliminar el escaneo sesgado. Este método utiliza!:GetSkewAngle yRotate métodos.
ReadArgb32ScanLine(int)Lee toda la línea de escaneo por el índice de línea de escaneo especificado.
ReadScanLine(int)Lee toda la línea de escaneo por el índice de línea de escaneo especificado.
RemovePage(int)Elimina la página en el índice especificado de la lista de páginas.
ReplaceColor(Color, byte, Color)Reemplaza un color por otro con la diferencia permitida y conserva el valor alfa original para guardar bordes suaves.
override ReplaceColor(int, byte, int)Reemplaza un color por otro con la diferencia permitida y conserva el valor alfa original para guardar bordes suaves.
ReplaceNonTransparentColors(Color)Reemplaza todos los colores no transparentes con un nuevo color y conserva el valor alfa original para guardar bordes suaves. Nota: si lo usa en imágenes sin transparencia, todos los colores serán reemplazados por uno solo.
override ReplaceNonTransparentColors(int)Reemplaza todos los colores no transparentes con un nuevo color y conserva el valor alfa original para guardar bordes suaves. Nota: si lo usa en imágenes sin transparencia, todos los colores serán reemplazados por uno solo.
Resize(int, int)Cambia el tamaño de la imagen. El valor por defectoNearestNeighbourResample se usa.
override Resize(int, int, ImageResizeSettings)Cambia el tamaño de la imagen.
override Resize(int, int, ResizeType)Cambia el tamaño de la imagen.
ResizeHeightProportionally(int)Cambia el tamaño de la altura proporcionalmente. El valor por defectoNearestNeighbourResample se usa.
virtual ResizeHeightProportionally(int, ImageResizeSettings)Cambia el tamaño de la altura proporcionalmente.
override ResizeHeightProportionally(int, ResizeType)Cambia el tamaño del ancho proporcionalmente.
ResizeProportional(int, int, ResizeType)Realiza un cambio de tamaño proporcional en la imagen. El cambio de tamaño proporcional cambiará el tamaño de cada cuadro de acuerdo con la proporción denewWidth/ancho ynewHeight /altura.
ResizeWidthProportionally(int)Cambia el tamaño del ancho proporcionalmente. El valor por defectoNearestNeighbourResample se usa.
virtual ResizeWidthProportionally(int, ImageResizeSettings)Cambia el tamaño del ancho proporcionalmente.
override ResizeWidthProportionally(int, ResizeType)Cambia el tamaño del ancho proporcionalmente.
virtual Rotate(float)Rotar imagen alrededor del centro.
override Rotate(float, bool, Color)!:RasterCahcedMultipageImage.Rotate imagen alrededor del centro.
override RotateFlip(RotateFlipType)Gira, voltea o gira y voltea solo el marco activo.
Save()Guarda los datos de la imagen en el flujo subyacente.
Save(Stream)Guarda los datos del objeto en el flujo especificado.
override Save(string)Guarda la imagen en la ubicación de archivo especificada.
Save(Stream, ImageOptionsBase)Guarda los datos de la imagen en el flujo especificado en el formato de archivo especificado según las opciones de guardado.
virtual Save(string, bool)Guarda los datos del objeto en la ubicación de archivo especificada.
virtual Save(string, ImageOptionsBase)Guarda los datos del objeto en la ubicación de archivo especificada en el formato de archivo especificado según las opciones de guardado.
override Save(Stream, ImageOptionsBase, Rectangle)Guarda los datos de la imagen en el flujo especificado en el formato de archivo especificado según las opciones de guardado.
virtual Save(string, ImageOptionsBase, Rectangle)Guarda los datos del objeto en la ubicación de archivo especificada en el formato de archivo especificado según las opciones de guardado.
SaveAll(string, ImageOptionsBase)Guarda los datos del objeto en la ubicación del archivo especificado (indexador + nombre de archivo) en el formato de archivo especificado según las opciones de guardado..
SaveArgb32Pixels(Rectangle, int[])Guarda los píxeles ARGB de 32 bits.
SaveCmyk32Pixels(Rectangle, int[])Guarda los píxeles.
SavePixels(Rectangle, Color[])Guarda los píxeles.
SaveRawData(byte[], int, Rectangle, RawDataSettings)Guarda los datos sin procesar.
SetArgb32Pixel(int, int, int)Establece un píxel ARGB de 32 bits de imagen para la posición especificada.
override SetPalette(IColorPalette, bool)Establece la paleta de la imagen.
SetPixel(int, int, Color)Establece un píxel de imagen para la posición especificada.
override SetResolution(double, double)Establece la resolución para esteRasterImage .
virtual ToBitmap()Convierte la imagen ráster al mapa de bits.
WriteArgb32ScanLine(int, int[])Escribe toda la línea de escaneo en el índice de línea de escaneo especificado.
WriteScanLine(int, Color[])Escribe toda la línea de escaneo en el índice de línea de escaneo especificado.

Ejemplos

Cambiar el tipo de color en la compresión DICOM.

[C#]

using (var inputImage = Image.Load("original.jpg"))
{
    var options = new DicomOptions { ColorType = ColorType.Grayscale8Bit };

    inputImage.Save("original_8Bit.dcm", options);
}

Utilice la compresión RLE en la imagen DICOM.

[C#]

using (var inputImage = Image.Load("original.jpg"))
{
    var options = new DicomOptions
    {
        ColorType = ColorType.Rgb24Bit,
        Compression = new Compression { Type = CompressionType.Rle }
    };

    inputImage.Save("original_RLE.dcm", options);
}

Utilice la compresión JPEG 2000 en la imagen DICOM.

[C#]

using (var inputImage = Image.Load("original.jpg"))
{
    var options = new DicomOptions
    {
        ColorType = ColorType.Rgb24Bit,
        Compression = new Compression
        {
            Type = CompressionType.Jpeg2000,
            Jpeg2000 = new Jpeg2000Options
            {
                Codec = Jpeg2000Codec.Jp2,
                Irreversible = false
            }
        }
    };

    inputImage.Save("original_JPEG2000.dcm", options);
}

Utilice la compresión JPEG en la imagen DICOM.

[C#]

using (var inputImage = Image.Load("original.jpg"))
{
    var options = new DicomOptions
    {
        ColorType = ColorType.Rgb24Bit,
        Compression = new Compression
        {
            Type = CompressionType.Jpeg,
            Jpeg = new JpegOptions
            {
                CompressionType = JpegCompressionMode.Baseline,
                SampleRoundingMode = SampleRoundingMode.Truncate,
                Quality = 50
            }
        }
    };

    inputImage.Save("original_JPEG.dcm", options);
}

Este ejemplo muestra cómo cargar una imagen DICOM desde un flujo de archivos.

[C#]

string dir = "c:\\temp\\";

// Cargar una imagen DICOM desde un flujo de archivos.
using (System.IO.Stream stream = System.IO.File.OpenRead(dir + "sample.dicom"))
{
    using (Aspose.Imaging.FileFormats.Dicom.DicomImage dicomImage = new Aspose.Imaging.FileFormats.Dicom.DicomImage(stream))
    {
        // Guarde cada página como una imagen PNG individual.                    
        foreach (Aspose.Imaging.FileFormats.Dicom.DicomPage dicomPage in dicomImage.DicomPages)
        {
            // Genera un nombre de archivo basado en el índice de la página.
            string fileName = string.Format("sample.{0}.png", dicomPage.Index);

            // Una página DICOM es una imagen de trama, por lo que todas las operaciones permitidas con una imagen de trama se aplican a una página DICOM.
            dicomPage.Save(dir + fileName, new Aspose.Imaging.ImageOptions.PngOptions());
        }
    }
}

Cree una imagen Dicom de varias páginas.

[C#]

using (DicomImage image = (DicomImage)Image.Create(
        new DicomOptions() { Source = new StreamSource(new MemoryStream()) },
        100,
        100))
{
    // Dibujar algo usando gráficos vectoriales
    Graphics graphics = new Graphics(image);
    graphics.FillRectangle(new SolidBrush(Color.BlueViolet), image.Bounds);
    graphics.FillRectangle(new SolidBrush(Color.Aqua), 10, 20, 50, 20);
    graphics.FillEllipse(new SolidBrush(Color.Orange), 30, 50, 70, 30);

    // Guarda los píxeles de la imagen dibujada. Ahora están en la primera página de la imagen de Dicom.
    int[] pixels = image.LoadArgb32Pixels(image.Bounds);

    // Agrega algunas páginas después, haciéndolas más oscuras
    for (int i = 1; i < 5; i++)
    {
        DicomPage page = image.AddPage();
        page.SaveArgb32Pixels(page.Bounds, pixels);
        page.AdjustBrightness(i * 30);
    }

    // Agregue algunas páginas al frente de la página principal, haciéndolas más brillantes
    for (int i = 1; i < 5; i++)
    {
        DicomPage page = image.InsertPage(0);
        page.SaveArgb32Pixels(page.Bounds, pixels);
        page.AdjustBrightness(-i * 30);
    }

    // Guardar la imagen de varias páginas creada en el archivo de salida
    image.Save("MultiPage.dcm");
}

Ver también