# HG changeset patch # User Sebastien Jodogne # Date 1401897479 -7200 # Node ID 6a5cceec04ef05635d158142eca3cc7f78e3c4c8 # Parent ffa8c7dcd87c88c73c6ae34dc630413534f044cc cont diff -r ffa8c7dcd87c -r 6a5cceec04ef UnitTestsSources/JpegLossless.cpp --- a/UnitTestsSources/JpegLossless.cpp Wed Jun 04 10:11:40 2014 +0200 +++ b/UnitTestsSources/JpegLossless.cpp Wed Jun 04 17:57:59 2014 +0200 @@ -37,14 +37,69 @@ #include #include +#include -#include "../Core/Toolbox.h" +#include + +#include "../OrthancServer/ParsedDicomFile.h" +#include "../OrthancServer/FromDcmtkBridge.h" using namespace Orthanc; TEST(JpegLossless, Basic) { - DJLSDecoderRegistration::registerCodecs(EJLSUC_default /*opt_uidcreation*/, EJLSPC_restore /*opt_planarconfig*/, OFFalse /*opt_ignoreOffsetTable*/); + DJLSDecoderRegistration::registerCodecs( EJLSUC_default, EJLSPC_restore,OFFalse ); + +#if 0 + std::string s; + Toolbox::ReadFile(s, "IM-0001-1001-0001.dcm"); + + ParsedDicomFile parsed(s); + DcmFileFormat& dicom = *reinterpret_cast(parsed.GetDcmtkObject()); + + DcmDataset* dataset = dicom.getDataset(); + + dataset->chooseRepresentation(EXS_LittleEndianExplicit, NULL); + + if (dataset->canWriteXfer(EXS_LittleEndianExplicit)) + { + printf("ICI\n"); + + parsed.SaveToFile("tutu.dcm"); + + FromDcmtkBridge::ExtractPngImage(s, *dataset, 1, ImageExtractionMode_Preview); + //fileformat.saveFile("test_decompressed.dcm", EXS_LittleEndianExplicit); + } +#else + DcmFileFormat fileformat; + if (fileformat.loadFile("IM-0001-1001-0001.dcm").good()) + { + DcmDataset *dataset = fileformat.getDataset(); + + // decompress data set if compressed + dataset->chooseRepresentation(EXS_LittleEndianExplicit, NULL); + + DcmXfer original_xfer(dataset->getOriginalXfer()); + std::cout << original_xfer.getXferName() << std::endl; + + printf("OK1\n"); + + // check if everything went well + if (1) //dataset->canWriteXfer(EXS_LittleEndianExplicit)) + { + printf("OK2\n"); + + fileformat.saveFile("tutu.dcm", EXS_LittleEndianExplicit); + } + } + + +#endif + + + // http://support.dcmtk.org/docs/classDJLSLosslessDecoder.html + //DJLSDecoderBase b; + DJLSLosslessDecoder bb; DJLSDecoderRegistration::cleanup(); }