DicomImage

DicomImage class

È la classe dell’implementazione che lavora con l’immagine dal file DICOM

public sealed class DicomImage : RasterCachedMultipageImage, IMultipageImageExt

Costruttori

NomeDescrizione
DicomImage(Stream)Inizializza una nuova istanza diDicomImage classe.
DicomImage(Stream, LoadOptions)Inizializza una nuova istanza diDicomImage classe.
DicomImage(DicomOptions, int, int)Inizializza una nuova istanza diDicomImage classe.

Proprietà

NomeDescrizione
ActivePage { get; set; }Ottiene o imposta la pagina attiva.
ActivePageIndex { get; }Ottiene la pagina attiva dell’indice.
AutoAdjustPalette { get; set; }Ottiene o imposta un valore che indica se regolare automaticamente la tavolozza.
override BackgroundColor { get; set; }Ottiene o imposta un valore per il colore di sfondo.
override BitsPerPixel { get; }Ottiene il numero di bit dell’immagine per pixel.
Bounds { get; }Ottiene i limiti dell’immagine.
BufferSizeHint { get; set; }Ottiene o imposta l’hint per la dimensione del buffer che è la dimensione massima consentita per tutti i buffer interni.
Container { get; }Ottiene ilImage contenitore.
DataStreamContainer { get; }Ottiene il flusso di dati dell’oggetto.
DicomPages { get; }Ottiene le pagine.
Disposed { get; }Ottiene un valore che indica se questa istanza è stata eliminata.
override FileFormat { get; }Ottiene un valore di formato file
FileInfo { get; }Ottiene un valore, che contiene l’intestazione delle informazioni il file DICOM
override HasAlpha { get; }Ottiene il canale alfa Has.
virtual HasBackgroundColor { get; set; }Ottiene o imposta un valore che indica se l’immagine ha il colore di sfondo.
override HasTransparentColor { get; }Ottiene un valore che indica se l’immagine ha un colore trasparente.
override Height { get; }Ottiene l’altezza dell’immagine.
virtual HorizontalResolution { get; set; }Ottiene o imposta la risoluzione orizzontale, in pixel per pollice, di questoRasterImage .
override ImageOpacity { get; }Ottiene l’opacità di questa immagine.
InterruptMonitor { get; set; }Ottiene o imposta il monitor di interruzione.
IsCached { get; }Ottiene un valore che indica se i dati dell’immagine sono attualmente memorizzati nella cache.
IsRawDataAvailable { get; }Ottiene un valore che indica se è disponibile il caricamento dei dati grezzi.
override PageCount { get; }Ottiene il conteggio delle pagine.
override PageExportingAction { get; set; }Ottiene o imposta l’azione di esportazione della pagina. Tieni presente che l’impostazione di questo metodo rilascerà automaticamente le risorse della pagina dopo l’esecuzione. Verrà eseguito appena prima del salvataggio di ogni pagina.
override Pages { get; }Ottiene le pagine.
Palette { get; set; }Ottiene o imposta la tavolozza dei colori. La tavolozza dei colori non viene utilizzata quando i pixel sono rappresentati direttamente.
virtual PremultiplyComponents { get; set; }Ottiene o imposta un valore che indica se i componenti dell’immagine devono essere premoltiplicati.
RawCustomColorConverter { get; set; }Ottiene o imposta il convertitore colore personalizzato
virtual RawDataFormat { get; }Ottiene il formato dei dati grezzi.
RawDataSettings { get; }Ottiene le impostazioni dei dati grezzi correnti. Nota quando si utilizzano queste impostazioni i dati vengono caricati senza conversione.
RawFallbackIndex { get; set; }Ottiene o imposta l’indice di fallback da utilizzare quando l’indice della tavolozza è fuori dai limiti
RawIndexedColorConverter { get; set; }Ottiene o imposta il convertitore colore indicizzato
virtual RawLineSize { get; }Ottiene la dimensione della riga grezza in byte.
Size { get; }Ottiene la dimensione dell’immagine.
virtual TransparentColor { get; set; }Ottiene il colore trasparente dell’immagine.
virtual UpdateXmpData { get; set; }Ottiene o imposta un valore che indica se aggiornare i metadati XMP.
override UsePalette { get; }Ottiene un valore che indica se viene utilizzata la tavolozza dell’immagine.
virtual UseRawData { get; set; }Ottiene o imposta un valore che indica se utilizzare il caricamento dei dati grezzi quando è disponibile il caricamento dei dati grezzi.
virtual VerticalResolution { get; set; }Ottiene o imposta la risoluzione verticale, in pixel per pollice, di questoRasterImage .
override Width { get; }Ottiene la larghezza dell’immagine.
override XmpData { get; set; }Ottiene o imposta i dati Xmp.

