DicomImage

DicomImage class

Es ist eine Klasse der Implementierung, die mit Bildern aus der DICOM-Datei arbeitet

public sealed class DicomImage : RasterCachedMultipageImage, IMultipageImageExt

Konstrukteure

NameBeschreibung
DicomImage(Stream)Initialisiert eine neue Instanz vonDicomImage Klasse.
DicomImage(Stream, LoadOptions)Initialisiert eine neue Instanz vonDicomImage Klasse.
DicomImage(DicomOptions, int, int)Initialisiert eine neue Instanz vonDicomImage Klasse.

Eigenschaften

NameBeschreibung
ActivePage { get; set; }Ruft die aktive Seite ab oder legt sie fest.
ActivePageIndex { get; }Ruft die indexaktive Seite ab.
AutoAdjustPalette { get; set; }Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob die Palette automatisch angepasst wird.
override BackgroundColor { get; set; }Ruft einen Wert für die Hintergrundfarbe ab oder legt ihn fest.
override BitsPerPixel { get; }Ruft die Anzahl der Bildbits pro Pixel ab.
Bounds { get; }Ruft die Bildgrenzen ab.
BufferSizeHint { get; set; }Ruft den Puffergrößenhinweis ab oder legt ihn fest, der als maximal zulässige Größe für alle internen Puffer definiert ist.
Container { get; }Ruft die abImage Container.
DataStreamContainer { get; }Ruft den Datenstrom des Objekts ab.
DicomPages { get; }Ruft die Seiten ab.
Disposed { get; }Ruft einen Wert ab, der angibt, ob diese Instanz verworfen wird.
override FileFormat { get; }Ruft einen Wert von Dateiformat ab
FileInfo { get; }Ruft einen Wert ab, der den Info-Header der DICOM-Datei enthält
override HasAlpha { get; }Ruft den Has-Alphakanal ab.
virtual HasBackgroundColor { get; set; }Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob das Bild eine Hintergrundfarbe hat.
override HasTransparentColor { get; }Ruft einen Wert ab, der angibt, ob das Bild eine transparente Farbe hat.
override Height { get; }Ruft die Bildhöhe ab.
virtual HorizontalResolution { get; set; }Ermittelt oder setzt die horizontale Auflösung davon in Pixel pro ZollRasterImage .
override ImageOpacity { get; }Ruft die Deckkraft dieses Bildes ab.
InterruptMonitor { get; set; }Holt oder setzt den Interrupt-Monitor.
IsCached { get; }Ruft einen Wert ab, der angibt, ob Bilddaten derzeit zwischengespeichert werden.
IsRawDataAvailable { get; }Ruft einen Wert ab, der angibt, ob das Laden von Rohdaten verfügbar ist.
override PageCount { get; }Ruft die Seitenanzahl ab.
override PageExportingAction { get; set; }Ruft die Aktion zum Exportieren der Seite ab oder legt sie fest. Bitte beachten Sie, dass das Festlegen dieser Methode automatisch Seitenressourcen freigibt, nachdem sie ausgeführt wurde. Sie wird unmittelbar vor dem Speichern jeder Seite ausgeführt.
override Pages { get; }Ruft die Seiten ab.
Palette { get; set; }Ruft die Farbpalette ab oder legt sie fest. Die Farbpalette wird nicht verwendet, wenn Pixel direkt dargestellt werden.
virtual PremultiplyComponents { get; set; }Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob die Bildkomponenten vormultipliziert werden müssen.
RawCustomColorConverter { get; set; }Ruft den benutzerdefinierten Farbkonverter ab oder legt ihn fest
virtual RawDataFormat { get; }Ruft das Rohdatenformat ab.
RawDataSettings { get; }Ruft die aktuellen Rohdateneinstellungen ab. Beachten Sie, dass bei Verwendung dieser Einstellungen die Daten ohne Konvertierung geladen werden.
RawFallbackIndex { get; set; }Ruft den Fallback-Index ab oder legt ihn fest, der verwendet werden soll, wenn der Palettenindex außerhalb der Grenzen liegt
RawIndexedColorConverter { get; set; }Holt oder setzt den indizierten Farbkonverter
virtual RawLineSize { get; }Ruft die rohe Zeilengröße in Bytes ab.
Size { get; }Ruft die Bildgröße ab.
virtual TransparentColor { get; set; }Ruft die transparente Farbe des Bildes ab.
virtual UpdateXmpData { get; set; }Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob die XMP-Metadaten aktualisiert werden sollen.
override UsePalette { get; }Ruft einen Wert ab, der angibt, ob die Bildpalette verwendet wird.
virtual UseRawData { get; set; }Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob das Laden von Rohdaten verwendet werden soll, wenn das Laden von Rohdaten verfügbar ist.
virtual VerticalResolution { get; set; }Ermittelt oder setzt die vertikale Auflösung davon in Pixel pro ZollRasterImage .
override Width { get; }Ruft die Bildbreite ab.
override XmpData { get; set; }Ruft die Xmp-Daten ab oder legt sie fest.

