Mercurial > hg > orthanc
comparison UnitTestsSources/JpegLossless.cpp @ 843:6a5cceec04ef jpeg
cont
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 04 Jun 2014 17:57:59 +0200 |
parents | ffa8c7dcd87c |
children | 502c49adb5ad |
comparison
equal
deleted
inserted
replaced
842:ffa8c7dcd87c | 843:6a5cceec04ef |
---|---|
35 | 35 |
36 #if ORTHANC_JPEG_LOSSLESS_ENABLED == 1 | 36 #if ORTHANC_JPEG_LOSSLESS_ENABLED == 1 |
37 | 37 |
38 #include <dcmtk/dcmjpls/djlsutil.h> | 38 #include <dcmtk/dcmjpls/djlsutil.h> |
39 #include <dcmtk/dcmjpls/djdecode.h> | 39 #include <dcmtk/dcmjpls/djdecode.h> |
40 #include <dcmtk/dcmdata/dcfilefo.h> | |
40 | 41 |
41 #include "../Core/Toolbox.h" | 42 #include <dcmtk/dcmjpls/djcodecd.h> |
43 | |
44 #include "../OrthancServer/ParsedDicomFile.h" | |
45 #include "../OrthancServer/FromDcmtkBridge.h" | |
42 | 46 |
43 using namespace Orthanc; | 47 using namespace Orthanc; |
44 | 48 |
45 TEST(JpegLossless, Basic) | 49 TEST(JpegLossless, Basic) |
46 { | 50 { |
47 DJLSDecoderRegistration::registerCodecs(EJLSUC_default /*opt_uidcreation*/, EJLSPC_restore /*opt_planarconfig*/, OFFalse /*opt_ignoreOffsetTable*/); | 51 DJLSDecoderRegistration::registerCodecs( EJLSUC_default, EJLSPC_restore,OFFalse ); |
52 | |
53 #if 0 | |
54 std::string s; | |
55 Toolbox::ReadFile(s, "IM-0001-1001-0001.dcm"); | |
56 | |
57 ParsedDicomFile parsed(s); | |
58 DcmFileFormat& dicom = *reinterpret_cast<DcmFileFormat*>(parsed.GetDcmtkObject()); | |
59 | |
60 DcmDataset* dataset = dicom.getDataset(); | |
61 | |
62 dataset->chooseRepresentation(EXS_LittleEndianExplicit, NULL); | |
63 | |
64 if (dataset->canWriteXfer(EXS_LittleEndianExplicit)) | |
65 { | |
66 printf("ICI\n"); | |
67 | |
68 parsed.SaveToFile("tutu.dcm"); | |
69 | |
70 FromDcmtkBridge::ExtractPngImage(s, *dataset, 1, ImageExtractionMode_Preview); | |
71 //fileformat.saveFile("test_decompressed.dcm", EXS_LittleEndianExplicit); | |
72 } | |
73 #else | |
74 DcmFileFormat fileformat; | |
75 if (fileformat.loadFile("IM-0001-1001-0001.dcm").good()) | |
76 { | |
77 DcmDataset *dataset = fileformat.getDataset(); | |
78 | |
79 // decompress data set if compressed | |
80 dataset->chooseRepresentation(EXS_LittleEndianExplicit, NULL); | |
81 | |
82 DcmXfer original_xfer(dataset->getOriginalXfer()); | |
83 std::cout << original_xfer.getXferName() << std::endl; | |
84 | |
85 printf("OK1\n"); | |
86 | |
87 // check if everything went well | |
88 if (1) //dataset->canWriteXfer(EXS_LittleEndianExplicit)) | |
89 { | |
90 printf("OK2\n"); | |
91 | |
92 fileformat.saveFile("tutu.dcm", EXS_LittleEndianExplicit); | |
93 } | |
94 } | |
95 | |
96 | |
97 #endif | |
98 | |
99 | |
100 // http://support.dcmtk.org/docs/classDJLSLosslessDecoder.html | |
101 //DJLSDecoderBase b; | |
102 DJLSLosslessDecoder bb; | |
48 | 103 |
49 DJLSDecoderRegistration::cleanup(); | 104 DJLSDecoderRegistration::cleanup(); |
50 } | 105 } |
51 | 106 |
52 | 107 |