Beispiel #1
0
        private static void TestRoundtripFile <T>(string message, params object[] args)
            where T : IDicomCodec, new()
        {
            var filenameReference  = string.Format("reference_{0}.dcm", typeof(T).Name);
            var filenameCompressed = string.Format("compressed_{0}.dcm", typeof(T).Name);
            var codec = new T();

            // create an image
            var original = DicomImageTestHelper.CreateDicomImage();

            original.Save(filenameReference);

            // compress the image
            var compressed = new DicomFile();

            compressed.Load(DicomReadOptions.Default | DicomReadOptions.StorePixelDataReferences, filenameReference);
            compressed.ChangeTransferSyntax(codec.CodecTransferSyntax, codec, null);
            compressed.Save(filenameCompressed);

            // decompress the image
            var decompressed = new DicomFile();

            decompressed.Load(DicomReadOptions.Default | DicomReadOptions.StorePixelDataReferences, filenameCompressed);
            decompressed.ChangeTransferSyntax(TransferSyntax.ExplicitVrLittleEndian, codec, null);

            // compare results
            AssertEquals(original, decompressed, message, args);
        }
Beispiel #2
0
        private static void TestRoundtripMemoryToFile <T>(string message, params object[] args)
            where T : IDicomCodec, new()
        {
            var filenameReference    = string.Format("reference_{0}.dcm", typeof(T).Name);
            var filenameDecompressed = string.Format("decompressed_{0}.dcm", typeof(T).Name);
            var codec = new T();

            // create an image
            var instance = DicomImageTestHelper.CreateDicomImage();

            instance.Save(filenameReference);

            // compress the image
            instance.ChangeTransferSyntax(codec.CodecTransferSyntax, codec, null);

            // decompress the image
            instance.ChangeTransferSyntax(TransferSyntax.ExplicitVrLittleEndian, codec, null);
            instance.Save(filenameDecompressed);

            // compare results
            var reference = new DicomFile();

            reference.Load(DicomReadOptions.Default, filenameReference);
            var actual = new DicomFile();

            actual.Load(DicomReadOptions.Default, filenameDecompressed);
            AssertEquals(reference, actual, message, args);
        }
Beispiel #3
0
        private static void TestRoundtripMemory <T1, T2>(string message, params object[] args)
            where T1 : IDicomCodec, new()
            where T2 : IDicomCodec, new()
        {
            const string filenameReference = "reference.dcm";

            var codec1 = new T1();
            var codec2 = new T2();

            // create an image
            var instance = DicomImageTestHelper.CreateDicomImage();

            instance.Save(filenameReference);

            // compress the image to 1
            instance.ChangeTransferSyntax(codec1.CodecTransferSyntax, codec1, null);

            // recompress the image to 2
            instance.ChangeTransferSyntax(TransferSyntax.ExplicitVrLittleEndian, codec1, null);
            instance.ChangeTransferSyntax(codec2.CodecTransferSyntax, codec2, null);

            // recompress the image to 1
            instance.ChangeTransferSyntax(TransferSyntax.ExplicitVrLittleEndian, codec2, null);
            instance.ChangeTransferSyntax(codec1.CodecTransferSyntax, codec1, null);

            // recompress the image to 2
            instance.ChangeTransferSyntax(TransferSyntax.ExplicitVrLittleEndian, codec1, null);
            instance.ChangeTransferSyntax(codec2.CodecTransferSyntax, codec2, null);

            // decompress the image
            instance.ChangeTransferSyntax(TransferSyntax.ExplicitVrLittleEndian, codec2, null);

            // compare results
            var reference = new DicomFile();

            reference.Load(DicomReadOptions.Default, filenameReference);
            AssertEquals(reference, instance, message, args);
        }