Program: gdcm
Module: $RCSfile: TestWriteSimple.cxx,v $
Language: C++
- Date: $Date: 2004/12/10 15:46:15 $
- Version: $Revision: 1.7 $
+ Date: $Date: 2005/02/02 10:05:26 $
+ Version: $Revision: 1.18 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
* The image content is a horizontal grayscale from
*
*/
-#include "gdcmHeader.h"
#include "gdcmFile.h"
+#include "gdcmFileHelper.h"
+#include "gdcmDebug.h"
#include <iostream>
+#include <sstream>
typedef struct
{
// Step 1 : Create the header of the image
std::cout << " 1...";
- gdcm::Header *header = new gdcm::Header();
+ gdcm::File *fileToBuild = new gdcm::File();
std::ostringstream str;
// Set the image size
str.str("");
str << img.sizeX;
- header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0011); // Columns
+ fileToBuild->InsertValEntry(str.str(),0x0028,0x0011); // Columns
str.str("");
str << img.sizeY;
- header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0010); // Rows
+ fileToBuild->InsertValEntry(str.str(),0x0028,0x0010); // Rows
if(img.sizeZ>1)
{
str.str("");
str << img.sizeZ;
- header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0008); // Number of Frames
+ fileToBuild->InsertValEntry(str.str(),0x0028,0x0008); // Number of Frames
}
// Set the pixel type
str.str("");
str << img.componentSize;
- header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0100); // Bits Allocated
+ fileToBuild->InsertValEntry(str.str(),0x0028,0x0100); // Bits Allocated
str.str("");
str << img.componentUse;
- header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0101); // Bits Stored
+ fileToBuild->InsertValEntry(str.str(),0x0028,0x0101); // Bits Stored
str.str("");
str << img.componentSize - 1;
- header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0102); // High Bit
+ fileToBuild->InsertValEntry(str.str(),0x0028,0x0102); // High Bit
// Set the pixel representation
str.str("");
str << img.sign;
- header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0103); // Pixel Representation
+ fileToBuild->InsertValEntry(str.str(),0x0028,0x0103); // Pixel Representation
// Set the samples per pixel
str.str("");
str << img.components;
- header->ReplaceOrCreateByNumber(str.str(),0x0028,0x0002); // Samples per Pixel
+ fileToBuild->InsertValEntry(str.str(),0x0028,0x0002); // Samples per Pixel
- if( !header->IsReadable() )
+ if( !fileToBuild->IsReadable() )
{
std::cout << "Failed\n"
<< " Prepared image isn't readable\n";
- delete header;
+ delete fileToBuild;
return 1;
}
// Step 3 : Create the file of the image
std::cout << "3...";
- gdcm::File *file = new gdcm::File(header);
+ gdcm::FileHelper *file = new gdcm::FileHelper(fileToBuild);
file->SetImageData(imageData,size);
// Step 4 : Set the writting mode and write the image
<< " Write mode '"<<img.writeMode<<"' is undefined\n";
delete file;
- delete header;
+ delete fileToBuild;
delete[] imageData;
return 1;
}
<< "File in unwrittable\n";
delete file;
- delete header;
+ delete fileToBuild;
delete[] imageData;
return 1;
}
// Step 5 : Read the written image
std::cout << "5...";
- gdcm::File* reread = new gdcm::File( fileName );
- if( !reread->GetHeader()->IsReadable() )
+ gdcm::FileHelper *reread = new gdcm::FileHelper( fileName );
+ if( !reread->GetFile()->IsReadable() )
{
std::cerr << "Failed" << std::endl
<< "Test::TestReadWriteReadCompare: Could not reread image "
<< "written:" << fileName << std::endl;
- delete header;
+ delete fileToBuild;
delete file;
delete reread;
return 1;
// Step 6 : Compare to the written image
std::cout << "6...";
- int dataSizeWritten = reread->GetImageDataSize();
- uint8_t* imageDataWritten = reread->GetImageData();
+ size_t dataSizeWritten = reread->GetImageDataSize();
+ uint8_t *imageDataWritten = reread->GetImageData();
// Test the image size
- if (header->GetXSize() != reread->GetHeader()->GetXSize() ||
- header->GetYSize() != reread->GetHeader()->GetYSize() ||
- header->GetZSize() != reread->GetHeader()->GetZSize())
+ if (fileToBuild->GetXSize() != reread->GetFile()->GetXSize() ||
+ fileToBuild->GetYSize() != reread->GetFile()->GetYSize() ||
+ fileToBuild->GetZSize() != reread->GetFile()->GetZSize())
{
std::cout << "Failed" << std::endl
<< " X Size differs: "
- << "X: " << header->GetXSize() << " # "
- << reread->GetHeader()->GetXSize() << " | "
- << "Y: " << header->GetYSize() << " # "
- << reread->GetHeader()->GetYSize() << " | "
- << "Z: " << header->GetZSize() << " # "
- << reread->GetHeader()->GetZSize() << std::endl;
- delete header;
+ << "X: " << fileToBuild->GetXSize() << " # "
+ << reread->GetFile()->GetXSize() << " | "
+ << "Y: " << fileToBuild->GetYSize() << " # "
+ << reread->GetFile()->GetYSize() << " | "
+ << "Z: " << fileToBuild->GetZSize() << " # "
+ << reread->GetFile()->GetZSize() << std::endl;
+ delete fileToBuild;
delete file;
delete reread;
delete[] imageData;
std::cout << "Failed" << std::endl
<< " Pixel areas lengths differ: "
<< size << " # " << dataSizeWritten << std::endl;
- delete header;
+ delete fileToBuild;
delete file;
delete reread;
delete[] imageData;
(void)res;
std::cout << "Failed" << std::endl
<< " Pixel differ (as expanded in memory)." << std::endl;
- delete header;
+ delete fileToBuild;
delete file;
delete reread;
delete[] imageData;
std::cout << "OK" << std::endl;
- delete header;
+ delete fileToBuild;
delete file;
delete reread;
delete[] imageData;
return 0;
}
-int TestWriteSimple(int argc, char* argv[])
+int TestWriteSimple(int argc, char *argv[])
{
if (argc < 1)
{
return 1;
}
- int ret;
+ int ret=0;
int i=0;
while( Images[i].sizeX>0 && Images[i].sizeY>0 )
{