|
22 | 22 |
|
23 | 23 | constexpr const char * AIM020String = "AIMDATA_V020 "; |
24 | 24 | constexpr const char * AIM030String = "AIMDATA_V030 "; |
| 25 | +constexpr float AIM020WriteVersion = 1.6; |
25 | 26 |
|
26 | 27 | typedef char EncodedByte; |
27 | 28 | typedef char EncodedInt4Byte[4]; |
28 | 29 | typedef char EncodedInt8Byte[8]; |
29 | 30 | typedef EncodedInt4Byte EncodedTuple4Byte[3]; |
30 | 31 | typedef EncodedInt8Byte EncodedTuple8Byte[3]; |
31 | 32 |
|
32 | | - |
33 | 33 | struct AIMV020AssociatedData |
34 | 34 | { |
35 | 35 | EncodedInt4Byte m_ID; |
@@ -106,7 +106,7 @@ namespace itk |
106 | 106 | unsigned long |
107 | 107 | AIMHeaderIO::ReadHeader(std::ifstream & infile) |
108 | 108 | { |
109 | | - unsigned long bytesRead = 0; // Use as offset for reading the header |
| 109 | + size_t bytesRead = 0; // Use as offset for reading the header |
110 | 110 |
|
111 | 111 | if (!infile.is_open()) |
112 | 112 | { |
@@ -146,9 +146,9 @@ AIMHeaderIO::ReadHeader(std::ifstream & infile) |
146 | 146 | } |
147 | 147 | bytesRead += this->m_PreHeaderSize; |
148 | 148 |
|
149 | | - unsigned long headerSize = this->m_PreHeaderSize + this->m_ImgStructSize + this->m_ProcessingLogSize; |
| 149 | + size_t headerSize = this->m_PreHeaderSize + this->m_ImgStructSize + this->m_ProcessingLogSize; |
150 | 150 |
|
151 | | - if (headerSize > ScancoHeaderBlockSize) |
| 151 | + if (headerSize > static_cast<size_t>(ScancoHeaderBlockSize)) |
152 | 152 | { |
153 | 153 | // Allocate more space for the header and read the rest into the raw header |
154 | 154 | delete[] headerBytes; |
@@ -194,7 +194,7 @@ AIMHeaderIO::ReadHeader(std::ifstream & infile) |
194 | 194 | this->m_HeaderData->m_SliceThickness = this->m_HeaderData->m_PixelData.m_Spacing[2]; |
195 | 195 | this->m_HeaderData->m_SliceIncrement = this->m_HeaderData->m_PixelData.m_Spacing[2]; |
196 | 196 |
|
197 | | - return bytesRead; // Return the size of the header, including the version string if written |
| 197 | + return static_cast<unsigned long>(bytesRead); // Return the size of the header, including the version string if written |
198 | 198 | } |
199 | 199 |
|
200 | 200 | unsigned long |
@@ -236,11 +236,11 @@ AIMHeaderIO::WriteHeader(std::ofstream & outfile, unsigned long imageSize) |
236 | 236 | throw std::runtime_error("Error: write size mismatch"); |
237 | 237 | } |
238 | 238 |
|
239 | | - return bytesWritten + this->m_PreHeaderSize + this->m_ImgStructSize + this->m_ProcessingLogSize; |
| 239 | + return static_cast<unsigned long>(bytesWritten + this->m_PreHeaderSize + this->m_ImgStructSize + this->m_ProcessingLogSize); |
240 | 240 | } |
241 | 241 |
|
242 | 242 | int |
243 | | -AIMHeaderIO::ReadPreHeader(std::ifstream & file, unsigned long offset) |
| 243 | +AIMHeaderIO::ReadPreHeader(std::ifstream & file, size_t offset) |
244 | 244 | { |
245 | 245 | unsigned long bytesRead = this->m_IntSize; // We assume the pre-header length (int) has already been read |
246 | 246 |
|
@@ -355,8 +355,8 @@ AIMHeaderIO::ReadImgStructHeader(AIMV030StructHeader * headerData) |
355 | 355 | } |
356 | 356 | } |
357 | 357 |
|
358 | | -int |
359 | | -AIMHeaderIO::ReadProcessingLog(std::ifstream & infile, unsigned long offset, unsigned long length) |
| 358 | +size_t |
| 359 | +AIMHeaderIO::ReadProcessingLog(std::ifstream & infile, size_t offset, size_t length) |
360 | 360 | { |
361 | 361 | size_t bytesRead = 0; |
362 | 362 | std::string readString = ""; |
@@ -534,7 +534,7 @@ AIMHeaderIO::WriteStructHeaderV020() |
534 | 534 | AIMV020StructHeader structHeader{ 0 }; |
535 | 535 | EncodeInt(this->m_HeaderData->m_PixelData.m_ComponentType, structHeader.m_Type); |
536 | 536 |
|
537 | | - EncodeFloat(1.6, structHeader.m_Version); |
| 537 | + EncodeFloat(AIM020WriteVersion, structHeader.m_Version); |
538 | 538 |
|
539 | 539 | int i = 0; |
540 | 540 | for (int & imageDimension : this->m_HeaderData->m_PixelData.m_Dimensions) |
@@ -658,10 +658,10 @@ AIMHeaderIO::WritePreHeader(std::ofstream & outfile, size_t imageSize, ScancoFil |
658 | 658 | if (version == ScancoFileVersions::AIM_020) |
659 | 659 | { |
660 | 660 | AIMPreHeaderV020 preHeader{ 0 }; |
661 | | - EncodeInt(sizeof(AIMPreHeaderV020), preHeader.m_PreHeaderLength); |
662 | | - EncodeInt(this->m_ImgStructSize, preHeader.m_ImageStructLength); |
663 | | - EncodeInt(this->m_ProcessingLogSize, preHeader.m_ProcessingLogLength); |
664 | | - EncodeInt(imageSize, preHeader.m_ImageDataLength); |
| 661 | + EncodeInt((int)sizeof(AIMPreHeaderV020), preHeader.m_PreHeaderLength); |
| 662 | + EncodeInt((int)this->m_ImgStructSize, preHeader.m_ImageStructLength); |
| 663 | + EncodeInt((int)this->m_ProcessingLogSize, preHeader.m_ProcessingLogLength); |
| 664 | + EncodeInt((int)imageSize, preHeader.m_ImageDataLength); |
665 | 665 | EncodeInt(0, preHeader.m_AssociatedDataLength); // No associated data handling |
666 | 666 | outfile.write((char *)&preHeader, sizeof(preHeader)); |
667 | 667 | return sizeof(preHeader); |
|
0 commit comments