Program: gdcm
Module: $RCSfile: TestWriteSimple.cxx,v $
Language: C++
- Date: $Date: 2007/05/23 14:18:06 $
- Version: $Revision: 1.51 $
+ Date: $Date: 2007/09/28 14:20:22 $
+ Version: $Revision: 1.53 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
int sizeY; // Size Y of the image
int sizeZ; // Size Z of the image
int components; // Number of components for a pixel
- int componentSize; // Component size (in bits : 8, 16)
- int componentUse ; // Component size (in bits)
+ int componentSize; // Component size (in bits : 8, 16) // Bits Allocated
+ int componentUse ; // Component size (in bits) // Bits Stored
int sign; // Sign of components
char writeMode; // Write mode
// - 'a' : ACR
} Image;
Image Images [] = {
+// these ones are use to check further oddities.
+
+ {63, 127, 1, 1, 16, 8, 0 ,'e'},
+ {63, 127, 1, 1, 16, 9, 0 ,'e'},
+ {63, 127, 1, 1, 16, 10, 0 ,'e'},
+ {63, 127, 1, 1, 16, 11, 0 ,'e'},
+ {63, 127, 1, 1, 16, 12, 0 ,'e'},
+ {63, 127, 1, 1, 16, 13, 0 ,'e'},
+ {63, 127, 1, 1, 16, 14, 0 ,'e'},
+ {63, 127, 1, 1, 16, 15, 0 ,'e'},
+ {63, 127, 1, 1, 16, 16, 0 ,'e'},
+
+ {63, 127, 1, 1, 32, 32, 0 ,'e'}, // Pixel VR should be OL?
+
{128, 128, 1, 1, 8, 8, 0, 'e'},
{256, 128, 1, 1, 8, 8, 0, 'a'},
{128, 128, 1, 1, 8, 8, 0, 'i'},
fileToBuild->InsertEntryString(str.str(),0x0028,0x0101,"US"); // Bits Stored
str.str("");
- str << ( img.componentSize - 1 );
+ str << ( img.componentUse - 1 );
fileToBuild->InsertEntryString(str.str(),0x0028,0x0102,"US"); // High Bit
// Set the pixel representation
fileName << "U";
else
fileName << "S";
+
+ fileName << "-" << img.componentSize << "-" << img.componentUse;
fileToBuild->InsertEntryString("0",0x0008,0x0000,"UL"); // Should be removed
// except for ACR
break;
}
+ if(img.componentSize == 32)
+ {
+ // Create a Private DataElement; VR =OL
+ fileToBuild->InsertEntryString("gdcm test OL",0x0009,0x0010,"LO");
+ uint32_t binArea[4];
+ binArea[0] = 0x01234567;
+ binArea[1] = 0x89abcdef;
+ binArea[2] = 0x2468ace0;
+ binArea[2] = 0xfdb97531;
+ fileToBuild->InsertEntryBinArea((uint8_t *)binArea,16,0x0009,0x0100,"OL");
+ }
+
+
std::cout << "[" << fileName.str() << "]...";
// Set the samples per pixel
str.str("");
}
std::cout << std::endl;
- fileToBuild->Print();
+ //fileToBuild->Print();
if( !fileH->Write(fileName.str()) )
{
// reread->Load();
GDCM_NAME_SPACE::FileHelper *reread = GDCM_NAME_SPACE::FileHelper::New( f );
- reread->Print();
+ //reread->Print();
if( !reread->GetFile()->IsReadable() )
{
return 1;
}
-
+ std::cout << "6.1..." << std::endl;
// Test the image size
if (fileToBuild->GetXSize() != reread->GetFile()->GetXSize() ||
fileToBuild->GetYSize() != reread->GetFile()->GetYSize() ||
return 1;
}
-
+ std::cout << "6.2..." << std::endl;
// Test the data size
if (size != dataSizeWritten)
{
return 1;
}
-
+std::cout << "6.3..." << std::endl;
// Test the data content
if ( memcmp(imageData, imageDataWritten, size) !=0 )
{
- std::cout << "Failed" << std::endl
+ std::cout << fileName.str() << " Failed " << std::endl
<< " Pixel differ (as expanded in memory)." << std::endl;
std::cout << " list of the first " << MAX_NUMBER_OF_DIFFERENCE
<< " pixels differing (pos : test - ref) :"
return 1;
}
-
+std::cout << "======================= OK" << std::endl;
fileH->Delete();
reread->Delete();
delete[] imageData;