Methoden

NameBeschreibung
AddPage()Fügt eine neue Seite am Ende der Seitenliste hinzu.
AddPage(RasterImage)Fügt dem Bild eine Seite hinzu.
override AdjustBrightness(int)Anpassen von abrightness für Bild.
override AdjustContrast(float)Image kontrastierend
override AdjustGamma(float)Gamma-Korrektur eines Bildes.
override AdjustGamma(float, float, float)Gamma-Korrektur eines Bildes.
override BinarizeBradley(double)Binarisierung eines Bildes mit Bradleys adaptivem Schwellenwertalgorithmus unter Verwendung des integralen Bildschwellenwerts
override BinarizeBradley(double, int)Binarisierung eines Bildes mit Bradleys adaptivem Schwellenwertalgorithmus unter Verwendung des integralen Bildschwellenwerts
override BinarizeFixed(byte)Binarisierung eines Bildes mit vordefiniertem Schwellwert
override BinarizeOtsu()Binarisierung eines Bildes mit Otsu-Thresholding
override CacheData()Speichert die Daten privat.
CanSave(ImageOptionsBase)Legt fest, ob das Bild in dem angegebenen Dateiformat gespeichert werden kann, das durch die übergebenen Speicheroptionen repräsentiert wird.
override Crop(Rectangle)Bild zuschneiden.
override Crop(int, int, int, int)Bild mit Verschiebungen zuschneiden.
Dispose()Verwirft die aktuelle Instanz.
Dither(DitheringMethod, int)Führt Dithering auf dem aktuellen Bild durch.
override Dither(DitheringMethod, int, IColorPalette)Führt Dithering auf dem aktuellen Bild durch.
override Filter(Rectangle, FilterOptionsBase)Filtert das angegebene Rechteck.
GetArgb32Pixel(int, int)Ruft ein 32-Bit-ARGB-Pixelbild ab.
GetDefaultArgb32Pixels(Rectangle)Ruft das standardmäßige 32-Bit-ARGB-Pixel-Array ab.
virtual GetDefaultOptions(object[])Ruft die Standardoptionen ab.
GetDefaultPixels(Rectangle, IPartialArgb32PixelLoader)Ruft das Standard-Pixel-Array mit partiellem Pixel-Loader ab.
GetDefaultRawData(Rectangle, RawDataSettings)Ruft das Standard-Rohdatenarray ab.
GetDefaultRawData(Rectangle, IPartialRawDataLoader, RawDataSettings)Ruft das Standard-Rohdaten-Array mit partiellem Pixel-Loader ab.
virtual GetModifyDate(bool)Ruft das Datum und die Uhrzeit ab, zu der das Ressourcenbild zuletzt geändert wurde.
virtual GetOriginalOptions()Ruft die Optionen basierend auf den ursprünglichen Dateieinstellungen ab. Dies kann hilfreich sein, um die Bittiefe und andere Parameter des Originalbildes unverändert zu lassen. Zum Beispiel, wenn wir ein schwarz-weißes PNG-Bild mit 1 Bit pro Pixel laden und dann Speichern Sie es mit the Save -Methode wird das ausgegebene PNG-Bild mit 8 Bit pro Pixel erzeugt. Um dies zu vermeiden und das PNG-Bild mit 1 Bit pro Pixel zu speichern, verwenden Sie diese Methode, um entsprechende Speicheroptionen zu erhalten, und übergeben Sie sie an dieSave Methode als zweiten Parameter.
GetPixel(int, int)Ruft ein Bildpixel ab.
GetSkewAngle()Ruft den Schräglaufwinkel ab. Diese Methode ist auf gescannte Textdokumente anwendbar, um den Schräglaufwinkel beim Scannen zu bestimmen.
override Grayscale()Transformation eines Bildes in seine Graustufendarstellung
InsertPage(int)Fügt eine neue Seite am angegebenen Index in die Seitenliste ein.
LoadArgb32Pixels(Rectangle)Lädt 32-Bit-ARGB-Pixel.
LoadArgb64Pixels(Rectangle)Lädt 64-Bit-ARGB-Pixel.
LoadCmyk32Pixels(Rectangle)Lädt Pixel im CMYK-Format.
LoadPartialArgb32Pixels(Rectangle, IPartialArgb32PixelLoader)Lädt 32-Bit-ARGB-Pixel teilweise nach Paketen.
LoadPartialPixels(Rectangle, IPartialPixelLoader)Lädt Pixel teilweise nach Paketen.
LoadPixels(Rectangle)Lädt Pixel.
LoadRawData(Rectangle, RawDataSettings, IPartialRawDataLoader)Lädt Rohdaten.
LoadRawData(Rectangle, Rectangle, RawDataSettings, IPartialRawDataLoader)Lädt Rohdaten.
NormalizeAngle()Normalisiert den Winkel. Diese Methode ist auf gescannte Textdokumente anwendbar, um den schiefen Scan zu beseitigen. Diese Methode verwendetGetSkewAngle undRotate Methoden.
override NormalizeAngle(bool, Color)Normalisiert den Winkel. Diese Methode ist auf gescannte Textdokumente anwendbar, um den schiefen Scan zu beseitigen. Diese Methode verwendet!:GetSkewAngle undRotate Methoden.
ReadArgb32ScanLine(int)Liest die gesamte Scanzeile mit dem angegebenen Scanzeilenindex.
ReadScanLine(int)Liest die gesamte Scanzeile mit dem angegebenen Scanzeilenindex.
RemovePage(int)Entfernt die Seite am angegebenen Index der Seitenliste.
ReplaceColor(Color, byte, Color)Ersetzt eine Farbe durch eine andere mit zulässigem Unterschied und behält den ursprünglichen Alpha-Wert bei, um glatte Kanten zu erhalten.
override ReplaceColor(int, byte, int)Ersetzt eine Farbe durch eine andere mit zulässigem Unterschied und behält den ursprünglichen Alpha-Wert bei, um glatte Kanten zu erhalten.
ReplaceNonTransparentColors(Color)Ersetzt alle nicht transparenten Farben durch neue Farben und behält den ursprünglichen Alpha-Wert bei, um glatte Kanten zu erhalten. Hinweis: Wenn Sie es auf Bildern ohne Transparenz verwenden, werden alle Farben durch eine einzige ersetzt.
override ReplaceNonTransparentColors(int)Ersetzt alle nicht transparenten Farben durch neue Farben und behält den ursprünglichen Alpha-Wert bei, um glatte Kanten zu erhalten. Hinweis: Wenn Sie es auf Bildern ohne Transparenz verwenden, werden alle Farben durch eine einzige ersetzt.
Resize(int, int)Ändert die Bildgröße. Der StandardNearestNeighbourResample wird verwendet.
override Resize(int, int, ImageResizeSettings)Ändert die Bildgröße.
override Resize(int, int, ResizeType)Ändert die Bildgröße.
ResizeHeightProportionally(int)Ändert die Höhe proportional. Der StandardNearestNeighbourResample wird verwendet.
virtual ResizeHeightProportionally(int, ImageResizeSettings)Ändert die Höhe proportional.
override ResizeHeightProportionally(int, ResizeType)Ändert die Breite proportional.
ResizeProportional(int, int, ResizeType)Führt eine proportionale Größenänderung des Bildes durch. Die proportionale Größenänderung ändert die Größe jedes Frames gemäß dem Verhältnis vonnewWidth/Breite undnewHeight /Höhe.
ResizeWidthProportionally(int)Ändert die Breite proportional. Der StandardNearestNeighbourResample wird verwendet.
virtual ResizeWidthProportionally(int, ImageResizeSettings)Ändert die Breite proportional.
override ResizeWidthProportionally(int, ResizeType)Ändert die Breite proportional.
virtual Rotate(float)Bild um die Mitte drehen.
override Rotate(float, bool, Color)!:RasterCahcedMultipageImage.Rotate Bild um die Mitte.
override RotateFlip(RotateFlipType)Rotiert, kippt oder dreht und kippt nur den aktiven Rahmen.
Save()Speichert die Bilddaten im zugrunde liegenden Stream.
Save(Stream)Speichert die Daten des Objekts im angegebenen Stream.
override Save(string)Speichert das Bild am angegebenen Dateispeicherort.
Save(Stream, ImageOptionsBase)Speichert die Bilddaten gemäß den Speicheroptionen im angegebenen Stream im angegebenen Dateiformat.
virtual Save(string, bool)Speichert die Daten des Objekts am angegebenen Dateispeicherort.
virtual Save(string, ImageOptionsBase)Speichert die Daten des Objekts am angegebenen Speicherort im angegebenen Dateiformat gemäß den Speicheroptionen.
override Save(Stream, ImageOptionsBase, Rectangle)Speichert die Bilddaten gemäß den Speicheroptionen im angegebenen Stream im angegebenen Dateiformat.
virtual Save(string, ImageOptionsBase, Rectangle)Speichert die Daten des Objekts am angegebenen Speicherort im angegebenen Dateiformat gemäß den Speicheroptionen.
SaveAll(string, ImageOptionsBase)Speichert die Daten des Objekts gemäß den Speicheroptionen im angegebenen Dateiformat (Indexer + Dateiname) im angegebenen Dateiformat..
SaveArgb32Pixels(Rectangle, int[])Speichert die 32-Bit-ARGB-Pixel.
SaveCmyk32Pixels(Rectangle, int[])Speichert die Pixel.
SavePixels(Rectangle, Color[])Speichert die Pixel.
SaveRawData(byte[], int, Rectangle, RawDataSettings)Speichert die Rohdaten.
SetArgb32Pixel(int, int, int)Legt ein 32-Bit-ARGB-Bildpixel für die angegebene Position fest.
override SetPalette(IColorPalette, bool)Legt die Bildpalette fest.
SetPixel(int, int, Color)Setzt ein Bildpixel für die angegebene Position.
override SetResolution(double, double)Legt die Auflösung dafür festRasterImage .
virtual ToBitmap()Konvertiert Rasterbild in Bitmap.
WriteArgb32ScanLine(int, int[])Schreibt die gesamte Scanzeile in den angegebenen Scanzeilenindex.
WriteScanLine(int, Color[])Schreibt die gesamte Scanzeile in den angegebenen Scanzeilenindex.

