DicomImage Class
It is class of the implementation working with image from DICOM file
Inheritance Hierarchy

Namespace: Aspose.Imaging.FileFormats.Dicom
Assembly: Aspose.Imaging (in Aspose.Imaging.dll) Version: 20.05
Syntax
public sealed class DicomImage : RasterCachedMultipageImage

The DicomImage type exposes the following members.

Constructors
  NameDescription
Public methodCode exampleDicomImage(Stream)
Initializes a new instance of the DicomImage class.
Public methodCode exampleDicomImage(Stream, LoadOptions)
Initializes a new instance of the DicomImage class.
Public methodDicomImage(DicomOptions, Int32, Int32)
Initializes a new instance of the DicomImage class.
Properties
  NameDescription
Public propertyActivePage
Gets or sets the active page.
Public propertyActivePageIndex
Gets the index active page.
Public propertyAutoAdjustPalette
Gets or sets a value indicating whether automatic adjust palette.
(Inherited from Image.)
Public propertyBackgroundColor
Gets or sets a value for the background color.
(Inherited from RasterCachedMultipageImage.)
Public propertyBitsPerPixel
Gets the image bits per pixel count.
(Inherited from RasterCachedMultipageImage.)
Public propertyBounds
Gets the image bounds.
(Inherited from Image.)
Public propertyBufferSizeHint
Gets or sets the buffer size hint which is defined max allowed size for all internal buffers.
(Inherited from Image.)
Public propertyContainer
Gets the Image container.
(Inherited from Image.)
Public propertyDataStreamContainer
Gets the object's data stream.
(Inherited from DataStreamSupporter.)
Public propertyDefaultPage
Gets the default page.
(Overrides RasterCachedMultipageImageDefaultPage.)
Public propertyDicomPages
Gets the pages.
Public propertyDisposed
Gets a value indicating whether this instance is disposed.
(Inherited from DisposableObject.)
Public propertyFileFormat
Gets a value of file format
(Overrides ImageFileFormat.)
Public propertyFileInfo
Gets a value, which contains info header the DICOM file
Public propertyHasAlpha
Gets the Has alpha channel.
(Overrides RasterCachedMultipageImageHasAlpha.)
Public propertyHasBackgroundColor
Gets or sets a value indicating whether image has background color.
(Inherited from Image.)
Public propertyHasTransparentColor
Gets a value indicating whether image has transparent color.
(Inherited from RasterCachedMultipageImage.)
Public propertyHeight
Gets the image height.
(Inherited from RasterCachedMultipageImage.)
Public propertyCode exampleHorizontalResolution
Gets or sets the horizontal resolution, in pixels per inch, of this RasterImage.
(Inherited from RasterImage.)
Public propertyImageOpacity
Gets opacity of this image.
(Inherited from RasterCachedMultipageImage.)
Public propertyInterruptMonitor
Gets or sets the interrupt monitor.
(Inherited from Image.)
Public propertyIsCached
Gets a value indicating whether image data is cached currently.
(Inherited from RasterCachedMultipageImage.)
Public propertyIsRawDataAvailable
Gets a value indicating whether raw data loading is available.
(Inherited from RasterImage.)
Public propertyPageCount
Gets the page count.
(Overrides RasterCachedMultipageImagePageCount.)
Public propertyPageExportingAction
Gets or sets the page exporting action. Please note that setting this method will automatically release page resources after it is executed. It will be executed just before each page is saved.
(Overrides RasterCachedMultipageImagePageExportingAction.)
Public propertyPages
Gets the pages.
(Overrides RasterCachedMultipageImagePages.)
Public propertyPalette
Gets or sets the color palette.
(Inherited from Image.)
Public propertyCode examplePremultiplyComponents
Gets or sets a value indicating whether the image components must be premultiplied.
(Inherited from RasterImage.)
Public propertyRawCustomColorConverter
Gets or sets the custom color converter
(Inherited from RasterImage.)
Public propertyCode exampleRawDataFormat
Gets the raw data format.
(Inherited from RasterImage.)
Public propertyRawDataSettings
Gets the current raw data settings. Note when using these settings the data loads without conversion.
(Inherited from RasterImage.)
Public propertyRawFallbackIndex
Gets or sets the fallback index to use when palette index is out of bounds
(Inherited from RasterImage.)
Public propertyRawIndexedColorConverter
Gets or sets the indexed color converter
(Inherited from RasterImage.)
Public propertyRawLineSize
Gets the raw line size in bytes.
(Inherited from RasterImage.)
Public propertyCode exampleSize
Gets the image size.
(Inherited from Image.)
Public propertyTransparentColor
Gets the image transparent color.
(Inherited from RasterImage.)
Public propertyUpdateXmpData
Gets or sets a value indicating whether to update the XMP metadata.
(Inherited from RasterImage.)
Public propertyUseRawData
Gets or sets a value indicating whether to use raw data loading when the raw data loading is available.
(Inherited from RasterImage.)
Public propertyCode exampleVerticalResolution
Gets or sets the vertical resolution, in pixels per inch, of this RasterImage.
(Inherited from RasterImage.)
Public propertyWidth
Gets the image width.
(Inherited from RasterCachedMultipageImage.)
Public propertyXmpData
Gets or sets XMP data from frame.
(Inherited from RasterCachedMultipageImage.)
Methods
  NameDescription
