WindowsIconReader.st
changeset 2812 5d7701d5e48b
parent 2756 e8bf6a023191
child 3158 b017a13ec3f5
--- a/WindowsIconReader.st	Tue Nov 24 19:21:01 2009 +0100
+++ b/WindowsIconReader.st	Sat Nov 28 11:16:52 2009 +0100
@@ -1216,18 +1216,18 @@
     height := image height.
 
     depth ~~ 4 ifTrue:[
-	^ Image cannotRepresentImageSignal
-	    raiseWith:image
-	    errorString:('ICO format only supports depths 4').
+        ^ Image cannotRepresentImageSignal
+            raiseWith:image
+            errorString:('ICO format only supports depths 4').
     ].
     (width ~~ 32 or:[height ~~ 32]) ifTrue:[
-	^ Image cannotRepresentImageSignal
-	    raiseWith:image
-	    errorString:('ICO format (currently) only supports 32x32 bitmaps').
+        ^ Image cannotRepresentImageSignal
+            raiseWith:image
+            errorString:('ICO format (currently) only supports 32x32 bitmaps').
     ].
 
     "/ align rows on a longword boundary
-    rowBytes := (depth * width + 31 // 32) * 4.
+    rowBytes := ((depth * width + 31) // 32) * 4.
     biSizeImage := height * rowBytes.
 
     outStream := fileName asFilename writeStream.
@@ -1250,26 +1250,26 @@
     "/ 16-entry RGB map
 
     1 to:16 do:[:i |  "Color map"
-	|clr r g b|
+        |clr r g b|
 
-	clr := image colorFromValue:i-1.
-	clr isNil ifTrue:[
-	    r := g := b := 0.
-	] ifFalse:[
-	    r := clr redByte.
-	    g := clr greenByte.
-	    b := clr blueByte.
-	].
+        clr := image colorFromValue:i-1.
+        clr isNil ifTrue:[
+            r := g := b := 0.
+        ] ifFalse:[
+            r := clr redByte.
+            g := clr greenByte.
+            b := clr blueByte.
+        ].
 
-	"/ put B,G,R
-	outStream nextPut:b.
-	outStream nextPut:g.
-	outStream nextPut:r.
-	outStream nextPut:0.
+        "/ put B,G,R
+        outStream nextPut:b.
+        outStream nextPut:g.
+        outStream nextPut:r.
+        outStream nextPut:0.
     ].
 
     imgBytesPerRow := image bytesPerRow.
-    data := image data.
+    data := image bits.
 
 
     "/ sorry, must extract rows individually
@@ -1280,25 +1280,25 @@
 
     srcIndex := 1 + (height * imgBytesPerRow).
     1 to:height do:[:i |
-	srcIndex := srcIndex - imgBytesPerRow.
-	row replaceFrom:1 to:imgBytesPerRow with:data startingAt:srcIndex.
-	outStream nextPutAll:row.
+        srcIndex := srcIndex - imgBytesPerRow.
+        row replaceFrom:1 to:imgBytesPerRow with:data startingAt:srcIndex.
+        outStream nextPutAll:row.
     ].
 
     "/ the mask ...
     image mask isNil ifTrue:[
-	outStream next:128 put:16rFF
+        outStream next:128 put:16rFF
     ] ifFalse:[
-	imgBytesPerRow := image mask bytesPerRow.
-	data := image mask data.
-	row := ByteArray new:4.
+        imgBytesPerRow := image mask bytesPerRow.
+        data := image mask data.
+        row := ByteArray new:4.
 
-	srcIndex := 1 + (height * imgBytesPerRow).
-	1 to:height do:[:i |
-	    srcIndex := srcIndex - imgBytesPerRow.
-	    row replaceFrom:1 to:imgBytesPerRow with:data startingAt:srcIndex.
-	    outStream nextPutAll:row.
-	].
+        srcIndex := 1 + (height * imgBytesPerRow).
+        1 to:height do:[:i |
+            srcIndex := srcIndex - imgBytesPerRow.
+            row replaceFrom:1 to:imgBytesPerRow with:data startingAt:srcIndex.
+            outStream nextPutAll:row.
+        ].
     ].
 
     outStream close.
@@ -1318,11 +1318,11 @@
 !WindowsIconReader class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview2/WindowsIconReader.st,v 1.64 2009-10-04 15:56:05 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview2/WindowsIconReader.st,v 1.65 2009-11-28 10:16:52 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libview2/WindowsIconReader.st,v 1.64 2009-10-04 15:56:05 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview2/WindowsIconReader.st,v 1.65 2009-11-28 10:16:52 cg Exp $'
 ! !
 
 WindowsIconReader initialize!