X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmFile.cxx;h=bd35f100dc44b0df4eb8eb4874f0fdf6bdc0c559;hb=513f52eb83d002f898a8f0995e8525b269d9d225;hp=2643cd0c30a49a6b94837f2f0cae219913d7fa0e;hpb=c8bc88db0fc43b4ef9bac3e2eb4b55312f57dab5;p=gdcm.git diff --git a/src/gdcmFile.cxx b/src/gdcmFile.cxx index 2643cd0c..bd35f100 100644 --- a/src/gdcmFile.cxx +++ b/src/gdcmFile.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmFile.cxx,v $ Language: C++ - Date: $Date: 2004/06/22 14:14:01 $ - Version: $Revision: 1.106 $ + Date: $Date: 2004/06/23 09:30:22 $ + Version: $Revision: 1.108 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -91,7 +91,7 @@ gdcmFile::gdcmFile(std::string const & filename, * \note If the gdcmHeader is created by the gdcmFile, it is destroyed * by the gdcmFile */ -gdcmFile::~gdcmFile(void) { +gdcmFile::~gdcmFile() { if(SelfHeader) delete Header; Header=NULL; @@ -111,7 +111,7 @@ gdcmFile::~gdcmFile(void) { * (no interest for compressed images). * @return length to allocate */ -void gdcmFile::SetPixelDataSizeFromHeader(void) { +void gdcmFile::SetPixelDataSizeFromHeader() { // see PS 3.3-2003 : C.7.6.3.2.1 // // MONOCHROME1 @@ -166,8 +166,8 @@ void gdcmFile::SetPixelDataSizeFromHeader(void) { * the pixel data represented in this file. * @return The size of pixel data in bytes. */ -size_t gdcmFile::GetImageDataSize(void) { - return (lgrTotale); +size_t gdcmFile::GetImageDataSize() { + return lgrTotale; } /** @@ -179,8 +179,8 @@ size_t gdcmFile::GetImageDataSize(void) { * \warning to be used with GetImagePixelsRaw() * @return The size of pixel data in bytes. */ -size_t gdcmFile::GetImageDataSizeRaw(void) { - return (lgrTotaleRaw); +size_t gdcmFile::GetImageDataSizeRaw() { + return lgrTotaleRaw; } /** @@ -193,8 +193,8 @@ size_t gdcmFile::GetImageDataSizeRaw(void) { * @return Pointer to newly allocated pixel data. * NULL if alloc fails */ -void * gdcmFile::GetImageData (void) { - PixelData = new char[lgrTotale]; +void * gdcmFile::GetImageData () { + PixelData = new unsigned char[lgrTotale]; //consistant with GetImageDataIntoVector if (PixelData) { GetImageDataIntoVector(PixelData, lgrTotale); GetHeader()->SetEntryVoidAreaByNumber(PixelData, @@ -203,7 +203,7 @@ void * gdcmFile::GetImageData (void) { } PixelRead=0; // no PixelRaw - return(PixelData); + return PixelData; } /** @@ -237,7 +237,8 @@ size_t gdcmFile::GetImageDataIntoVector (void* destination, size_t MaxSize) { // from Lut R + Lut G + Lut B unsigned char *newDest = new unsigned char[lgrTotale]; unsigned char *a = (unsigned char *)destination; - unsigned char *lutRGBA = Header->GetLUTRGBA(); + unsigned char *lutRGBA = Header->GetLUTRGBA(); + if (lutRGBA) { int l = lgrTotaleRaw; memmove(newDest, destination, l);// move Gray pixels to temp area @@ -264,8 +265,8 @@ size_t gdcmFile::GetImageDataIntoVector (void* destination, size_t MaxSize) { } else { // need to make RGB Pixels (?) - // from grey Pixels (?!) - // and Gray Lut (!?!) + // from grey Pixels (?!) + // and Gray Lut (!?!) // or Segmented xxx Palette Color Lookup Table Data and so on // Oops! I get one (gdcm-US-ALOKA-16.dcm) @@ -290,12 +291,12 @@ size_t gdcmFile::GetImageDataIntoVector (void* destination, size_t MaxSize) { * @return Pointer to newly allocated pixel data. * \ NULL if alloc fails */ -void * gdcmFile::GetImageDataRaw (void) { +void * gdcmFile::GetImageDataRaw () { if (Header->HasLUT()) /// \todo Let gdcmHeadar user a chance to get the right value /// Create a member lgrTotaleRaw ??? lgrTotale /= 3; - PixelData = new char[lgrTotale]; + PixelData = new unsigned char[lgrTotale]; if (PixelData) { GetImageDataIntoVectorRaw(PixelData, lgrTotale); @@ -304,7 +305,8 @@ void * gdcmFile::GetImageDataRaw (void) { GetHeader()->GetNumPixel()); } PixelRead=1; // PixelRaw - return(PixelData); + + return PixelData; } /** @@ -343,7 +345,7 @@ size_t gdcmFile::GetImageDataIntoVectorRaw (void *destination, size_t MaxSize) { return (size_t)0; } - (void)ReadPixelData(destination); + ReadPixelData(destination); // Number of Bits Allocated for storing a Pixel str_nb = Header->GetEntryByNumber(0x0028,0x0100); @@ -410,8 +412,8 @@ size_t gdcmFile::GetImageDataIntoVectorRaw (void *destination, size_t MaxSize) { deb ++; } } else { - dbg.Verbose(0, "gdcmFile::GetImageDataIntoVector: wierd image"); - return (size_t)0; + dbg.Verbose(0, "gdcmFile::GetImageDataIntoVector: weird image"); + return 0; } } // DO NOT remove this commented out code . @@ -567,7 +569,8 @@ bool gdcmFile::SetImageData(void *inData, size_t ExpectedSize) { PixelData = inData; lgrTotale = ExpectedSize; PixelRead = 1; - return(true); + + return true; } /** @@ -580,16 +583,17 @@ bool gdcmFile::SetImageData(void *inData, size_t ExpectedSize) { * @return false if write fails */ -bool gdcmFile::WriteRawData (std::string fileName) { +bool gdcmFile::WriteRawData (std::string const & fileName) { FILE *fp1; fp1 = fopen(fileName.c_str(),"wb"); if (fp1 == NULL) { printf("Fail to open (write) file [%s] \n",fileName.c_str()); - return (false); + return false; } fwrite (PixelData,lgrTotale, 1, fp1); fclose (fp1); - return(true); + + return true; } /** @@ -602,23 +606,10 @@ bool gdcmFile::WriteRawData (std::string fileName) { * @return false if write fails */ -bool gdcmFile::WriteDcmImplVR (std::string fileName) { +bool gdcmFile::WriteDcmImplVR (std::string const & fileName) { return WriteBase(fileName, gdcmImplicitVR); } -/** - * \ingroup gdcmFile - * \brief Writes on disk A SINGLE Dicom file, - * using the Implicit Value Representation convention - * NO test is performed on processor "Endiannity". * @param fileName name of the file to be created - * (any already existing file is overwritten) - * @return false if write fails - */ - -bool gdcmFile::WriteDcmImplVR (const char *fileName) { - return WriteDcmImplVR (std::string (fileName)); -} - /** * \ingroup gdcmFile * \brief Writes on disk A SINGLE Dicom file, @@ -628,7 +619,7 @@ bool gdcmFile::WriteDcmImplVR (const char *fileName) { * @return false if write fails */ -bool gdcmFile::WriteDcmExplVR (std::string fileName) { +bool gdcmFile::WriteDcmExplVR (std::string const & fileName) { return WriteBase(fileName, gdcmExplicitVR); } @@ -647,7 +638,7 @@ bool gdcmFile::WriteDcmExplVR (std::string fileName) { * @return false if write fails */ -bool gdcmFile::WriteAcr (std::string fileName) { +bool gdcmFile::WriteAcr (std::string const & fileName) { return WriteBase(fileName, gdcmACR); } @@ -662,7 +653,7 @@ bool gdcmFile::WriteAcr (std::string fileName) { * @param type file type (ExplicitVR, ImplicitVR, ...) * @return false if write fails */ -bool gdcmFile::WriteBase (std::string fileName, FileType type) { +bool gdcmFile::WriteBase (std::string const & fileName, FileType type) { FILE *fp1; @@ -751,7 +742,8 @@ bool gdcmFile::WriteBase (std::string fileName, FileType type) { // fwrite(PixelData, lgrTotale, 1, fp1); // should be useless, now fclose (fp1); - return(true); + + return true; } //----------------------------------------------------------------------------- @@ -766,12 +758,12 @@ bool gdcmFile::WriteBase (std::string fileName, FileType type) { * @param nb Pixels Bit number */ void gdcmFile::SwapZone(void *im, int swap, int lgr, int nb) { -guint32 s32; -guint16 fort,faible; -int i; + guint32 s32; + guint16 fort,faible; + int i; -if(nb == 16) - switch(swap) { + if(nb == 16) + switch(swap) { case 0: case 12: case 1234: @@ -792,8 +784,8 @@ if(nb == 16) printf("SWAP value (16 bits) not allowed : %d\n", swap); } -if( nb == 32 ) - switch (swap) { + if( nb == 32 ) + switch (swap) { case 0: case 1234: break; @@ -830,9 +822,8 @@ if( nb == 32 ) break; default: - printf("SWAP value (32 bits) not allowed : %d\n", swap); + std::cout << "SWAP value (32 bits) not allowed : " << swap << std::endl; } -return; } /** @@ -876,7 +867,7 @@ bool gdcmFile::ReadPixelData(void *destination) { } Header->CloseFile(); - return(true); + return true; } // ---------------------- Uncompressed File @@ -921,7 +912,7 @@ bool gdcmFile::ReadPixelData(void *destination) { bool jpg2000 = Header->IsJPEG2000(); bool jpgLossless = Header->IsJPEGLossless(); - + bool res = true; guint16 ItemTagGr,ItemTagEl; int ln; @@ -969,7 +960,6 @@ bool gdcmFile::ReadPixelData(void *destination) { } // ------------------------------------- endif (JPEG2000) else if (jpgLossless) { // JPEG LossLess : call to xmedcom JPEG - JPEGLosslessDecodeImage (fp, // Reading Fragment pixels (unsigned short *)destination, Header->GetPixelSize() * 8 * Header->GetSamplesPerPixel(),