Public methodCode exampleAddPage
Adds a new page to the end of the page list.
Public methodCode exampleAdjustBrightness
Adjust of a brightness for image.
(Overrides RasterCachedMultipageImageAdjustBrightness(Int32).)
Public methodCode exampleAdjustContrast
Image contrasting
(Overrides RasterCachedMultipageImageAdjustContrast(Single).)
Public methodCode exampleAdjustGamma(Single)
Gamma-correction of an image.
(Overrides RasterCachedMultipageImageAdjustGamma(Single).)
Public methodCode exampleAdjustGamma(Single, Single, Single)
Gamma-correction of an image.
(Overrides RasterCachedMultipageImageAdjustGamma(Single, Single, Single).)
Public methodBinarizeBradley(Double)
Binarization of an image using Bradley's adaptive thresholding algorithm using the integral image thresholding
(Inherited from RasterCachedMultipageImage.)
Public methodCode exampleBinarizeBradley(Double, Int32)
Binarization of an image using Bradley's adaptive thresholding algorithm using the integral image thresholding
(Overrides RasterCachedMultipageImageBinarizeBradley(Double, Int32).)
Public methodCode exampleBinarizeFixed
Binarization of an image with predefined threshold
(Overrides RasterCachedMultipageImageBinarizeFixed(Byte).)
Public methodCode exampleBinarizeOtsu
Binarization of an image with Otsu thresholding
(Overrides RasterCachedMultipageImageBinarizeOtsu.)
Public methodCode exampleCacheData
Caches the data private.
(Overrides RasterCachedMultipageImageCacheData.)
Public methodCode exampleCanSave
Determines whether image can be saved to the specified file format represented by the passed save options.
(Inherited from Image.)
Public methodCode exampleCrop(Rectangle)
Cropping the image.
(Overrides RasterCachedMultipageImageCrop(Rectangle).)
Public methodCode exampleCrop(Int32, Int32, Int32, Int32)
Crop image with shifts.
(Overrides RasterCachedMultipageImageCrop(Int32, Int32, Int32, Int32).)
Public methodCode exampleDispose
Disposes the current instance.
(Inherited from DisposableObject.)
Public methodCode exampleDither(DitheringMethod, Int32)
Performs dithering on the current image.
(Inherited from RasterImage.)
Public methodCode exampleDither(DitheringMethod, Int32, IColorPalette)
Performs dithering on the current image.
(Overrides RasterCachedMultipageImageDither(DitheringMethod, Int32, IColorPalette).)
Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Public methodCode exampleFilter
Filters the specified rectangle.
(Overrides RasterCachedMultipageImageFilter(Rectangle, FilterOptionsBase).)
Public methodCode exampleGetArgb32Pixel
Gets an image 32-bit ARGB pixel.
(Inherited from RasterImage.)
Public methodGetDefaultArgb32Pixels
Gets the default 32-bit ARGB pixels array.
(Inherited from RasterImage.)
Public methodGetDefaultOptions
Gets the default options.
(Inherited from Image.)
Public methodGetDefaultPixels
Gets the default pixels array using partial pixel loader.
(Inherited from RasterImage.)
Public methodGetDefaultRawData(Rectangle, RawDataSettings)
Gets the default raw data array.
(Inherited from RasterImage.)
Public methodGetDefaultRawData(Rectangle, IPartialRawDataLoader, RawDataSettings)
Gets the default raw data array using partial pixel loader.
(Inherited from RasterImage.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetModifyDate
Gets the date and time the resource image was last modified.
(Inherited from RasterImage.)
Public methodGetOriginalOptions
Gets the options based on the original file settings. This can be helpful to keep bit-depth and other parameters of the original image unchanged. For example, if we load a black-white PNG image with 1 bit per pixel and then save it using the Save(String) method, the output PNG image with 8-bit per pixel will be produced. To avoid it and save PNG image with 1-bit per pixel, use this method to get corresponding saving options and pass them to the Save(String, ImageOptionsBase) method as the second parameter.
(Inherited from Image.)
Public methodCode exampleGetPixel
Gets an image pixel.
(Inherited from RasterImage.)
Public methodGetSkewAngle
Gets the skew angle. This method is applicable to scanned text documents, to determine the skew angle when scanning.
(Inherited from RasterImage.)
Public methodGetType
Gets the type of the current instance.
(Inherited from Object.)
Public methodCode exampleGrayscale
Transformation of an image to its grayscale representation
(Overrides RasterCachedMultipageImageGrayscale.)
Public methodCode exampleInsertPage
Inserts a new page into the page list at the specified index.
Public methodCode exampleLoadArgb32Pixels
Loads 32-bit ARGB pixels.
(Inherited from RasterImage.)
Public methodCode exampleLoadArgb64Pixels
Loads 64-bit ARGB pixels.
(Inherited from RasterImage.)
Public methodLoadCmyk32Pixels
Loads pixels in CMYK format.
(Inherited from RasterImage.)
Public methodLoadCmykPixels Obsolete.
Loads pixels in CMYK format. This method is deprecated. Please use more effective the LoadCmyk32Pixels(Rectangle) method.
(Inherited from RasterImage.)
Public methodCode exampleLoadPartialArgb32Pixels
Loads 32-bit ARGB pixels partially by packs.
(Inherited from RasterImage.)
Public methodCode exampleLoadPartialPixels
Loads pixels partially by packs.
(Inherited from RasterImage.)
Public methodCode exampleLoadPixels
Loads pixels.
(Inherited from RasterImage.)
Public methodCode exampleLoadRawData(Rectangle, RawDataSettings, IPartialRawDataLoader)
Loads raw data.
(Inherited from RasterImage.)
Public methodLoadRawData(Rectangle, Rectangle, RawDataSettings, IPartialRawDataLoader)
Loads raw data.
(Inherited from RasterImage.)
Public methodNormalizeAngle
Normalizes the angle. This method is applicable to scanned text documents to get rid of the skewed scan. This method uses GetSkewAngle and Rotate(Single) methods.
(Inherited from RasterImage.)
Public methodNormalizeAngle(Boolean, Color)
Normalizes the angle. This method is applicable to scanned text documents to get rid of the skewed scan. This method uses [!:GetSkewAngle] and Rotate(Single, Boolean, Color) methods.
(Inherited from RasterCachedMultipageImage.)
Public methodReadArgb32ScanLine
Reads the whole scan line by the specified scan line index.
(Inherited from RasterImage.)
Public methodReadScanLine
Reads the whole scan line by the specified scan line index.
(Inherited from RasterImage.)
Public methodRemovePage
Removes the page at the specified index of the page list.
Public methodReplaceColor(Int32, Byte, Int32)
Replaces one color to another with allowed difference and preserves original alpha value to save smooth edges.
(Inherited from RasterCachedMultipageImage.)
Public methodReplaceColor(Color, Byte, Color)
Replaces one color to another with allowed difference and preserves original alpha value to save smooth edges.
(Inherited from RasterImage.)
Public methodReplaceNonTransparentColors(Int32)
Replaces all non-transparent colors with new color and preserves original alpha value to save smooth edges. Note: if you use it on images without transparency, all colors will be replaced with a single one.
(Inherited from RasterCachedMultipageImage.)
Public methodReplaceNonTransparentColors(Color)
Replaces all non-transparent colors with new color and preserves original alpha value to save smooth edges. Note: if you use it on images without transparency, all colors will be replaced with a single one.
(Inherited from RasterImage.)
Public methodCode exampleResize(Int32, Int32)
Resizes the image. The default LeftTopToLeftTop is used.
(Inherited from Image.)
Public methodCode exampleResize(Int32, Int32, ImageResizeSettings)
Resizes the image.
(Overrides RasterCachedMultipageImageResize(Int32, Int32, ImageResizeSettings).)
Public methodCode exampleResize(Int32, Int32, ResizeType)
Resizes the image.
(Overrides RasterCachedMultipageImageResize(Int32, Int32, ResizeType).)
Public methodResizeHeightProportionally(Int32)
Resizes the height proportionally.
(Inherited from Image.)
Public methodResizeHeightProportionally(Int32, ImageResizeSettings)
Resizes the height proportionally.
(Inherited from Image.)
Public methodCode exampleResizeHeightProportionally(Int32, ResizeType)
Resizes the width proportionally.
(Overrides RasterCachedMultipageImageResizeHeightProportionally(Int32, ResizeType).)
Public methodResizeProportional
Performs proportional resize on the image. The proportional resize will resize each frame according to the ratio of newWidth/width and newHeight/height.
Public methodResizeWidthProportionally(Int32)
Resizes the width proportionally.
(Inherited from Image.)
Public methodResizeWidthProportionally(Int32, ImageResizeSettings)
Resizes the width proportionally.
(Inherited from Image.)
Public methodCode exampleResizeWidthProportionally(Int32, ResizeType)
Resizes the width proportionally.
(Overrides RasterCachedMultipageImageResizeWidthProportionally(Int32, ResizeType).)
Public methodRotate(Single)
Rotate image around the center.
(Inherited from RasterImage.)
Public methodCode exampleRotate(Single, Boolean, Color)
[!:RasterCahcedMultipageImage.Rotate] image around the center.
(Overrides RasterCachedMultipageImageRotate(Single, Boolean, Color).)
Public methodCode exampleRotateFlip
Rotates, flips, or rotates and flips the Active frame only.
(Overrides RasterCachedMultipageImageRotateFlip(RotateFlipType).)
Public methodRotateFlipAll
Rotates the flip all.
(Inherited from RasterCachedMultipageImage.)
Public methodCode exampleSave
Saves the image data to the underlying stream.
(Inherited from Image.)
Public methodSave(Stream)
Saves the object's data to the specified stream.
(Inherited from DataStreamSupporter.)
Public methodSave(String)
Saves the object's data to the specified file location.
(Inherited from DataStreamSupporter.)
Public methodSave(String, Boolean)
Saves the object's data to the specified file location.
(Inherited from DataStreamSupporter.)
Public methodCode exampleSave(Stream, ImageOptionsBase)
Saves the image's data to the specified stream in the specified file format according to save options.
(Inherited from Image.)
Public methodCode exampleSave(String, ImageOptionsBase)
Saves the object's data to the specified file location in the specified file format according to save options.
(Inherited from Image.)
Public methodCode exampleSave(String, ImageOptionsBase, Rectangle)
Saves the object's data to the specified file location in the specified file format according to save options.
(Inherited from Image.)
Public methodCode exampleSave(Stream, ImageOptionsBase, Rectangle)
Saves the image's data to the specified stream in the specified file format according to save options.
(Overrides RasterImageSave(Stream, ImageOptionsBase, Rectangle).)
Public methodSaveAll
Saves the object's data to the specified file (indexer + filename) location in the specified file format according to save options..
Public methodCode exampleSaveArgb32Pixels
Saves the 32-bit ARGB pixels.
(Inherited from RasterImage.)
Public methodCode exampleSaveCmyk32Pixels
Saves the pixels.
(Inherited from RasterImage.)
Public methodSaveCmykPixels Obsolete. (Inherited from RasterImage.)
Public methodCode exampleSavePixels
Saves the pixels.
(Inherited from RasterImage.)
Public methodSaveRawData
Saves the raw data.
(Inherited from RasterImage.)
Public methodCode exampleSetArgb32Pixel
Sets an image 32-bit ARGB pixel for the specified position.
(Inherited from RasterImage.)
Public methodSetPalette
Sets the image palette.
(Inherited from RasterImage.)
Public methodCode exampleSetPixel
Sets an image pixel for the specified position.
(Inherited from RasterImage.)
Public methodSetResolution
Sets the resolution for this RasterImage.
(Overrides RasterImageSetResolution(Double, Double).)
Public methodToBitmap
Converts raster image to the bitmap.
(Inherited from RasterImage.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodWriteArgb32ScanLine
Writes the whole scan line to the specified scan line index.
(Inherited from RasterImage.)
Public methodWriteScanLine
Writes the whole scan line to the specified scan line index.
(Inherited from RasterImage.)
Examples
This example shows how to load a DICOM image from a file stream.
[C#]

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

// Load a DICOM image from a file stream.
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))
    {
        // Save each page as an individual PNG image.                    
        foreach (Aspose.Imaging.FileFormats.Dicom.DicomPage dicomPage in dicomImage.DicomPages)
        {
            // Generate a file name based on the page index.
            string fileName = string.Format("sample.{0}.png", dicomPage.Index);

            // A DICOM page is a raster image, so all allowed operations with a raster image are applicable to a DICOM page.
            dicomPage.Save(dir + fileName, new Aspose.Imaging.ImageOptions.PngOptions());
        }
    }
}
Examples
Create a multi-page Dicom image.
[C#]

using (DicomImage image = (DicomImage)Image.Create(
        new DicomOptions() { Source = new StreamSource(new MemoryStream()) },
        100,
        100))
{
    // Draw something using vector graphics
    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);

    // Save the pixels of the drawn image. They are now on the first page of the Dicom image.
    int[] pixels = image.LoadArgb32Pixels(image.Bounds);

    // Add a few pages after, making them darker
    for (int i = 1; i < 5; i++)
    {
        DicomPage page = image.AddPage();
        page.SaveArgb32Pixels(page.Bounds, pixels);
        page.AdjustBrightness(i * 30);
    }

    // Add a few pages in front of the main page, making them brighter
    for (int i = 1; i < 5; i++)
    {
        DicomPage page = image.InsertPage(0);
        page.SaveArgb32Pixels(page.Bounds, pixels);
        page.AdjustBrightness(-i * 30);
    }

    // Save the created multi-page image to the output file
    image.Save("MultiPage.dcm");
}
See Also