--- a/TIFFReader.st Mon Feb 24 10:33:46 2003 +0100
+++ b/TIFFReader.st Mon Feb 24 18:16:10 2003 +0100
@@ -1106,7 +1106,7 @@
bytesPerStrip := bytesPerRow * rowsPerStrip.
[row <= height] whileTrue:[
stripNr := stripNr + 1.
- inStream position:((stripOffsets at:stripNr) + 1).
+ self positionToStrip:stripNr.
inStream nextBytes:(stripByteCounts at:stripNr) into:compressedStrip.
self class decompressCCITT3From:compressedStrip
into:data
@@ -1208,7 +1208,7 @@
prevSize := 0.
[row <= height] whileTrue:[
stripNr := stripNr + 1.
- inStream position:((stripOffsets at:stripNr) + 1).
+ self positionToStrip:stripNr.
nBytes := stripByteCounts at:stripNr.
(nBytes > prevSize) ifTrue:[
compressedStrip := ByteArray uninitializedNew:nBytes.
@@ -1307,7 +1307,7 @@
[row <= height] whileTrue:[
stripNr := stripNr + 1.
nBytes := stripByteCounts at:stripNr.
- inStream position:((stripOffsets at:stripNr) + 1).
+ self positionToStrip:stripNr.
nBytes > buffer size ifTrue:[
"/ realloc
@@ -1470,7 +1470,7 @@
[row <= height] whileTrue:[
stripNr := stripNr + 1.
nBytes := stripByteCounts at:stripNr.
- inStream position:((stripOffsets at:stripNr) + 1).
+ self positionToStrip:stripNr.
offset + nBytes > overAllBytes ifTrue:[
nBytes := overAllBytes - offset.
@@ -1489,6 +1489,10 @@
!TIFFReader methodsFor:'private - reading'!
+positionToStrip:stripNr
+ inStream position:((stripOffsets at:stripNr) + (PositionableStream zeroPosition)).
+!
+
readChars:n
"read n characters and return them in a string"
@@ -1502,7 +1506,7 @@
] ifFalse:[
offset := inStream nextLongMSB:(byteOrder ~~ #lsb).
oldPos := inStream position.
- inStream position:(offset + 1).
+ inStream position:(offset + (PositionableStream zeroPosition)).
inStream nextBytes:(n - 1) into:string.
inStream position:oldPos
].
@@ -1523,11 +1527,11 @@
values := Array basicNew:n.
offset := inStream nextLongMSB:msb.
oldPos := inStream position.
- inStream position:(offset + 1).
+ inStream position:(offset + (PositionableStream zeroPosition)).
1 to:n do:[:index |
- numerator := inStream nextLongMSB:msb.
- denominator := inStream nextLongMSB:msb.
- values at:index put:(Fraction numerator:numerator denominator:denominator)
+ numerator := inStream nextLongMSB:msb.
+ denominator := inStream nextLongMSB:msb.
+ values at:index put:(Fraction numerator:numerator denominator:denominator)
].
inStream position:oldPos.
^ values
@@ -1544,15 +1548,15 @@
msb := byteOrder ~~ #lsb.
values := Array basicNew:n.
(n == 1) ifTrue:[
- values at:1 put:(inStream nextLongMSB:msb).
+ values at:1 put:(inStream nextLongMSB:msb).
] ifFalse:[
- offset := inStream nextLongMSB:msb.
- oldPos := inStream position.
- inStream position:(offset + 1).
- 1 to:n do:[:index |
- values at:index put:(inStream nextLongMSB:msb)
- ].
- inStream position:oldPos
+ offset := inStream nextLongMSB:msb.
+ oldPos := inStream position.
+ inStream position:(offset + (PositionableStream zeroPosition)).
+ 1 to:n do:[:index |
+ values at:index put:(inStream nextLongMSB:msb)
+ ].
+ inStream position:oldPos
].
^ values
!
@@ -1568,20 +1572,20 @@
msb := (byteOrder ~~ #lsb).
values := Array basicNew:n.
(n <= 2) ifTrue:[
- values at:1 put:(inStream nextUnsignedShortMSB:msb).
- val2 := inStream nextUnsignedShortMSB:msb.
+ values at:1 put:(inStream nextUnsignedShortMSB:msb).
+ val2 := inStream nextUnsignedShortMSB:msb.
- (n == 2) ifTrue:[
- values at:2 put:val2
- ]
+ (n == 2) ifTrue:[
+ values at:2 put:val2
+ ]
] ifFalse:[
- offset := inStream nextLongMSB:msb.
- oldPos := inStream position.
- inStream position:(offset + 1).
- 1 to:n do:[:index |
- values at:index put:(inStream nextUnsignedShortMSB:msb)
- ].
- inStream position:oldPos
+ offset := inStream nextLongMSB:msb.
+ oldPos := inStream position.
+ inStream position:(offset + (PositionableStream zeroPosition)).
+ 1 to:n do:[:index |
+ values at:index put:(inStream nextUnsignedShortMSB:msb)
+ ].
+ inStream position:oldPos
].
^ values
! !
@@ -2020,7 +2024,7 @@
orientation := nil.
offset := aStream nextLongMSB:msb.
- aStream position:offset + 1.
+ aStream position:offset + (PositionableStream zeroPosition).
numberOfTags := self readShort.
1 to:numberOfTags do:[:index |
@@ -2183,7 +2187,7 @@
pos := outStream position. "backpatch tag offset"
outStream position:pos1.
- self writeLong:(pos - 1). "fill in tag offset"
+ self writeLong:(pos - (PositionableStream zeroPosition)). "fill in tag offset"
outStream position:pos.
"
('patch tag offset at: ', (pos1 printStringRadix:16) , ' to ',
@@ -2215,6 +2219,7 @@
!TIFFReader class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libview2/TIFFReader.st,v 1.65 2002-06-09 14:47:23 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libview2/TIFFReader.st,v 1.66 2003-02-24 17:16:10 cg Exp $'
! !
+
TIFFReader initialize!