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