Metodi

NomeDescrizione
AddPage()Aggiunge una nuova pagina alla fine dell’elenco delle pagine.
AddPage(RasterImage)Aggiunge la pagina all’immagine.
override AdjustBrightness(int)Regolazione di abrightness per immagine.
override AdjustContrast(float)Image contrasto
override AdjustGamma(float)Correzione gamma di un’immagine.
override AdjustGamma(float, float, float)Correzione gamma di un’immagine.
override BinarizeBradley(double)Binarizzazione di un’immagine utilizzando l’algoritmo di soglia adattivo di Bradley utilizzando la soglia di immagine integrale
override BinarizeBradley(double, int)Binarizzazione di un’immagine utilizzando l’algoritmo di soglia adattivo di Bradley utilizzando la soglia di immagine integrale
override BinarizeFixed(byte)Binarizzazione di un’immagine con soglia predefinita
override BinarizeOtsu()Binarizzazione di un’immagine con soglia Otsu
override CacheData()Memorizza nella cache i dati privati.
CanSave(ImageOptionsBase)Determina se l’immagine può essere salvata nel formato file specificato rappresentato dalle opzioni di salvataggio passate.
override Crop(Rectangle)Ritaglio dell’immagine.
override Crop(int, int, int, int)Ritaglia immagine con spostamenti.
Dispose()Elimina l’istanza corrente.
Dither(DitheringMethod, int)Esegue il dithering sull’immagine corrente.
override Dither(DitheringMethod, int, IColorPalette)Esegue il dithering sull’immagine corrente.
override Filter(Rectangle, FilterOptionsBase)Filtra il rettangolo specificato.
GetArgb32Pixel(int, int)Ottiene un’immagine ARGB pixel a 32 bit.
GetDefaultArgb32Pixels(Rectangle)Ottiene l’array di pixel ARGB a 32 bit predefinito.
virtual GetDefaultOptions(object[])Ottiene le opzioni predefinite.
GetDefaultPixels(Rectangle, IPartialArgb32PixelLoader)Ottiene l’array di pixel predefinito utilizzando il caricatore di pixel parziale.
GetDefaultRawData(Rectangle, RawDataSettings)Ottiene l’array di dati grezzi predefinito.
GetDefaultRawData(Rectangle, IPartialRawDataLoader, RawDataSettings)Ottiene l’array di dati grezzi predefinito utilizzando il caricatore di pixel parziale.
virtual GetModifyDate(bool)Ottiene la data e l’ora dell’ultima modifica dell’immagine della risorsa.
virtual GetOriginalOptions()Ottiene le opzioni in base alle impostazioni del file originale. Questo può essere utile per mantenere invariati la profondità di bit e altri parametri dell’immagine originale. Ad esempio, se carichiamo un’immagine PNG in bianco e nero con 1 bit per pixel e quindi salvalo usando il Save metodo, verrà prodotta l’immagine PNG di output con 8 bit per pixel. Per evitarlo e salvare l’immagine PNG con 1 bit per pixel, utilizzare questo metodo per ottenere le opzioni di salvataggio corrispondenti e passarle alSave metodo come secondo parametro.
GetPixel(int, int)Ottiene un pixel dell’immagine.
GetSkewAngle()Ottiene l’angolo di inclinazione. Questo metodo è applicabile ai documenti di testo scansionati, per determinare l’angolo di inclinazione durante la scansione.
override Grayscale()Trasformazione di un’immagine nella sua rappresentazione in scala di grigi
InsertPage(int)Inserisce una nuova pagina nell’elenco delle pagine in corrispondenza dell’indice specificato.
LoadArgb32Pixels(Rectangle)Carica pixel ARGB a 32 bit.
LoadArgb64Pixels(Rectangle)Carica pixel ARGB a 64 bit.
LoadCmyk32Pixels(Rectangle)Carica i pixel in formato CMYK.
LoadPartialArgb32Pixels(Rectangle, IPartialArgb32PixelLoader)Carica i pixel ARGB a 32 bit parzialmente per pacchetti.
LoadPartialPixels(Rectangle, IPartialPixelLoader)Carica i pixel parzialmente per pacchetti.
LoadPixels(Rectangle)Carica pixel.
LoadRawData(Rectangle, RawDataSettings, IPartialRawDataLoader)Carica dati grezzi.
LoadRawData(Rectangle, Rectangle, RawDataSettings, IPartialRawDataLoader)Carica dati grezzi.
NormalizeAngle()Normalizza l’angolo. Questo metodo è applicabile ai documenti di testo scansionati per eliminare la scansione obliqua. Questo metodo utilizzaGetSkewAngle eRotate metodi.
override NormalizeAngle(bool, Color)Normalizza l’angolo. Questo metodo è applicabile ai documenti di testo scansionati per eliminare la scansione obliqua. Questo metodo utilizza!:GetSkewAngle eRotate metodi.
ReadArgb32ScanLine(int)Legge l’intera linea di scansione in base all’indice della linea di scansione specificato.
ReadScanLine(int)Legge l’intera linea di scansione in base all’indice della linea di scansione specificato.
RemovePage(int)Rimuove la pagina in corrispondenza dell’indice specificato dell’elenco delle pagine.
ReplaceColor(Color, byte, Color)Sostituisce un colore con un altro con la differenza consentita e conserva il valore alfa originale per salvare i bordi smussati.
override ReplaceColor(int, byte, int)Sostituisce un colore con un altro con la differenza consentita e conserva il valore alfa originale per salvare i bordi smussati.
ReplaceNonTransparentColors(Color)Sostituisce tutti i colori non trasparenti con un nuovo colore e conserva il valore alfa originale per salvare i bordi smussati. Nota: se lo usi su immagini senza trasparenza, tutti i colori verranno sostituiti con uno solo.
override ReplaceNonTransparentColors(int)Sostituisce tutti i colori non trasparenti con un nuovo colore e conserva il valore alfa originale per salvare i bordi smussati. Nota: se lo usi su immagini senza trasparenza, tutti i colori verranno sostituiti con uno solo.
Resize(int, int)Ridimensiona l’immagine. Il predefinitoNearestNeighbourResample viene utilizzato.
override Resize(int, int, ImageResizeSettings)Ridimensiona l’immagine.
override Resize(int, int, ResizeType)Ridimensiona l’immagine.
ResizeHeightProportionally(int)Ridimensiona proporzionalmente l’altezza. Il predefinitoNearestNeighbourResample viene utilizzato.
virtual ResizeHeightProportionally(int, ImageResizeSettings)Ridimensiona proporzionalmente l’altezza.
override ResizeHeightProportionally(int, ResizeType)Ridimensiona proporzionalmente la larghezza.
ResizeProportional(int, int, ResizeType)Esegue il ridimensionamento proporzionale sull’immagine. Il ridimensionamento proporzionale ridimensionerà ogni fotogramma in base al rapporto dinewWidth/larghezza enewHeight /altezza.
ResizeWidthProportionally(int)Ridimensiona proporzionalmente la larghezza. Il predefinitoNearestNeighbourResample viene utilizzato.
virtual ResizeWidthProportionally(int, ImageResizeSettings)Ridimensiona proporzionalmente la larghezza.
override ResizeWidthProportionally(int, ResizeType)Ridimensiona proporzionalmente la larghezza.
virtual Rotate(float)Ruota l’immagine attorno al centro.
override Rotate(float, bool, Color)!:RasterCahcedMultipageImage.Rotate immagine intorno al centro.
override RotateFlip(RotateFlipType)Ruota, capovolge o ruota e capovolge solo il fotogramma attivo.
Save()Salva i dati dell’immagine nel flusso sottostante.
Save(Stream)Salva i dati dell’oggetto nel flusso specificato.
override Save(string)Salva l’immagine nella posizione del file specificata.
Save(Stream, ImageOptionsBase)Salva i dati dell’immagine nel flusso specificato nel formato file specificato in base alle opzioni di salvataggio.
virtual Save(string, bool)Salva i dati dell’oggetto nella posizione del file specificata.
virtual Save(string, ImageOptionsBase)Salva i dati dell’oggetto nel percorso file specificato nel formato file specificato in base alle opzioni di salvataggio.
override Save(Stream, ImageOptionsBase, Rectangle)Salva i dati dell’immagine nel flusso specificato nel formato file specificato in base alle opzioni di salvataggio.
virtual Save(string, ImageOptionsBase, Rectangle)Salva i dati dell’oggetto nel percorso file specificato nel formato file specificato in base alle opzioni di salvataggio.
SaveAll(string, ImageOptionsBase)Salva i dati dell’oggetto nella posizione del file specificato (indicizzatore + nome file) nel formato file specificato in base alle opzioni di salvataggio..
SaveArgb32Pixels(Rectangle, int[])Salva i pixel ARGB a 32 bit.
SaveCmyk32Pixels(Rectangle, int[])Salva i pixel.
SavePixels(Rectangle, Color[])Salva i pixel.
SaveRawData(byte[], int, Rectangle, RawDataSettings)Salva i dati grezzi.
SetArgb32Pixel(int, int, int)Imposta un pixel ARGB a 32 bit dell’immagine per la posizione specificata.
override SetPalette(IColorPalette, bool)Imposta la tavolozza dell’immagine.
SetPixel(int, int, Color)Imposta un pixel dell’immagine per la posizione specificata.
override SetResolution(double, double)Imposta la risoluzione per questoRasterImage .
virtual ToBitmap()Converte l’immagine raster in bitmap.
WriteArgb32ScanLine(int, int[])Scrive l’intera linea di scansione nell’indice della linea di scansione specificato.
WriteScanLine(int, Color[])Scrive l’intera linea di scansione nell’indice della linea di scansione specificato.

