Depth8Image.st
changeset 7323 42cd85aec8ea
parent 7322 051a91207011
child 7361 ebd5415005b8
--- a/Depth8Image.st	Fri Apr 29 12:30:03 2016 +0200
+++ b/Depth8Image.st	Fri Apr 29 12:34:27 2016 +0200
@@ -1898,9 +1898,9 @@
      y1       "{ Class: SmallInteger }"
      y2       "{ Class: SmallInteger }"
      colorArray
-     maxColor bytes|
+     maxColor pixelBytes lastPixel lastColor|
 
-    bytes := self bits.
+    pixelBytes := self bits.
 
     x1 := xStart.
     x2 := xEnd.
@@ -1914,17 +1914,21 @@
     maxColor := colorArray size.
 
     y1 to:y2 do:[:y |
-	srcNext := srcIndex + bytesPerRow.
-	x1 to:x2 do:[:x |
-	    value := bytes at:srcIndex ifAbsent:0.
-	    srcIndex := srcIndex + 1.
+        srcNext := srcIndex + bytesPerRow.
+        x1 to:x2 do:[:x |
+            value := pixelBytes at:srcIndex ifAbsent:0.
+            srcIndex := srcIndex + 1.
 
-	    value >= maxColor ifTrue:[
-		value := 0.
-	    ].
-	    aBlock value:x value:y value:(colorArray at:value+1)
-	].
-	srcIndex := srcNext.
+            value ~~ lastPixel ifTrue:[
+                lastPixel := value.
+                value >= maxColor ifTrue:[
+                    value := 0.
+                ].
+                lastColor := colorArray at:value+1.
+            ].
+            aBlock value:x value:y value:lastColor
+        ].
+        srcIndex := srcNext.
     ].
 
     "Created: / 7.6.1996 / 19:12:35 / cg"