private static int MSB = -2147483648; // 0x80000000


        public DicomJpegLosslessDecoderImpl(IByteBuffer data)
        {
            _buffer = new ByteBufferByteSource(data)
            {
                Endian = Endian.Big
            };
            _frame      = new FrameHeader();
            _scan       = new ScanHeader();
            _quantTable = new QuantizationTable();
            _huffTable  = new HuffmanTable();
        }
Exemple #2
0
        private static DicomDataset ReadFragment(byte[] bytes, Endian endian, bool explicitVr)
        {
            var dataset = new DicomDataset();
            var reader  = new DicomReader {
                IsExplicitVR = explicitVr
            };
            var byteSource = new ByteBufferByteSource(new MemoryByteBuffer(bytes))
            {
                Endian = endian
            };

            reader.Read(byteSource, new DicomDatasetReaderObserver(dataset));
            return(dataset);
        }
Exemple #3
0
            internal RLEDecoder(IByteBuffer data)
            {
                var source = new ByteBufferByteSource(data)
                {
                    Endian = Endian.Little
                };

                NumberOfSegments = source.GetInt32();

                _offsets = new int[15];
                for (var i = 0; i < 15; ++i)
                {
                    _offsets[i] = source.GetInt32();
                }

                _data = data.Data;
            }
Exemple #4
0
        private DicomDataset DeepClone_(DicomDataset dataset)
        {
            var ms     = new MemoryStream();
            var target = new StreamByteTarget(ms);
            var writer = new DicomWriter(DicomTransferSyntax.ImplicitVRLittleEndian, DicomWriteOptions.Default, target);
            var walker = new DicomDatasetWalker(dataset);

            walker.Walk(writer);

            var clone  = new DicomDataset();
            var reader = new DicomReader {
                IsExplicitVR = false
            };
            var byteSource = new ByteBufferByteSource(
                new MemoryByteBuffer(ms.ToArray()));

            reader.Read(byteSource, new DicomDatasetReaderObserver(clone));
            return(clone);
        }
        private bool disposedValue = false; // To detect redundant calls

        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    _huffTable  = null;
                    _quantTable = null;
                    _quantTable = null;
                    _scan       = null;
                    _frame      = null;
                    _buffer     = null;
                }

                // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below.
                // TODO: set large fields to null.

                disposedValue = true;
            }
        }