Esempi

Cambia il tipo di colore nella compressione DICOM.

[C#]

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

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

Usa la compressione RLE nell’immagine 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);
}

Utilizzare la compressione JPEG 2000 nell’immagine 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);
}

Usa la compressione JPEG nell’immagine 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);
}

Questo esempio mostra come caricare un’immagine DICOM da un flusso di file.

[C#]

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

// Carica un'immagine DICOM da un flusso di file.
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))
    {
        // Salva ogni pagina come una singola immagine PNG.                    
        foreach (Aspose.Imaging.FileFormats.Dicom.DicomPage dicomPage in dicomImage.DicomPages)
        {
            // Genera un nome file basato sull'indice della pagina.
            string fileName = string.Format("sample.{0}.png", dicomPage.Index);

            // Una pagina DICOM è un'immagine raster, quindi tutte le operazioni consentite con un'immagine raster sono applicabili a una pagina DICOM.
            dicomPage.Save(dir + fileName, new Aspose.Imaging.ImageOptions.PngOptions());
        }
    }
}

Crea un’immagine Dicom multipagina.

[C#]

using (DicomImage image = (DicomImage)Image.Create(
        new DicomOptions() { Source = new StreamSource(new MemoryStream()) },
        100,
        100))
{
    // Disegna qualcosa usando la grafica vettoriale
    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);

    // Salva i pixel dell'immagine disegnata. Ora sono sulla prima pagina dell'immagine Dicom.
    int[] pixels = image.LoadArgb32Pixels(image.Bounds);

    // Aggiungi alcune pagine dopo, rendendole più scure
    for (int i = 1; i < 5; i++)
    {
        DicomPage page = image.AddPage();
        page.SaveArgb32Pixels(page.Bounds, pixels);
        page.AdjustBrightness(i * 30);
    }

    // Aggiungi alcune pagine davanti alla pagina principale, rendendole più luminose
    for (int i = 1; i < 5; i++)
    {
        DicomPage page = image.InsertPage(0);
        page.SaveArgb32Pixels(page.Bounds, pixels);
        page.AdjustBrightness(-i * 30);
    }

    // Salva l'immagine multipagina creata nel file di output
    image.Save("MultiPage.dcm");
}

Guarda anche