Gets or sets a byte array representing the Bulkdata resource value (DICOM PS3.18) of the element.
public byte[] BulkData { get; set; } public:property array<Byte>^ BulkData{array<Byte>^ get()void set(array<Byte>^ value)}
A byte array representing the Bulkdata resource value (DICOM PS3.18) of the element.
Modifying ElementValue changes the value that will be written for the DicomElement.
There are four ways to modify BulkData:
Setting the BulkData property
Calling [SetBulkData(byte[])] with a byte array.
Calling SetBulkData(RasterImage,int) with a RasterImage and a quality factor.
Calling SetBulkData(Stream) with Stream.
using Leadtools.Dicom;using Leadtools.Dicom.Common;using Leadtools.Dicom.Common.Extensions;using Leadtools;using Leadtools.Dicom.Common.Linq.BasicDirectory;using Leadtools.Dicom.Common.DataTypes;using Leadtools.Codecs;public static class SetBulkDataExample{public static bool MyLoadJsonBeforeElementCallback(LoadJsonBeforeElementData elementData){// You can change the TransferSyntax here to any valid TransferSyntax// Setting the TransferSyntax ElementValue to empty defaults the transfer syntax to Explicit VR Little Endian//if (elementData.Tag == DicomTag.TransferSyntaxUID)//{// elementData.ElementValue = string.Empty;//}if (elementData.Encoding == ElementDataType.BulkData){// If elementData.Encoding is ElementDataType.BulkData, then the BulkDataUri is returned in elementData.ElementValueConsole.WriteLine($"BulkDataUri: {elementData.ElementValue}");// Set the bulk data: four ways to do it//string rawImagePath = Path.Combine(LEAD_VARS.ImagesDir, "image2.jpg");string pngImagePath = Path.Combine(LEAD_VARS.ImagesDir, "PngImage.png");// Method 1: Setting the [BulkData] propertyusing (FileStream fs = new FileStream(rawImagePath, FileMode.Open)){using (MemoryStream ms = new MemoryStream()){fs.CopyTo(ms);elementData.BulkData = ms.ToArray();}}// Method 2: Calling SetBulkData() with a byte arrayusing (FileStream fs = new FileStream(rawImagePath, FileMode.Open)){using (MemoryStream ms = new MemoryStream()){fs.CopyTo(ms);elementData.SetBulkData(ms.ToArray());}}// Method 3// Set the bulk data using a RasterImageusing (RasterCodecs codecs = new RasterCodecs()){using (Leadtools.RasterImage image = codecs.Load(pngImagePath)){// The second argument is optional and specifies the QFactorelementData.SetBulkData(image, 2);}}// Method 4// In this example(image2.dcm) it is raw jpeg data// For uncompressed DICOM data, pass the raw uncompressedDatausing (FileStream fs = new FileStream(rawImagePath, FileMode.Open)){elementData.SetBulkData(fs);}}return true;}public static void MyLoadJson(){string dicomPath = Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "image2.dcm");string jsonPath = Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "image2.json");using (DicomDataSet dsJson = new DicomDataSet()){dsJson.Load(dicomPath, DicomDataSetLoadFlags.None);dsJson.SaveJson(jsonPath, DicomDataSetSaveJsonFlags.IgnoreBinaryData);}using (DicomDataSet ds = new DicomDataSet()){ds.LoadJson(jsonPath, DicomDataSetLoadJsonFlags.None, MyLoadJsonBeforeElementCallback, null);}}}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";}
Leadtools.Dicom.Common.Extensions Namespace
[SetBulkData(byte[])]:../dco/Extensions-LoadBeforeElementData-SetBulkData(byte[]).md
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
