PNGReader.st
changeset 2695 6197b6af7f4f
parent 2683 8c7880d9cedb
child 2696 99339f07db68
--- 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!