Beispiele

Ändern Sie den Farbtyp in der DICOM-Komprimierung.

[C#]

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

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

Verwenden Sie die RLE-Komprimierung im DICOM-Bild.

[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);
}

Verwenden Sie die JPEG 2000-Komprimierung im DICOM-Bild.

[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);
}

Verwenden Sie die JPEG-Komprimierung im DICOM-Bild.

[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);
}

Dieses Beispiel zeigt, wie ein DICOM-Bild aus einem Dateistream geladen wird.

[C#]

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

// Laden Sie ein DICOM-Bild aus einem Dateistream.
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))
    {
        // Speichern Sie jede Seite als einzelnes PNG-Bild.                    
        foreach (Aspose.Imaging.FileFormats.Dicom.DicomPage dicomPage in dicomImage.DicomPages)
        {
            // Erzeuge einen Dateinamen basierend auf dem Seitenindex.
            string fileName = string.Format("sample.{0}.png", dicomPage.Index);

            // Eine DICOM-Seite ist ein Rasterbild, daher sind alle zulässigen Operationen mit einem Rasterbild auf eine DICOM-Seite anwendbar.
            dicomPage.Save(dir + fileName, new Aspose.Imaging.ImageOptions.PngOptions());
        }
    }
}

Erstellen Sie ein mehrseitiges Dicom-Bild.

[C#]

using (DicomImage image = (DicomImage)Image.Create(
        new DicomOptions() { Source = new StreamSource(new MemoryStream()) },
        100,
        100))
{
    // Etwas mit Vektorgrafiken zeichnen
    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);

    // Speichern Sie die Pixel des gezeichneten Bildes. Sie befinden sich jetzt auf der ersten Seite des Dicom-Bildes.
    int[] pixels = image.LoadArgb32Pixels(image.Bounds);

    // Fügen Sie danach ein paar Seiten hinzu, um sie dunkler zu machen
    for (int i = 1; i < 5; i++)
    {
        DicomPage page = image.AddPage();
        page.SaveArgb32Pixels(page.Bounds, pixels);
        page.AdjustBrightness(i * 30);
    }

    // Füge ein paar Seiten vor der Hauptseite hinzu, um sie heller zu machen
    for (int i = 1; i < 5; i++)
    {
        DicomPage page = image.InsertPage(0);
        page.SaveArgb32Pixels(page.Bounds, pixels);
        page.AdjustBrightness(-i * 30);
    }

    // Das erstellte mehrseitige Bild in der Ausgabedatei speichern
    image.Save("MultiPage.dcm");
}

Siehe auch