Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#define str2num(str, typeNum) *((typeNum *)(str))
//-----------------------------------------------------------------------------
/**
#define str2num(str, typeNum) *((typeNum *)(str))
//-----------------------------------------------------------------------------
/**
* \brief Parse pixel data from disk and *prints* the result
* \ For multi-fragment Jpeg/Rle files checking purpose *only*
* \ Allows to 'see' if the file *does* conform
* \brief Parse pixel data from disk and *prints* the result
* \ For multi-fragment Jpeg/Rle files checking purpose *only*
* \ Allows to 'see' if the file *does* conform
* \ with Dicom Part 3, Annex A (PS 3.5-2003, page 58, page 85)
*
*/
* \ with Dicom Part 3, Annex A (PS 3.5-2003, page 58, page 85)
*
*/
- if ( fseek(fp, Header->GetPixelOffset(), SEEK_SET) == -1 ) {
- Header->CloseFile();
+ if ( fseek(fp, GetHeader()->GetPixelOffset(), SEEK_SET) == -1 ) {
+ GetHeader()->CloseFile();
- if ( !Header->IsDicomV3() ||
- Header->IsImplicitVRLittleEndianTransferSyntax() ||
- Header->IsExplicitVRLittleEndianTransferSyntax() ||
- Header->IsExplicitVRBigEndianTransferSyntax() ||
- Header->IsDeflatedExplicitVRLittleEndianTransferSyntax() ) {
+ if ( !GetHeader()->IsDicomV3() ||
+ GetHeader()->IsImplicitVRLittleEndianTransferSyntax() ||
+ GetHeader()->IsExplicitVRLittleEndianTransferSyntax() ||
+ GetHeader()->IsExplicitVRBigEndianTransferSyntax() ||
+ GetHeader()->IsDeflatedExplicitVRLittleEndianTransferSyntax() ) {
// JPEG Image
ftellRes=ftell(fp);
fread(&ItemTagGr,2,1,fp); //Reading (fffe):Basic Offset Table Item Tag Gr
fread(&ItemTagEl,2,1,fp); //Reading (e000):Basic Offset Table Item Tag El
// JPEG Image
ftellRes=ftell(fp);
fread(&ItemTagGr,2,1,fp); //Reading (fffe):Basic Offset Table Item Tag Gr
fread(&ItemTagEl,2,1,fp); //Reading (e000):Basic Offset Table Item Tag El
- if(Header->GetSwapCode()) {
- ItemTagGr=Header->SwapShort(ItemTagGr);
- ItemTagEl=Header->SwapShort(ItemTagEl);
+ if(GetHeader()->GetSwapCode()) {
+ ItemTagGr=GetHeader()->SwapShort(ItemTagGr);
+ ItemTagEl=GetHeader()->SwapShort(ItemTagEl);
}
printf ("at %x : ItemTag (should be fffe,e000): %04x,%04x\n",
(unsigned)ftellRes,ItemTagGr,ItemTagEl );
ftellRes=ftell(fp);
fread(&ln,4,1,fp);
}
printf ("at %x : ItemTag (should be fffe,e000): %04x,%04x\n",
(unsigned)ftellRes,ItemTagGr,ItemTagEl );
ftellRes=ftell(fp);
fread(&ln,4,1,fp);
printf("at %x : Basic Offset Table Item Length (\?\?) %d x(%08x)\n",
(unsigned)ftellRes,ln,ln);
if (ln != 0) {
printf("at %x : Basic Offset Table Item Length (\?\?) %d x(%08x)\n",
(unsigned)ftellRes,ln,ln);
if (ln != 0) {
ftellRes=ftell(fp);
fread(&ItemTagGr,2,1,fp); // Reading (fffe) : Item Tag Gr
fread(&ItemTagEl,2,1,fp); // Reading (e000) : Item Tag El
ftellRes=ftell(fp);
fread(&ItemTagGr,2,1,fp); // Reading (fffe) : Item Tag Gr
fread(&ItemTagEl,2,1,fp); // Reading (e000) : Item Tag El
- if(Header->GetSwapCode()) {
- ItemTagGr=Header->SwapShort(ItemTagGr);
- ItemTagEl=Header->SwapShort(ItemTagEl);
+ if(GetHeader()->GetSwapCode()) {
+ ItemTagGr=GetHeader()->SwapShort(ItemTagGr);
+ ItemTagEl=GetHeader()->SwapShort(ItemTagEl);
}
printf ("at %x : ItemTag (should be fffe,e000 or e0dd): %04x,%04x\n",
(unsigned)ftellRes,ItemTagGr,ItemTagEl );
}
printf ("at %x : ItemTag (should be fffe,e000 or e0dd): %04x,%04x\n",
(unsigned)ftellRes,ItemTagGr,ItemTagEl );
printf(" at %x : fragment length %d x(%08x)\n",
(unsigned)ftellRes, ln,ln);
printf(" at %x : fragment length %d x(%08x)\n",
(unsigned)ftellRes, ln,ln);
ftellRes=ftell(fp);
fread(&ItemTagGr,2,1,fp); // Reading (fffe) : Item Tag Gr
fread(&ItemTagEl,2,1,fp); // Reading (e000) : Item Tag El
ftellRes=ftell(fp);
fread(&ItemTagGr,2,1,fp); // Reading (fffe) : Item Tag Gr
fread(&ItemTagEl,2,1,fp); // Reading (e000) : Item Tag El
- if(Header->GetSwapCode()) {
- ItemTagGr=Header->SwapShort(ItemTagGr);
- ItemTagEl=Header->SwapShort(ItemTagEl);
+ if(GetHeader()->GetSwapCode()) {
+ ItemTagGr=GetHeader()->SwapShort(ItemTagGr);
+ ItemTagEl=GetHeader()->SwapShort(ItemTagEl);
}
printf ("at %x : ItemTag (should be fffe,e000 or e0dd): %04x,%04x\n",
(unsigned)ftellRes,ItemTagGr,ItemTagEl );
}
printf ("at %x : ItemTag (should be fffe,e000 or e0dd): %04x,%04x\n",
(unsigned)ftellRes,ItemTagGr,ItemTagEl );
// Item Tag
fread(&ItemTagGr,2,1,fp); //Reading (fffe):Basic Offset Table Item Tag Gr
fread(&ItemTagEl,2,1,fp); //Reading (e000):Basic Offset Table Item Tag El
// Item Tag
fread(&ItemTagGr,2,1,fp); //Reading (fffe):Basic Offset Table Item Tag Gr
fread(&ItemTagEl,2,1,fp); //Reading (e000):Basic Offset Table Item Tag El
- if(Header->GetSwapCode()) {
- ItemTagGr=Header->SwapShort(ItemTagGr);
- ItemTagEl=Header->SwapShort(ItemTagEl);
+ if(GetHeader()->GetSwapCode()) {
+ ItemTagGr=GetHeader()->SwapShort(ItemTagGr);
+ ItemTagEl=GetHeader()->SwapShort(ItemTagEl);
}
printf ("at %x : ItemTag (should be fffe,e000): %04x,%04x\n",
(unsigned)ftellRes,ItemTagGr,ItemTagEl );
// Item Length
ftellRes=ftell(fp);
fread(&ln,4,1,fp);
}
printf ("at %x : ItemTag (should be fffe,e000): %04x,%04x\n",
(unsigned)ftellRes,ItemTagGr,ItemTagEl );
// Item Length
ftellRes=ftell(fp);
fread(&ln,4,1,fp);
printf("at %x : Basic Offset Table Item Length (\?\?) %d x(%08x)\n",
(unsigned)ftellRes,ln,ln);
if (ln != 0) {
printf("at %x : Basic Offset Table Item Length (\?\?) %d x(%08x)\n",
(unsigned)ftellRes,ln,ln);
if (ln != 0) {
ftellRes=ftell(fp);
fread(&ItemTagGr,2,1,fp); // Reading (fffe) : Item Tag Gr
fread(&ItemTagEl,2,1,fp); // Reading (e000) : Item Tag El
ftellRes=ftell(fp);
fread(&ItemTagGr,2,1,fp); // Reading (fffe) : Item Tag Gr
fread(&ItemTagEl,2,1,fp); // Reading (e000) : Item Tag El
- if(Header->GetSwapCode()) {
- ItemTagGr=Header->SwapShort(ItemTagGr);
- ItemTagEl=Header->SwapShort(ItemTagEl);
+ if(GetHeader()->GetSwapCode()) {
+ ItemTagGr=GetHeader()->SwapShort(ItemTagGr);
+ ItemTagEl=GetHeader()->SwapShort(ItemTagEl);
}
printf ("at %x : ItemTag (should be fffe,e000 or e0dd): %04x,%04x\n",
(unsigned)ftellRes,ItemTagGr,ItemTagEl );
}
printf ("at %x : ItemTag (should be fffe,e000 or e0dd): %04x,%04x\n",
(unsigned)ftellRes,ItemTagGr,ItemTagEl );
// Parse fragments of the current Fragment (Frame)
ftellRes=ftell(fp);
fread(&fragmentLength,4,1,fp);
// Parse fragments of the current Fragment (Frame)
ftellRes=ftell(fp);
fread(&fragmentLength,4,1,fp);
printf(" at %x : 'fragment' length %d x(%08x)\n",
(unsigned)ftellRes, (unsigned)fragmentLength,(unsigned)fragmentLength);
//------------------ scanning (not reading) fragment pixels
fread(&nbRleSegments,4,1,fp); // Reading : Number of RLE Segments
printf(" at %x : 'fragment' length %d x(%08x)\n",
(unsigned)ftellRes, (unsigned)fragmentLength,(unsigned)fragmentLength);
//------------------ scanning (not reading) fragment pixels
fread(&nbRleSegments,4,1,fp); // Reading : Number of RLE Segments
printf(" Nb of RLE Segments : %d\n",nbRleSegments);
for(int k=1; k<=15; k++) { // Reading RLE Segments Offset Table
ftellRes=ftell(fp);
fread(&RleSegmentOffsetTable[k],4,1,fp);
printf(" Nb of RLE Segments : %d\n",nbRleSegments);
for(int k=1; k<=15; k++) { // Reading RLE Segments Offset Table
ftellRes=ftell(fp);
fread(&RleSegmentOffsetTable[k],4,1,fp);
- if(Header->GetSwapCode())
- RleSegmentOffsetTable[k]=Header->SwapLong(RleSegmentOffsetTable[k]);
+ if(GetHeader()->GetSwapCode())
+ RleSegmentOffsetTable[k]=GetHeader()->SwapLong(RleSegmentOffsetTable[k]);
printf(" at : %x Offset Segment %d : %d (%x)\n",
(unsigned)ftellRes,k,RleSegmentOffsetTable[k],
RleSegmentOffsetTable[k]);
printf(" at : %x Offset Segment %d : %d (%x)\n",
(unsigned)ftellRes,k,RleSegmentOffsetTable[k],
RleSegmentOffsetTable[k]);
ftellRes=ftell(fp);
fread(&ItemTagGr,2,1,fp); // Reading (fffe) : Item Tag Gr
fread(&ItemTagEl,2,1,fp); // Reading (e000) : Item Tag El
ftellRes=ftell(fp);
fread(&ItemTagGr,2,1,fp); // Reading (fffe) : Item Tag Gr
fread(&ItemTagEl,2,1,fp); // Reading (e000) : Item Tag El
- if(Header->GetSwapCode()) {
- ItemTagGr=Header->SwapShort(ItemTagGr);
- ItemTagEl=Header->SwapShort(ItemTagEl);
+ if(GetHeader()->GetSwapCode()) {
+ ItemTagGr=GetHeader()->SwapShort(ItemTagGr);
+ ItemTagEl=GetHeader()->SwapShort(ItemTagEl);
}
printf ("at %x : ItemTag (should be fffe,e000 or e0dd): %04x,%04x\n",
(unsigned)ftellRes,ItemTagGr,ItemTagEl );
}
printf ("at %x : ItemTag (should be fffe,e000 or e0dd): %04x,%04x\n",
(unsigned)ftellRes,ItemTagGr,ItemTagEl );