- if (nbRleSegments>1) {
- for(int k=1; k<=nbRleSegments-1; k++) { // reading RLE Segments
- RleSegmentLength[k]=RleSegmentOffsetTable[k+1]-RleSegmentOffsetTable[k];
- ftellRes=ftell(fp);
- printf (" Segment %d : Length = %d Start at %x\n",
- k,RleSegmentLength[k], ftellRes);
- _gdcm_read_RLE_fragment (&im, RleSegmentLength[k],uncompressedSegmentSize,fp);
- //fseek(fp,RleSegmentLength[k],SEEK_CUR);
-
- }
- }
- RleSegmentLength[nbRleSegments] = fragmentLength - RleSegmentOffsetTable[nbRleSegments]; // + 4;
- // 4 : bytes for number of RLE Segments (WHY ???);
- // TODO : Check the value
- ftellRes=ftell(fp);
- printf (" Segment %d : Length = %d Start at %x\n",
- nbRleSegments,RleSegmentLength[nbRleSegments],ftellRes);
- _gdcm_read_RLE_fragment (&im, RleSegmentLength[nbRleSegments],uncompressedSegmentSize, fp);
- //fseek(fp,RleSegmentLength[nbRleSegments],SEEK_CUR);
-
-
- // end of scanning fragment pixels
+ if (nbRleSegments>1) {
+ for(int k=1; k<=nbRleSegments-1; k++) { // reading RLE Segments
+ RleSegmentLength[k]=RleSegmentOffsetTable[k+1]-RleSegmentOffsetTable[k];
+ ftellRes=ftell(fp);
+ fragmentBegining=ftell(fp);
+ gdcm_read_RLE_fragment (&im, RleSegmentLength[k],uncompressedSegmentSize,fp);
+ fseek(fp,fragmentBegining,SEEK_SET);
+ fseek(fp,RleSegmentLength[k],SEEK_CUR);
+ }
+ }
+ RleSegmentLength[nbRleSegments] = fragmentLength - RleSegmentOffsetTable[nbRleSegments];
+ ftellRes=ftell(fp);
+ fragmentBegining=ftell(fp);
+ gdcm_read_RLE_fragment (&im, RleSegmentLength[nbRleSegments],uncompressedSegmentSize, fp);
+ fseek(fp,fragmentBegining,SEEK_SET);
+ fseek(fp,RleSegmentLength[nbRleSegments],SEEK_CUR);
+
+ // end of scanning fragment pixels