--- a/PNGReader.st Fri Jul 31 10:49:05 2009 +0200
+++ b/PNGReader.st Fri Jul 31 12:58:11 2009 +0200
@@ -60,6 +60,8 @@
PNGReader fromFile:'\\Exeptn\tmp\images\expeccoScreenshot4020_5526507.png'
PNGReader fromFile:'C:\Users\cg\Desktop\croquet\cobalt-base-current-build-20090210\cobalt-base-current-build-20090210\content\models\textures\checkerboard.png'
+ PNGReader fromFile:'C:\Dokumente und Einstellungen\cg\Desktop\misc\PNGs\Delete.png'
+
"
! !
@@ -96,6 +98,7 @@
"
self isValidImageFile:'/home/cg/AudioExplorer_51_files/use_small.png'
self isValidImageFile:'C:\Users\cg\Desktop\croquet\cobalt-base-current-build-20090210\cobalt-base-current-build-20090210\content\models\textures\checkerboard.png'
+ self isValidImageFile:'C:\Dokumente und Einstellungen\cg\Desktop\misc\PNGs\Delete.png'
"
"Modified: 21.6.1996 / 20:38:46 / cg"
@@ -226,24 +229,28 @@
!
processNonInterlacedGlobalDATA
- | zlibReader filter temp prevScanline thisScanline bytesPerScanline filtersSeen|
+ | data n zlibReader filter temp prevScanline thisScanline bytesPerScanline filtersSeen|
+
+"/ data := ByteArray new:(self bytesPerRow * height)+1000.
+"/ n := ZipStream uncompress: globalDataChunk into: data.
+"/ self halt.
zlibReader := ZipStream readOpenAsZipStreamOn:(globalDataChunk readStream).
bytesPerScanline := self bytesPerRow.
prevScanline := ByteArray new: bytesPerScanline.
thisScanline := ByteArray new: bytesPerScanline.
- 0 to: height - 1 do:
- [:index |
- filter := (zlibReader next: 1) first.
- filtersSeen add: filter.
- (filter isNil or: [(filter between: 0 and: 4) not]) ifTrue: [^self].
- thisScanline := zlibReader next: bytesPerScanline into: thisScanline startingAt: 1.
- self filterScanline: filter count: bytesPerScanline.
- self copyPixels: index.
- temp := prevScanline.
- prevScanline := thisScanline.
- thisScanline := temp]
+ 0 to: height - 1 do:[:index |
+ filter := (zlibReader next: 1) first.
+ filtersSeen add: filter.
+ (filter isNil or: [(filter between: 0 and: 4) not]) ifTrue: [^self].
+ thisScanline := zlibReader next: bytesPerScanline into: thisScanline startingAt: 1.
+ self filterScanline: filter count: bytesPerScanline.
+ self copyPixels: index.
+ temp := prevScanline.
+ prevScanline := thisScanline.
+ thisScanline := temp
+ ]
!
processPHYSChunkLen:len
@@ -443,7 +450,7 @@
'PNGReader: not a png file.' infoPrintCR.
^ nil
].
-self halt.
+
(self getIHDRChunk) ifFalse:[
'PNGReader: required IHDR chunk missing.' infoPrintCR.
^ nil
@@ -569,7 +576,7 @@
!PNGReader class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libview2/PNGReader.st,v 1.12 2009-05-18 14:43:34 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libview2/PNGReader.st,v 1.13 2009-07-31 10:58:11 cg Exp $'
! !
PNGReader initialize!