+/*=========================================================================
+
+ Program: gdcm
+ Module: $RCSfile: TestReadWriteReadCompare.cxx,v $
+ Language: C++
+ Date: $Date: 2004/11/30 14:17:52 $
+ Version: $Revision: 1.17 $
+
+ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
+ l'Image). All rights reserved. See Doc/License.txt or
+ http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
#include "gdcmHeader.h"
#include "gdcmFile.h"
delete header;
return 1;
}
- std::cout << " step 1 ...";
+ std::cout << " step 1...";
//////////////// Step 2:
file->SetImageData(imageData, dataSize);
+ file->SetWriteModeToRGB();
file->WriteDcmExplVR( output );
std::cout << "2...";
gdcm::File* reread = new gdcm::File( output );
if( !reread->GetHeader()->IsReadable() )
{
- std::cerr << "Test::TestReadWriteReadCompare: Could not reread image "
+ std::cerr << "Failed" << std::endl
+ << "Test::TestReadWriteReadCompare: Could not reread image "
<< "written:" << filename << std::endl;
delete header;
delete file;
std::cout << "3...";
// For the next step:
int dataSizeWritten = reread->GetImageDataSize();
- void* imageDataWritten = reread->GetImageData();
+ uint8_t* imageDataWritten = reread->GetImageData();
//////////////// Step 4:
+ // Test the image size
+ if (header->GetXSize() != reread->GetHeader()->GetXSize() ||
+ header->GetYSize() != reread->GetHeader()->GetYSize() ||
+ header->GetZSize() != reread->GetHeader()->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;
+ delete file;
+ delete reread;
+ return 1;
+ }
+ // Test the data size
if (dataSize != dataSizeWritten)
{
- std::cout << std::endl
+ std::cout << "Failed" << std::endl
<< " Pixel areas lengths differ: "
<< dataSize << " # " << dataSizeWritten << std::endl;
- delete[] (char*)imageData;
- delete[] (char*)imageDataWritten;
delete header;
delete file;
delete reread;
return 1;
}
+ // Test the data's content
if (int res = memcmp(imageData, imageDataWritten, dataSize) !=0)
{
(void)res;
- std::cout << std::endl
+ std::cout << "Failed" << std::endl
<< " Pixel differ (as expanded in memory)." << std::endl;
- delete[] (char*)imageData;
- delete[] (char*)imageDataWritten;
delete header;
delete file;
delete reread;
std::cout << "4...OK." << std::endl ;
//////////////// Clean up:
- delete[] (char*)imageData;
- delete[] (char*)imageDataWritten;
delete header;
delete file;
delete reread;