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