From: jpr Date: Wed, 14 Jan 2009 12:32:35 +0000 (+0000) Subject: Fix troubles when pixeltype != pixeltypeOut X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=gdcm.git;a=commitdiff_plain;h=835bb602b7549eebfc4f452bc2ce0b1d28833c1c Fix troubles when pixeltype != pixeltypeOut --- diff --git a/Example/RawToDicomStack.cxx b/Example/RawToDicomStack.cxx index 314debc8..667589a5 100755 --- a/Example/RawToDicomStack.cxx +++ b/Example/RawToDicomStack.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: RawToDicomStack.cxx,v $ Language: C++ - Date: $Date: 2008/06/12 13:26:39 $ - Version: $Revision: 1.1 $ + Date: $Date: 2009/01/14 12:32:35 $ + Version: $Revision: 1.2 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -30,22 +30,22 @@ #include #include -typedef char * PS8; -typedef unsigned char * PU8; -typedef short int * PS16; +typedef char * PS8; +typedef unsigned char * PU8; +typedef short int * PS16; typedef unsigned short int * PU16; -typedef int * PS32; -typedef unsigned int * PU32; +typedef int * PS32; +typedef unsigned int * PU32; #define CRR(t1,t2) { for(int i=0;iArgMgrGetString("filein"); const char *outputSkeletonFileName = am->ArgMgrGetString("fileout"); - const char *patientName = am->ArgMgrGetString("patientname", "g^Fantomas"); + const char *patientName = am->ArgMgrGetString("patientname", "g^Fantomas"); int nX = am->ArgMgrWantInt("rows", usage); int nY = am->ArgMgrWantInt("lines", usage); @@ -228,7 +228,7 @@ int main(int argc, char *argv[]) std::string strPixelTypeOut(pixelTypeOut); int pixelSignOut; int pixelSizeOut; - int pixelTypeOutCode; // for the swirch case + int pixelTypeOutCode; // for the switch case if (strPixelTypeOut == "8S") { @@ -290,11 +290,11 @@ int main(int argc, char *argv[]) int singlePlaneDataSize = nX*nY*samplesPerPixel*pixelSizeOut; int dataSize = singlePlaneDataSize*nZ; - uint8_t *pixels = new uint8_t[dataSize]; - uint8_t *planePixels = new uint8_t[singlePlaneDataSize]; + uint8_t *pixels = new uint8_t[dataSize]; + uint8_t *planePixelsOut = new uint8_t[singlePlaneDataSize]; Fp->read((char*)pixels, (size_t)dataSize); - + if ( pixelSize !=1 && ( (l && bigEndian) || (b && ! bigEndian) ) ) { ConvertSwapZone(pixelSize, pixels, dataSize); @@ -304,21 +304,22 @@ int main(int argc, char *argv[]) char outputFileName[200]; -for(int nbPlanes=0; nbPlanesInsertEntryString(str.str(),0x0028,0x0100, "US"); // Bits Allocated str.str(""); - str << pixelSize*8; + str << pixelSizeOut*8; fileToBuild->InsertEntryString(str.str(),0x0028,0x0101, "US"); // Bits Stored str.str(""); - str << ( pixelSize*8 - 1 ); + str << ( pixelSizeOut*8 - 1 ); fileToBuild->InsertEntryString(str.str(),0x0028,0x0102, "US"); // High Bit str.str(""); @@ -393,7 +394,7 @@ sprintf(outputFileName, "%s.%04d.dcm", outputSkeletonFileName,nbPlanes); fileH->SetPhotometricInterpretationToMonochrome1(); // Set the image Pixel Data (plane) - fileH->SetImageData(planePixels,singlePlaneDataSize); + fileH->SetImageData(planePixelsOut,singlePlaneDataSize); // Set the writting mode and write the image fileH->SetWriteModeToRaw(); @@ -412,6 +413,6 @@ sprintf(outputFileName, "%s.%04d.dcm", outputSkeletonFileName,nbPlanes); } // end iterate on the planes delete[] pixels; - delete[] planePixels; + delete[] planePixelsOut; return 1; }