Image.st
branchjv
changeset 7542 9e125aa140f9
parent 7541 39940e2446a5
parent 7537 bdc9ada5cde7
child 7553 6cb9ac901e3b
--- a/Image.st	Mon Aug 01 23:30:02 2016 +0100
+++ b/Image.st	Fri Sep 02 17:42:18 2016 +0100
@@ -1,6 +1,6 @@
 "
  COPYRIGHT (c) 1991 by Claus Gittinger
-	      All Rights Reserved
+              All Rights Reserved
 
  This software is furnished under a license and may be used
  only in accordance with the terms of that license and with the
@@ -34,7 +34,7 @@
 copyright
 "
  COPYRIGHT (c) 1991 by Claus Gittinger
-	      All Rights Reserved
+              All Rights Reserved
 
  This software is furnished under a license and may be used
  only in accordance with the terms of that license and with the
@@ -268,432 +268,440 @@
 examples
 "
     reading from a file (many formats are supported):
-    (notice, that the bitmaps directory is searched for along
+    (notice that the bitmaps directory is searched for along
      the system path - therefore, you may add your own bitmap
      directory to the beginning of the path and thus override
      any default bitmaps, or make certain that your application
      finds its bitmaps - even if they are in a separate directory)
 
-											[exBegin]
-	(Image fromFile:'../../goodies/bitmaps/gifImages/garfield.gif') inspect
-											[exEnd]
-
+                                                                                        [exBegin]
+        (Image fromFile:'../../goodies/bitmaps/gifImages/garfield.gif') inspect
+                                                                                        [exEnd]
+    Boy, was I young, when writing ST/X... ;-)                                                                                                 
+                                                                                        [exBegin]
+        (Image fromFile:'../../goodies/bitmaps/gifImages/claus.gif') inspect
+        ((Image fromFile:'../../goodies/bitmaps/gifImages/claus.gif') rotated:90) inspect
+        ((Image fromFile:'../../goodies/bitmaps/gifImages/claus.gif') rotated:45) inspect
+        ((Image fromFile:'../../goodies/bitmaps/gifImages/claus.gif') rotated:25) inspect
+                                                                                        [exEnd]
+
+                                                                                        
     better use package relative file names:
-											[exBegin]
-	(Image fromFile:'bitmaps/gifImages/garfield.gif' inPackage:'stx:goodies') inspect
-											[exEnd]
+                                                                                        [exBegin]
+        (Image fromFile:'bitmaps/gifImages/garfield.gif' inPackage:'stx:goodies') inspect
+                                                                                        [exEnd]
     various file formats are supported:
-											[exBegin]
-	(Image fromFile:'bitmaps/xpmBitmaps/misc_icons/SmalltalkX_clr.xpm' inPackage:'stx:goodies') inspect
-											[exEnd]
-											[exBegin]
-	(Image fromFile:'bitmaps/winBitmaps/okSmily_up.bmp' inPackage:'stx:goodies') inspect
-											[exEnd]
+                                                                                        [exBegin]
+        (Image fromFile:'bitmaps/xpmBitmaps/misc_icons/SmalltalkX_clr.xpm' inPackage:'stx:goodies') inspect
+                                                                                        [exEnd]
+                                                                                        [exBegin]
+        (Image fromFile:'bitmaps/winBitmaps/okSmily_up.bmp' inPackage:'stx:goodies') inspect
+                                                                                        [exEnd]
 
     drawing
-											[exBegin]
-	|imageClass image|
-
-	imageClass := Image implementorForDepth:24.
-	image      := imageClass width: 100 height: 50.
-	image bits:(ByteArray new:(image bytesPerRow*50)).
-	image fillRectangle:(0@0 extent:100@50) withColor:Color yellow.
-	image drawRectangle:(10@10 extent:20@20) withColor:Color red.
-	image fillRectangle:(40@20 extent:20@20) withColor:Color green.
-											[exEnd]
+                                                                                        [exBegin]
+        |imageClass image|
+
+        imageClass := Image implementorForDepth:24.
+        image      := imageClass width: 100 height: 50.
+        image bits:(ByteArray new:(image bytesPerRow*50)).
+        image fillRectangle:(0@0 extent:100@50) withColor:Color yellow.
+        image drawRectangle:(10@10 extent:20@20) withColor:Color red.
+        image fillRectangle:(40@20 extent:20@20) withColor:Color green.
+                                                                                        [exEnd]
 
     The following examples demonstrate various depth and colorMap variations ...
 
     inline image:
       default: depth=1 & #blackIs0
-									[exBegin]
-	(Image
-	    width:8 height:8
-	    fromArray:#( 2r11111111
-			 2r10000001
-			 2r10000001
-			 2r10000001
-			 2r10000001
-			 2r10000001
-			 2r10000001
-			 2r11111111 )
-	) edit
-									[exEnd]
+                                                                        [exBegin]
+        (Image
+            width:8 height:8
+            fromArray:#( 2r11111111
+                         2r10000001
+                         2r10000001
+                         2r10000001
+                         2r10000001
+                         2r10000001
+                         2r10000001
+                         2r11111111 )
+        ) edit
+                                                                        [exEnd]
 
       with #whiteIs0 photometric
-									[exBegin]
-	((Image width:8 height:8
-	       fromArray:#( 2r11111111
-			    2r10000001
-			    2r10000001
-			    2r10000001
-			    2r10000001
-			    2r10000001
-			    2r10000001
-			    2r11111111 ))
-	    photometric:#whiteIs0
-	) edit
-									[exEnd]
+                                                                        [exBegin]
+        ((Image width:8 height:8
+               fromArray:#( 2r11111111
+                            2r10000001
+                            2r10000001
+                            2r10000001
+                            2r10000001
+                            2r10000001
+                            2r10000001
+                            2r11111111 ))
+            photometric:#whiteIs0
+        ) edit
+                                                                        [exEnd]
 
       with a colorMap
-									[exBegin]
-	((Image width:8 height:8
-	       fromArray:#( 2r11111111
-			    2r10000001
-			    2r10000001
-			    2r10000001
-			    2r10000001
-			    2r10000001
-			    2r10000001
-			    2r11111111 ))
-	    colorMap:(Array with:(Color red)
-			    with:(Color yellow))
-	) edit
-									[exEnd]
+                                                                        [exBegin]
+        ((Image width:8 height:8
+               fromArray:#( 2r11111111
+                            2r10000001
+                            2r10000001
+                            2r10000001
+                            2r10000001
+                            2r10000001
+                            2r10000001
+                            2r11111111 ))
+            colorMap:(Array with:(Color red)
+                            with:(Color yellow))
+        ) edit
+                                                                        [exEnd]
 
       a depth4 greyScale image:
       (default photometric is #blackIs0)
-									[exBegin]
-	(Depth4Image
-	     width:8
-	     height:4
-	     fromArray:#[
-			    16r00 16r11 16r22 16r33
-			    16r44 16r55 16r66 16r77
-			    16r88 16r99 16raa 16rbb
-			    16rcc 16rdd 16ree 16rff
-			]
-	) edit
-									[exEnd]
+                                                                        [exBegin]
+        (Depth4Image
+             width:8
+             height:4
+             fromArray:#[
+                            16r00 16r11 16r22 16r33
+                            16r44 16r55 16r66 16r77
+                            16r88 16r99 16raa 16rbb
+                            16rcc 16rdd 16ree 16rff
+                        ]
+        ) edit
+                                                                        [exEnd]
       the same, magnified:
-									[exBegin]
-	((Depth4Image
-	     width:4
-	     height:4
-	     fromArray:#[
-			    16r01 16r23
-			    16r45 16r67
-			    16r89 16rab
-			    16rcd 16ref
-			])
-	    magnifiedBy:30
-	) edit
-									[exEnd]
+                                                                        [exBegin]
+        ((Depth4Image
+             width:4
+             height:4
+             fromArray:#[
+                            16r01 16r23
+                            16r45 16r67
+                            16r89 16rab
+                            16rcd 16ref
+                        ])
+            magnifiedBy:30
+        ) edit
+                                                                        [exEnd]
       the following has the same effect:
-									[exBegin]
-	((Image
-	     width:4
-	     height:4
-	     depth:4
-	     fromArray:#[
-			    16r01 16r23
-			    16r45 16r67
-			    16r89 16rab
-			    16rcd 16ref
-			])
-	    magnifiedBy:30
-	) edit
-									[exEnd]
+                                                                        [exBegin]
+        ((Image
+             width:4
+             height:4
+             depth:4
+             fromArray:#[
+                            16r01 16r23
+                            16r45 16r67
+                            16r89 16rab
+                            16rcd 16ref
+                        ])
+            magnifiedBy:30
+        ) edit
+                                                                        [exEnd]
       with reverse grey-interpretation:
-									[exBegin]
-	((Depth4Image
-	     width:4
-	     height:4
-	     fromArray:#[
-			    16r01 16r23
-			    16r45 16r67
-			    16r89 16rab
-			    16rcd 16ref
-			])
-	    photometric:#whiteIs0;
-	    magnifiedBy:30
-	) edit
-									[exEnd]
+                                                                        [exBegin]
+        ((Depth4Image
+             width:4
+             height:4
+             fromArray:#[
+                            16r01 16r23
+                            16r45 16r67
+                            16r89 16rab
+                            16rcd 16ref
+                        ])
+            photometric:#whiteIs0;
+            magnifiedBy:30
+        ) edit
+                                                                        [exEnd]
 
       with 1-bit-per-pixel rgb interpretation:
-									[exBegin]
-	((Depth4Image
-	     width:4
-	     height:4
-	     fromArray:#[
-			    16r01 16r23
-			    16r45 16r67
-			    16r89 16rab
-			    16rcd 16ref
-			])
-	    photometric:#rgb;
-	    samplesPerPixel:3;
-	    bitsPerSample:#(1 1 1);
-	    magnifiedBy:30
-	) edit
-									[exEnd]
+                                                                        [exBegin]
+        ((Depth4Image
+             width:4
+             height:4
+             fromArray:#[
+                            16r01 16r23
+                            16r45 16r67
+                            16r89 16rab
+                            16rcd 16ref
+                        ])
+            photometric:#rgb;
+            samplesPerPixel:3;
+            bitsPerSample:#(1 1 1);
+            magnifiedBy:30
+        ) edit
+                                                                        [exEnd]
 
       with 1/2/1 rgb interpretation:
-									[exBegin]
-	((Depth4Image
-	     width:4
-	     height:4
-	     fromArray:#[
-			    16r01 16r23
-			    16r45 16r67
-			    16r89 16rab
-			    16rcd 16ref
-			])
-	    photometric:#rgb;
-	    samplesPerPixel:3;
-	    bitsPerSample:#(1 2 1);
-	    magnifiedBy:30
-	) edit
-									[exEnd]
+                                                                        [exBegin]
+        ((Depth4Image
+             width:4
+             height:4
+             fromArray:#[
+                            16r01 16r23
+                            16r45 16r67
+                            16r89 16rab
+                            16rcd 16ref
+                        ])
+            photometric:#rgb;
+            samplesPerPixel:3;
+            bitsPerSample:#(1 2 1);
+            magnifiedBy:30
+        ) edit
+                                                                        [exEnd]
 
       a 2/2/0 rgb image (i.e. no blue):
-									[exBegin]
-	 |i|
-
-	 i := Depth4Image
-		    width:4
-		    height:4
-		    fromArray:#[ 16r01 16r23
-				 16r45 16r67
-				 16r89 16rab
-				 16rcd 16ref ].
-	 i photometric:#rgb.
-	 i samplesPerPixel:3.
-	 i bitsPerSample:#(2 2 0).
-
-	 i := i magnifiedBy:30.
-	 i edit.
-									[exEnd]
+                                                                        [exBegin]
+         |i|
+
+         i := Depth4Image
+                    width:4
+                    height:4
+                    fromArray:#[ 16r01 16r23
+                                 16r45 16r67
+                                 16r89 16rab
+                                 16rcd 16ref ].
+         i photometric:#rgb.
+         i samplesPerPixel:3.
+         i bitsPerSample:#(2 2 0).
+
+         i := i magnifiedBy:30.
+         i edit.
+                                                                        [exEnd]
 
 
       a 0/0/4 rgb image (i.e. no red or green):
-									[exBegin]
-	 |i|
-
-	 i := Depth4Image
-		    width:4
-		    height:4
-		    fromArray:#[ 16r01 16r23
-				 16r45 16r67
-				 16r89 16rab
-				 16rcd 16ref ].
-	 i photometric:#rgb.
-	 i samplesPerPixel:3.
-	 i bitsPerSample:#(0 0 4).
-
-	 i := i magnifiedBy:30.
-	 i edit.
-									[exEnd]
+                                                                        [exBegin]
+         |i|
+
+         i := Depth4Image
+                    width:4
+                    height:4
+                    fromArray:#[ 16r01 16r23
+                                 16r45 16r67
+                                 16r89 16rab
+                                 16rcd 16ref ].
+         i photometric:#rgb.
+         i samplesPerPixel:3.
+         i bitsPerSample:#(0 0 4).
+
+         i := i magnifiedBy:30.
+         i edit.
+                                                                        [exEnd]
 
 
       a 2plane greyscale image:
-									[exBegin]
-	((Depth2Image
-	     width:4
-	     height:4
-	     fromArray:#[
-			    4r0123
-			    4r1230
-			    4r2301
-			    4r3012
-			])
-	    magnifiedBy:30
-	) edit
-									[exEnd]
+                                                                        [exBegin]
+        ((Depth2Image
+             width:4
+             height:4
+             fromArray:#[
+                            4r0123
+                            4r1230
+                            4r2301
+                            4r3012
+                        ])
+            magnifiedBy:30
+        ) edit
+                                                                        [exEnd]
 
       with colors:
-									[exBegin]
-	((Depth2Image
-	     width:4
-	     height:4
-	     fromArray:#[
-			    4r0123
-			    4r1230
-			    4r2301
-			    4r3012
-			])
-	    colorMap:(Array with:(Color black)
-			    with:(Color red)
-			    with:(Color green)
-			    with:(Color blue));
-	    magnifiedBy:30
-	) edit
-									[exEnd]
+                                                                        [exBegin]
+        ((Depth2Image
+             width:4
+             height:4
+             fromArray:#[
+                            4r0123
+                            4r1230
+                            4r2301
+                            4r3012
+                        ])
+            colorMap:(Array with:(Color black)
+                            with:(Color red)
+                            with:(Color green)
+                            with:(Color blue));
+            magnifiedBy:30
+        ) edit
+                                                                        [exEnd]
 
       depth8 image with 3/3/2 rgb interpretation:
-									[exBegin]
-	((Depth8Image
-	     width:16
-	     height:16
-	     fromArray:(ByteArray withAll:(0 to:16rFF)))
-	    photometric:#rgb;
-	    samplesPerPixel:3;
-	    bitsPerSample:#(3 3 2);
-	    magnifiedBy:10
-	) edit
-									[exEnd]
+                                                                        [exBegin]
+        ((Depth8Image
+             width:16
+             height:16
+             fromArray:(ByteArray withAll:(0 to:16rFF)))
+            photometric:#rgb;
+            samplesPerPixel:3;
+            bitsPerSample:#(3 3 2);
+            magnifiedBy:10
+        ) edit
+                                                                        [exEnd]
 
       depth8 image with 2/2/2 rgb interpretation:
-									[exBegin]
-	((Depth8Image
-	     width:8
-	     height:8
-	     fromArray:(ByteArray withAll:(0 to:16r3F)))
-	    photometric:#rgb;
-	    samplesPerPixel:3;
-	    bitsPerSample:#(2 2 2);
-	    magnifiedBy:10
-	) edit
-									[exEnd]
-
-									[exBegin]
-	((Depth8Image
-	     width:4
-	     height:4
-	     fromArray:#[
-		    16r30 16r0C  16r03 16r3F
-		    16r20 16r08  16r02 16r2A
-		    16r10 16r04  16r01 16r15
-		    16r00 16r00  16r00 16r00
-			])
-	    photometric:#rgb;
-	    samplesPerPixel:3;
-	    bitsPerSample:#(2 2 2);
-	    magnifiedBy:30
-	) edit
-									[exEnd]
+                                                                        [exBegin]
+        ((Depth8Image
+             width:8
+             height:8
+             fromArray:(ByteArray withAll:(0 to:16r3F)))
+            photometric:#rgb;
+            samplesPerPixel:3;
+            bitsPerSample:#(2 2 2);
+            magnifiedBy:10
+        ) edit
+                                                                        [exEnd]
+
+                                                                        [exBegin]
+        ((Depth8Image
+             width:4
+             height:4
+             fromArray:#[
+                    16r30 16r0C  16r03 16r3F
+                    16r20 16r08  16r02 16r2A
+                    16r10 16r04  16r01 16r15
+                    16r00 16r00  16r00 16r00
+                        ])
+            photometric:#rgb;
+            samplesPerPixel:3;
+            bitsPerSample:#(2 2 2);
+            magnifiedBy:30
+        ) edit
+                                                                        [exEnd]
 
       trueColor image: remember: bytes are MSB
-									[exBegin]
-	((Depth16Image
-	     width:4
-	     height:5
-	     fromArray:#[
-		    2r01111100 2r00000000  2r00000011 2r11100000  2r00000000 2r00011111  2r01111111 2r11111111
-		    2r00111100 2r00000000  2r00000001 2r11100000  2r00000000 2r00001111  2r00111101 2r11101111
-		    2r00011100 2r00000000  2r00000000 2r11100000  2r00000000 2r00000111  2r00011100 2r11100111
-		    2r00001100 2r00000000  2r00000000 2r01100000  2r00000000 2r00000001  2r00001100 2r01100011
-		    2r00000100 2r00000000  2r00000000 2r00100000  2r00000000 2r00000001  2r00000100 2r00100001
-			])
-	    photometric:#rgb;
-	    samplesPerPixel:3;
-	    bitsPerSample:#(5 5 5);
-	    magnifiedBy:30
-	) edit
-									[exEnd]
-
-									[exBegin]
-	((Depth24Image
-	     width:4
-	     height:4
-	     fromArray:#[
-		    16rFF 16r00 16r00  16rFF 16r00 16r00  16rFF 16r00 16r00  16rFF 16r00 16r00
-		    16r00 16rFF 16r00  16r00 16rFF 16r00  16r00 16rFF 16r00  16r00 16rFF 16r00
-		    16r00 16r00 16rFF  16r00 16r00 16rFF  16r00 16r00 16rFF  16r00 16r00 16rFF
-		    16rFF 16rFF 16rFF  16rFF 16rFF 16rFF  16rFF 16rFF 16rFF  16rFF 16rFF 16rFF
-			])
-	    photometric:#rgb;
-	    samplesPerPixel:3;
-	    bitsPerSample:#(8 8 8);
-	    magnifiedBy:30
-	) edit
-									[exEnd]
+                                                                        [exBegin]
+        ((Depth16Image
+             width:4
+             height:5
+             fromArray:#[
+                    2r01111100 2r00000000  2r00000011 2r11100000  2r00000000 2r00011111  2r01111111 2r11111111
+                    2r00111100 2r00000000  2r00000001 2r11100000  2r00000000 2r00001111  2r00111101 2r11101111
+                    2r00011100 2r00000000  2r00000000 2r11100000  2r00000000 2r00000111  2r00011100 2r11100111
+                    2r00001100 2r00000000  2r00000000 2r01100000  2r00000000 2r00000001  2r00001100 2r01100011
+                    2r00000100 2r00000000  2r00000000 2r00100000  2r00000000 2r00000001  2r00000100 2r00100001
+                        ])
+            photometric:#rgb;
+            samplesPerPixel:3;
+            bitsPerSample:#(5 5 5);
+            magnifiedBy:30
+        ) edit
+                                                                        [exEnd]
+
+                                                                        [exBegin]
+        ((Depth24Image
+             width:4
+             height:4
+             fromArray:#[
+                    16rFF 16r00 16r00  16rFF 16r00 16r00  16rFF 16r00 16r00  16rFF 16r00 16r00
+                    16r00 16rFF 16r00  16r00 16rFF 16r00  16r00 16rFF 16r00  16r00 16rFF 16r00
+                    16r00 16r00 16rFF  16r00 16r00 16rFF  16r00 16r00 16rFF  16r00 16r00 16rFF
+                    16rFF 16rFF 16rFF  16rFF 16rFF 16rFF  16rFF 16rFF 16rFF  16rFF 16rFF 16rFF
+                        ])
+            photometric:#rgb;
+            samplesPerPixel:3;
+            bitsPerSample:#(8 8 8);
+            magnifiedBy:30
+        ) edit
+                                                                        [exEnd]
 
       32bit trueColor image:
-									[exBegin]
-	((Depth32Image
-	     width:4
-	     height:4
-	     fromArray:#[
-		    16rFF 16r00 16r00 16r00  16rFF 16r00 16r00 16r00  16rFF 16r00 16r00 16r00  16rFF 16r00 16r00 16r00
-		    16r00 16rFF 16r00 16r00  16r00 16rFF 16r00 16r00  16r00 16rFF 16r00 16r00  16r00 16rFF 16r00 16r00
-		    16r00 16r00 16rFF 16r00  16r00 16r00 16rFF 16r00  16r00 16r00 16rFF 16r00  16r00 16r00 16rFF 16r00
-		    16rFF 16rFF 16rFF 16r00  16rFF 16rFF 16rFF 16r00  16rFF 16rFF 16rFF 16r00  16rFF 16rFF 16rFF 16r00
-			])
-	    photometric:#rgb;
-	    samplesPerPixel:4;
-	    bitsPerSample:#(8 8 8 8);
-	    magnifiedBy:30
-	) edit
-									[exEnd]
+                                                                        [exBegin]
+        ((Depth32Image
+             width:4
+             height:4
+             fromArray:#[
+                    16rFF 16r00 16r00 16r00  16rFF 16r00 16r00 16r00  16rFF 16r00 16r00 16r00  16rFF 16r00 16r00 16r00
+                    16r00 16rFF 16r00 16r00  16r00 16rFF 16r00 16r00  16r00 16rFF 16r00 16r00  16r00 16rFF 16r00 16r00
+                    16r00 16r00 16rFF 16r00  16r00 16r00 16rFF 16r00  16r00 16r00 16rFF 16r00  16r00 16r00 16rFF 16r00
+                    16rFF 16rFF 16rFF 16r00  16rFF 16rFF 16rFF 16r00  16rFF 16rFF 16rFF 16r00  16rFF 16rFF 16rFF 16r00
+                        ])
+            photometric:#rgb;
+            samplesPerPixel:4;
+            bitsPerSample:#(8 8 8 8);
+            magnifiedBy:30
+        ) edit
+                                                                        [exEnd]
 
     storing - only a subset of formats (TIFF, XBM, XPM) currently support storing:
-									[exBegin]
-	|img|
-
-	img := Image fromFile:'bitmaps/winBitmaps/okSmily_up.bmp' inPackage:'stx:goodies'.
-	img saveOn:'myImage.tiff'.
-	(Image fromFile:'myImage.tiff') inspect.
-	img saveOn:'myImage.gif'.
-	(Image fromFile:'myImage.gif') inspect.
-									[exEnd]
+                                                                        [exBegin]
+        |img|
+
+        img := Image fromFile:'bitmaps/winBitmaps/okSmily_up.bmp' inPackage:'stx:goodies'.
+        img saveOn:'myImage.tiff'.
+        (Image fromFile:'myImage.tiff') inspect.
+        img saveOn:'myImage.gif'.
+        (Image fromFile:'myImage.gif') inspect.
+                                                                        [exEnd]
 
     magnifying (any factor):
-									[exBegin]
-	((Image fromFile:'bitmaps/gifImages/claus.gif' inPackage:'stx:goodies')
-	    magnifiedTo:(48@48))
-		inspect
-									[exEnd]
-									[exBegin]
-	((Image fromFile:'bitmaps/gifImages/claus.gif' inPackage:'stx:goodies')
-	    magnifiedBy:0.7)
-		inspect
-									[exEnd]
+                                                                        [exBegin]
+        ((Image fromFile:'bitmaps/gifImages/claus.gif' inPackage:'stx:goodies')
+            magnifiedTo:(48@48))
+                inspect
+                                                                        [exEnd]
+                                                                        [exBegin]
+        ((Image fromFile:'bitmaps/gifImages/claus.gif' inPackage:'stx:goodies')
+            magnifiedBy:0.7)
+                inspect
+                                                                        [exEnd]
 
     rotating (any angle in degrees clockwise):
-									[exBegin]
-	((Image fromFile:'bitmaps/gifImages/claus.gif' inPackage:'stx:goodies')
-	    rotated:90)
-		inspect
-									[exEnd]
-									[exBegin]
-	(((Image fromFile:'bitmaps/gifImages/claus.gif' inPackage:'stx:goodies')
-	    magnifiedBy:0.3@0.7) rotated:270)
-		inspect
-									[exEnd]
-									[exBegin]
-	(((Image fromFile:'bitmaps/gifImages/claus.gif' inPackage:'stx:goodies')
-	    ) rotated:30)
-		inspect
-									[exEnd]
+                                                                        [exBegin]
+        ((Image fromFile:'bitmaps/gifImages/claus.gif' inPackage:'stx:goodies')
+            rotated:90)
+                inspect
+                                                                        [exEnd]
+                                                                        [exBegin]
+        (((Image fromFile:'bitmaps/gifImages/claus.gif' inPackage:'stx:goodies')
+            magnifiedBy:0.3@0.7) rotated:270)
+                inspect
+                                                                        [exEnd]
+                                                                        [exBegin]
+        (((Image fromFile:'bitmaps/gifImages/claus.gif' inPackage:'stx:goodies')
+            ) rotated:30)
+                inspect
+                                                                        [exEnd]
     negative:
-									[exBegin]
-	((Image fromFile:'bitmaps/gifImages/claus.gif' inPackage:'stx:goodies')
-	    negative)
-		inspect
-									[exEnd]
+                                                                        [exBegin]
+        ((Image fromFile:'bitmaps/gifImages/claus.gif' inPackage:'stx:goodies')
+            negative)
+                inspect
+                                                                        [exEnd]
 
       depth32 image with 8+8+8+8 argb interpretation:
-									[exBegin]
-	((Depth32Image
-	     width:4 height:4
-	     fromArray:#[
-		255 255 0 0       255 255 0 0       255 255 0 0       255 255 0 0
-		255 0 255 0       255 0 255 0       255 0 255 0       255 0 255 0
-		255 0 0 255       255 0 0 255       255 0 0 255       255 0 0 255
-		255 255 255 255   255 255 255 255   255 255 255 255   255 255 255 255 ])
-	    photometric:#argb;
-	    samplesPerPixel:4;
-	    bitsPerSample:#(8 8 8 8);
-	    magnifiedBy:10
-	) edit
-									[exEnd]
+                                                                        [exBegin]
+        ((Depth32Image
+             width:4 height:4
+             fromArray:#[
+                255 255 0 0       255 255 0 0       255 255 0 0       255 255 0 0
+                255 0 255 0       255 0 255 0       255 0 255 0       255 0 255 0
+                255 0 0 255       255 0 0 255       255 0 0 255       255 0 0 255
+                255 255 255 255   255 255 255 255   255 255 255 255   255 255 255 255 ])
+            photometric:#argb;
+            samplesPerPixel:4;
+            bitsPerSample:#(8 8 8 8);
+            magnifiedBy:10
+        ) edit
+                                                                        [exEnd]
 
       depth32 image with 8+8+8+8 rgba interpretation:
-									[exBegin]
-	((Depth32Image
-	     width:4 height:4
-	     fromArray:#[
-		255 0 0 255       255 0 0 255       255 0 0 255       255 0 0 255
-		0 255 0 255       0 255 0 255       0 255 0 255       0 255 0 255
-		0 0 255 255       0 0 255 255       0 0 255 255       0 0 255 255
-		255 255 255 255   255 255 255 255   255 255 255 255   255 255 255 255 ])
-	    photometric:#rgba;
-	    samplesPerPixel:4;
-	    bitsPerSample:#(8 8 8 8);
-	    magnifiedBy:10
-	) edit
-									[exEnd]
+                                                                        [exBegin]
+        ((Depth32Image
+             width:4 height:4
+             fromArray:#[
+                255 0 0 255       255 0 0 255       255 0 0 255       255 0 0 255
+                0 255 0 255       0 255 0 255       0 255 0 255       0 255 0 255
+                0 0 255 255       0 0 255 255       0 0 255 255       0 0 255 255
+                255 255 255 255   255 255 255 255   255 255 255 255   255 255 255 255 ])
+            photometric:#rgba;
+            samplesPerPixel:4;
+            bitsPerSample:#(8 8 8 8);
+            magnifiedBy:10
+        ) edit
+                                                                        [exEnd]
 "
 !
 
@@ -703,56 +711,56 @@
     These have no underyling pixelstorage, but instead compute the pixel-value via a block.
 
     Plain x/y mapping:
-									[exBegin]
-	|i|
-	i := Depth1Image extent:256@256.
-	i pixelFunction:[:x :y | ((x // 16) bitXor:(y // 16)) odd ifTrue:1 ifFalse:[0]].
-	i inspect.
-									[exEnd]
+                                                                        [exBegin]
+        |i|
+        i := Depth1Image extent:256@256.
+        i pixelFunction:[:x :y | ((x // 16) bitXor:(y // 16)) odd ifTrue:1 ifFalse:[0]].
+        i inspect.
+                                                                        [exEnd]
     Transformed x/y mapping:
-									[exBegin]
-	|i f|
-	f := [:x :y | (x between:0.4 and:0.6) asInteger].
-	i := Depth1Image extent:256@256.
-	i pixelFunction:f inX:(0.0 to:1.0) y:(0.0 to:1.0).
-	i inspect.
-									[exEnd]
-									[exBegin]
-	|i f|
-	f := [:x :y | ((x between:0.4 and:0.6) or:[(y between:0.4 and:0.6)]) asInteger].
-	i := Depth1Image extent:256@256.
-	i pixelFunction:f inX:(0.0 to:1.0) y:(0.0 to:1.0).
-	i inspect.
-									[exEnd]
+                                                                        [exBegin]
+        |i f|
+        f := [:x :y | (x between:0.4 and:0.6) asInteger].
+        i := Depth1Image extent:256@256.
+        i pixelFunction:f inX:(0.0 to:1.0) y:(0.0 to:1.0).
+        i inspect.
+                                                                        [exEnd]
+                                                                        [exBegin]
+        |i f|
+        f := [:x :y | ((x between:0.4 and:0.6) or:[(y between:0.4 and:0.6)]) asInteger].
+        i := Depth1Image extent:256@256.
+        i pixelFunction:f inX:(0.0 to:1.0) y:(0.0 to:1.0).
+        i inspect.
+                                                                        [exEnd]
     Image based on polar coordinate:
-									[exBegin]
-	|i f|
-	f := [:x :y | ((x@y) r * 10) asInteger bitAnd:1].
-	i := Depth1Image extent:256@256.
-	i pixelFunction:f inX:(-1.0 to:1.0) y:(-1.0 to:1.0).
-	i inspect.
-									[exEnd]
+                                                                        [exBegin]
+        |i f|
+        f := [:x :y | ((x@y) r * 10) asInteger bitAnd:1].
+        i := Depth1Image extent:256@256.
+        i pixelFunction:f inX:(-1.0 to:1.0) y:(-1.0 to:1.0).
+        i inspect.
+                                                                        [exEnd]
     Grayscale image based on polar coordinate:
-									[exBegin]
-	|i|
-	i := Depth8Image extent:256@256.
-	i photometric:#blackIs0.
-	i pixelFunction:[:x :y | ((x@y) r * 255) truncated min:255] inX:(-1 to:1) y:(-1 to:1).
-	i inspect.
-									[exEnd]
+                                                                        [exBegin]
+        |i|
+        i := Depth8Image extent:256@256.
+        i photometric:#blackIs0.
+        i pixelFunction:[:x :y | ((x@y) r * 255) truncated min:255] inX:(-1 to:1) y:(-1 to:1).
+        i inspect.
+                                                                        [exEnd]
 
     Taking another image as ''input''
-									[exBegin]
-	|garfield f i h|
-
-	garfield := Image fromFile:'bitmaps/gifImages/garfield.gif' inPackage:'stx:goodies'.
-	h := garfield height.
-	f := [:x :y | (garfield colorAtX:x y:h-y) rgbValue].
-
-	i := Depth24Image extent:garfield extent.
-	i pixelFunction:f.
-	i inspect.
-									[exEnd]
+                                                                        [exBegin]
+        |garfield f i h|
+
+        garfield := Image fromFile:'bitmaps/gifImages/garfield.gif' inPackage:'stx:goodies'.
+        h := garfield height.
+        f := [:x :y | (garfield colorAtX:x y:h-y) rgbValue].
+
+        i := Depth24Image extent:garfield extent.
+        i pixelFunction:f.
+        i inspect.
+                                                                        [exEnd]
 "
 ! !
 
@@ -776,7 +784,7 @@
 
     self obsoleteMethodWarning.
     MIMETypes
-	defineImageType:mimeType suffix:aSuffix reader:aReaderClass
+        defineImageType:mimeType suffix:aSuffix reader:aReaderClass
 
     "
      Image addReader:GIFReader suffix:'gif'
@@ -803,7 +811,7 @@
     "simply release all deviceForms"
 
     Lobby do:[:anImage |
-	anImage release
+        anImage release
     ]
 
     "Modified: 15.6.1996 / 15:45:02 / cg"
@@ -891,9 +899,9 @@
      see the 'smalltalk.rc'/'display.rc' startup files for a real (full) map."
 
     MIMETypes notNil ifTrue:[
-	MIMETypes imageReaderForSuffix:'xbm'  put:XBMReader.
-	MIMETypes imageReaderForSuffix:'tiff' put:TIFFReader.
-	MIMETypes imageReaderForSuffix:'gif'  put:GIFReader.
+        MIMETypes imageReaderForSuffix:'xbm'  put:XBMReader.
+        MIMETypes imageReaderForSuffix:'tiff' put:TIFFReader.
+        MIMETypes imageReaderForSuffix:'gif'  put:GIFReader.
     ].
 
     "
@@ -909,11 +917,11 @@
      see the 'smalltalk.rc'/'display.rc' startup files for a real (full) map."
 
     MIMETypes notNil ifTrue:[
-	MIMETypes mimeTypeForSuffix:'gif'       put:'image/gif'.
-	MIMETypes mimeTypeForSuffix:'tiff'      put:'image/tiff'.
-	MIMETypes mimeTypeForSuffix:'tif'       put:'image/tiff'.
-	MIMETypes mimeTypeForSuffix:'xbm'       put:'image/x-xbitmap'.
-	MIMETypes mimeTypeForSuffix:'xpm'       put:'image/x-xpixmap'.
+        MIMETypes mimeTypeForSuffix:'gif'       put:'image/gif'.
+        MIMETypes mimeTypeForSuffix:'tiff'      put:'image/tiff'.
+        MIMETypes mimeTypeForSuffix:'tif'       put:'image/tiff'.
+        MIMETypes mimeTypeForSuffix:'xbm'       put:'image/x-xbitmap'.
+        MIMETypes mimeTypeForSuffix:'xpm'       put:'image/x-xpixmap'.
     ].
 
     "
@@ -928,7 +936,7 @@
     "flush all device specific stuff when restarted from a snapshot"
 
     (something == #restarted) ifTrue:[
-	self flushDeviceImages
+        self flushDeviceImages
     ]
 
     "Created: 21.6.1996 / 19:47:43 / cg"
@@ -956,36 +964,36 @@
     ^ self extent:ext depth:d antiAliasedPalette:aBasicColorArray bgColor:bgColor mixedArray:#(1.0 0.8 0.6 0.4 0.2)
 
     "
-	|colorMap aaImgArray|
-
-	colorMap := Array with:Color white with:Color blue.
-
-	aaImgArray := Depth8Image extent:300@400 depth:8 antiAliasedPalette:colorMap bgColor:Color white.
-	aaImgArray last
-	    fillAntiAliasedArc:200@200
-	    radius:80
-	    from:0
-	    angle:360
-	    withColor:Color blue
-	    antiAliasedPalette:aaImgArray first
-	    startWith:aaImgArray second.
-
-	aaImgArray last inspect.
-
-
-	|colorMap aaImgArray|
-
-	colorMap := Array with:Color white with:Color black with:Color red with:Color blue.
-
-	aaImgArray := Depth8Image extent:300@400 depth:8 antiAliasedPalette:colorMap bgColor:Color white.
-	aaImgArray last fillAntiAliasedArc:205@195 radius:80 from:0 angle:90 withColor:Color red
-	    colorDictionary:aaImgArray first
-	    blendStart:aaImgArray second.
-	aaImgArray last fillAntiAliasedArc:200@200 radius:80 from:90 angle:270 withColor:Color blue
-	    colorDictionary:aaImgArray first
-	    blendStart:aaImgArray second.
-
-	aaImgArray last inspect.
+        |colorMap aaImgArray|
+
+        colorMap := Array with:Color white with:Color blue.
+
+        aaImgArray := Depth8Image extent:300@400 depth:8 antiAliasedPalette:colorMap bgColor:Color white.
+        aaImgArray last
+            fillAntiAliasedArc:200@200
+            radius:80
+            from:0
+            angle:360
+            withColor:Color blue
+            antiAliasedPalette:aaImgArray first
+            startWith:aaImgArray second.
+
+        aaImgArray last inspect.
+
+
+        |colorMap aaImgArray|
+
+        colorMap := Array with:Color white with:Color black with:Color red with:Color blue.
+
+        aaImgArray := Depth8Image extent:300@400 depth:8 antiAliasedPalette:colorMap bgColor:Color white.
+        aaImgArray last fillAntiAliasedArc:205@195 radius:80 from:0 angle:90 withColor:Color red
+            colorDictionary:aaImgArray first
+            blendStart:aaImgArray second.
+        aaImgArray last fillAntiAliasedArc:200@200 radius:80 from:90 angle:270 withColor:Color blue
+            colorDictionary:aaImgArray first
+            blendStart:aaImgArray second.
+
+        aaImgArray last inspect.
 
     "
 !
@@ -999,18 +1007,18 @@
     colorDictionary := Dictionary new.
 
     aBasicColorArray do:[:aColor |
-	colorMap add:aColor.
-	colorIndex := colorIndex + 1.
-
-	tmpDic := Dictionary new.
-
-	mixedArray do:[:aFloat |
-	    tmpDic at:aFloat put:colorIndex.
-	    colorMap add:(aColor mixed:aFloat with:bgColor).
-	    colorIndex := colorIndex + 1.
-	].
-
-	colorDictionary at:aColor put:tmpDic.
+        colorMap add:aColor.
+        colorIndex := colorIndex + 1.
+
+        tmpDic := Dictionary new.
+
+        mixedArray do:[:aFloat |
+            tmpDic at:aFloat put:colorIndex.
+            colorMap add:(aColor mixed:aFloat with:bgColor).
+            colorIndex := colorIndex + 1.
+        ].
+
+        colorDictionary at:aColor put:tmpDic.
     ].
 
     newImage := (self implementorForDepth:d) new.
@@ -1022,37 +1030,37 @@
     ^ Array with:colorDictionary with:mixedArray first with:newImage
 
     "
-	|colorMap aaImgArray|
-
-	colorMap := Array with:Color white with:Color black with:Color red with:Color blue.
-
-	aaImgArray := Depth8Image extent:300@400 depth:8 antiAliasedPalette:colorMap bgColor:Color white.
-	aaImgArray last fillAntiAliasedArc:205@195 radius:80 from:0 angle:90 withColor:Color red
-	    colorDictionary:aaImgArray first
-	    blendStart:aaImgArray second.
-	aaImgArray last fillAntiAliasedArc:200@200 radius:80 from:90 angle:270 withColor:Color blue
-	    colorDictionary:aaImgArray first
-	    blendStart:aaImgArray second.
-
-	aaImgArray last inspect.
+        |colorMap aaImgArray|
+
+        colorMap := Array with:Color white with:Color black with:Color red with:Color blue.
+
+        aaImgArray := Depth8Image extent:300@400 depth:8 antiAliasedPalette:colorMap bgColor:Color white.
+        aaImgArray last fillAntiAliasedArc:205@195 radius:80 from:0 angle:90 withColor:Color red
+            colorDictionary:aaImgArray first
+            blendStart:aaImgArray second.
+        aaImgArray last fillAntiAliasedArc:200@200 radius:80 from:90 angle:270 withColor:Color blue
+            colorDictionary:aaImgArray first
+            blendStart:aaImgArray second.
+
+        aaImgArray last inspect.
 
  ###################
 
-	|colorMap aaImgArray|
-
-	colorMap := Array with:Color white with:Color blue.
-
-	aaImgArray := Depth8Image extent:300@400 depth:8 antiAliasedPalette:colorMap bgColor:Color white.
-	aaImgArray last
-	    fillAntiAliasedArc:200@200
-	    radius:80
-	    from:0
-	    angle:360
-	    withColor:Color blue
-	    antiAliasedPalette:aaImgArray first
-	    startWith:aaImgArray second.
-
-	aaImgArray last inspect.
+        |colorMap aaImgArray|
+
+        colorMap := Array with:Color white with:Color blue.
+
+        aaImgArray := Depth8Image extent:300@400 depth:8 antiAliasedPalette:colorMap bgColor:Color white.
+        aaImgArray last
+            fillAntiAliasedArc:200@200
+            radius:80
+            from:0
+            angle:360
+            withColor:Color blue
+            antiAliasedPalette:aaImgArray first
+            startWith:aaImgArray second.
+
+        aaImgArray last inspect.
     "
 
     "Modified: / 02-11-2010 / 20:57:41 / cg"
@@ -1188,7 +1196,7 @@
 
     (self == Image
     or:[anImage class == self
-	and:[photometricOrNil isNil or:[photometricOrNil == anImage photometric]]]) ifTrue:[^ anImage].
+        and:[photometricOrNil isNil or:[photometricOrNil == anImage photometric]]]) ifTrue:[^ anImage].
     ^ self new fromImage:anImage photometric:photometricOrNil.
 
     "
@@ -1211,23 +1219,23 @@
     photometric := (depth > 8) ifTrue:#rgb ifFalse:#palette.
 
     (formsDevice notNil and:[depth == formsDevice depth]) ifTrue:[
-	"/
-	"/ for truecolor displays, return a Depth24Image
-	"/ (must do this for depth15 & depth16 displays, since
-	"/  Depth16Image has no way to specify r/g/b masks ...)
-	"/
-	vis := formsDevice visualType.
-	(vis == #TrueColor or:[vis == #DirectColor]) ifTrue:[
-	    depth > 8 ifTrue:[
-		depth := 24.
-	    ]
-	].
+        "/
+        "/ for truecolor displays, return a Depth24Image
+        "/ (must do this for depth15 & depth16 displays, since
+        "/  Depth16Image has no way to specify r/g/b masks ...)
+        "/
+        vis := formsDevice visualType.
+        (vis == #TrueColor or:[vis == #DirectColor]) ifTrue:[
+            depth > 8 ifTrue:[
+                depth := 24.
+            ]
+        ].
     ].
     img := self newForDepth:depth.
     img photometric:photometric.
 
     formsDevice isNil ifTrue:[
-	^ img from:aForm in:aRectangle.
+        ^ img from:aForm in:aRectangle.
     ].
     ^ img from:aForm in:aRectangle
 
@@ -1267,9 +1275,9 @@
     |cls|
 
     self == Image ifTrue:[
-	cls := (self implementorForDepth:anImage depth).
+        cls := (self implementorForDepth:anImage depth).
     ] ifFalse:[
-	cls := self.
+        cls := self.
     ].
     ^ cls new fromSubImage:anImage in:aRectangle.
 
@@ -1340,7 +1348,7 @@
 
     cls := self.
     cls == Image ifTrue:[
-	cls := self implementorForDepth:1
+        cls := self implementorForDepth:1
     ].
     ^ cls new width:w height:h
 
@@ -1351,7 +1359,7 @@
     "create a new image, given width, height and depth"
 
     ^ (self newForDepth:d)
-	width:w height:h depth:d
+        width:w height:h depth:d
 !
 
 width:w height:h depth:d fromArray:pixelData
@@ -1360,63 +1368,63 @@
      depth (8-bit padded)."
 
     ^ (self newForDepth:d)
-	width:w height:h depth:d fromArray:pixelData
+        width:w height:h depth:d fromArray:pixelData
 
     "
      Image width:8
-	   height:8
-	   depth:1
-	   fromArray:#[2r11001100
-		       2r00110011
-		       2r11001100
-		       2r00110011
-		       2r11001100
-		       2r00110011
-		       2r11001100
-		       2r00110011].
+           height:8
+           depth:1
+           fromArray:#[2r11001100
+                       2r00110011
+                       2r11001100
+                       2r00110011
+                       2r11001100
+                       2r00110011
+                       2r11001100
+                       2r00110011].
     "
 
     "
      Image width:8
-	   height:8
-	   depth:2
-	   fromArray:#[4r1100 4r1100
-		       4r0011 4r0011
-		       4r1100 4r1100
-		       4r0011 4r0011
-		       4r1100 4r1100
-		       4r0011 4r0011
-		       4r1100 4r1100
-		       4r0011 4r0011].
+           height:8
+           depth:2
+           fromArray:#[4r1100 4r1100
+                       4r0011 4r0011
+                       4r1100 4r1100
+                       4r0011 4r0011
+                       4r1100 4r1100
+                       4r0011 4r0011
+                       4r1100 4r1100
+                       4r0011 4r0011].
     "
 
     "
      Image width:8
-	   height:8
-	   depth:4
-	   fromArray:#[16r00 16r01 16rf0 16rf1
-		       16r02 16r03 16rf2 16rf3
-		       16r04 16r05 16rf4 16rf5
-		       16r06 16r07 16rf6 16rf7
-		       16r08 16r09 16rf8 16rf9
-		       16r0a 16r0b 16rfa 16rfb
-		       16r0c 16r0d 16rfc 16rfd
-		       16r0e 16r0f 16rfe 16rff].
+           height:8
+           depth:4
+           fromArray:#[16r00 16r01 16rf0 16rf1
+                       16r02 16r03 16rf2 16rf3
+                       16r04 16r05 16rf4 16rf5
+                       16r06 16r07 16rf6 16rf7
+                       16r08 16r09 16rf8 16rf9
+                       16r0a 16r0b 16rfa 16rfb
+                       16r0c 16r0d 16rfc 16rfd
+                       16r0e 16r0f 16rfe 16rff].
     "
 
     "
      Image width:8
-	   height:8
-	   depth:16
-	   fromArray:#(1 1 1 1 1 1 1 1
-		       2 2 2 2 2 2 2 2
-		       3 3 3 3 3 3 3 3
-		       4 4 4 4 4 4 4 4
-		       5 5 5 5 5 5 5 5
-		       6 6 6 6 6 6 6 6
-		       7 7 7 7 7 7 7 7
-		       8 8 8 8 8 8 8 8
-		      ) asWordArray.
+           height:8
+           depth:16
+           fromArray:#(1 1 1 1 1 1 1 1
+                       2 2 2 2 2 2 2 2
+                       3 3 3 3 3 3 3 3
+                       4 4 4 4 4 4 4 4
+                       5 5 5 5 5 5 5 5
+                       6 6 6 6 6 6 6 6
+                       7 7 7 7 7 7 7 7
+                       8 8 8 8 8 8 8 8
+                      ) asWordArray.
     "
 
     "Modified: 10.6.1996 / 18:18:10 / cg"
@@ -1440,30 +1448,30 @@
     dstRowBytes := img bytesPerRow.
 
     (padding ~~ 8 and:[(srcRowBytes \\ 4 ~~ 0) or:[srcRowBytes ~= dstRowBytes]]) ifTrue:[
-	"must repad; ST/X uses byte padding, while ST-80 uses longword
-	 padding. This is stupid, and may be changed in ST/X with future versions.
-	"
-	dstRowBytes := img bytesPerRow.
-
-	newBits := ByteArray uninitializedNew:(dstRowBytes * h).
-	srcIndex := 1.
-	dstIndex := 1.
-
-	1 to:h do:[:row |
-	    nextDstIndex := dstIndex + dstRowBytes.
-	    newBits replaceFrom:dstIndex
-			     to:(nextDstIndex - 1)
-			   with:pixelData
-		     startingAt:srcIndex.
-	    srcIndex := srcIndex + srcRowBytes.
-	    dstIndex := nextDstIndex.
-	].
+        "must repad; ST/X uses byte padding, while ST-80 uses longword
+         padding. This is stupid, and may be changed in ST/X with future versions.
+        "
+        dstRowBytes := img bytesPerRow.
+
+        newBits := ByteArray uninitializedNew:(dstRowBytes * h).
+        srcIndex := 1.
+        dstIndex := 1.
+
+        1 to:h do:[:row |
+            nextDstIndex := dstIndex + dstRowBytes.
+            newBits replaceFrom:dstIndex
+                             to:(nextDstIndex - 1)
+                           with:pixelData
+                     startingAt:srcIndex.
+            srcIndex := srcIndex + srcRowBytes.
+            dstIndex := nextDstIndex.
+        ].
     ] ifFalse:[
-	pixelData class isBytes ifFalse:[
-	    newBits := ByteArray withAll:pixelData
-	] ifTrue:[
-	    newBits := pixelData
-	]
+        pixelData class isBytes ifFalse:[
+            newBits := ByteArray withAll:pixelData
+        ] ifTrue:[
+            newBits := pixelData
+        ]
     ].
     img bits:newBits.
     ^ img
@@ -1481,29 +1489,29 @@
 
     cls := self.
     cls == Image ifTrue:[
-	cls := self implementorForDepth:1.
-	d := 1.
+        cls := self implementorForDepth:1.
+        d := 1.
     ] ifFalse:[
-	d := cls imageDepth
+        d := cls imageDepth
     ].
     anArray class isBytes ifFalse:[
-	pixels := ByteArray withAll:anArray
+        pixels := ByteArray withAll:anArray
     ] ifTrue:[
-	pixels := anArray
+        pixels := anArray
     ].
     ^ cls new width:w height:h depth:d fromArray:pixels
 
     "
      Image width:8
-	   height:8
-	   fromArray:#[2r11001100
-		       2r00110011
-		       2r11001100
-		       2r00110011
-		       2r11001100
-		       2r00110011
-		       2r11001100
-		       2r00110011].
+           height:8
+           fromArray:#[2r11001100
+                       2r00110011
+                       2r11001100
+                       2r00110011
+                       2r11001100
+                       2r00110011
+                       2r11001100
+                       2r00110011].
     "
 
     "Modified: 8.6.1996 / 10:07:26 / cg"
@@ -1517,7 +1525,7 @@
 
     cls := self.
     cls == Image ifTrue:[
-	cls := self implementorForDepth:1
+        cls := self implementorForDepth:1
     ].
     ^ cls new width:w height:h; photometric:photometric; yourself
 
@@ -1532,7 +1540,7 @@
 
     cls := self.
     cls == Image ifTrue:[
-	cls := self implementorForDepth:1
+        cls := self implementorForDepth:1
     ].
     ^ cls new width:w height:h; photometric:photometric; bitsPerSample:bitsPerSample; yourself
 
@@ -1642,15 +1650,15 @@
      to release all cached Images from that device"
 
     Lobby
-	unregisterAllForWhich:[:eachImage |
-	    |ok|
-
-	    ok := eachImage graphicsDevice == aDevice.
-	    ok ifTrue:[
-		eachImage releaseFromDevice
-	    ].
-	    ok
-	].
+        unregisterAllForWhich:[:eachImage |
+            |ok|
+
+            ok := eachImage graphicsDevice == aDevice.
+            ok ifTrue:[
+                eachImage releaseFromDevice
+            ].
+            ok
+        ].
 
     "
       self releaseResourcesOnDevice:Screen current
@@ -1681,19 +1689,19 @@
 
     fn := aFileName asFilename.
     fn isAbsolute ifFalse:[
-	inStream := Smalltalk systemFileStreamFor:fn.
-	inStream isNil ifTrue:[
-	    inStream := Smalltalk bitmapFileStreamFor:fn.
-	    inStream isNil ifTrue:[
-		"this signal is a query - if noone seems to care, return nil.
-		 However, a handler may provide a replacement image."
-		^ ImageNotFoundQuerySignal
-			    raiseRequestWith:fn
-			    errorString:('Image: ''' , fn pathName, ''' does not exist or is not readable').
-	    ].
-	].
-	fn := inStream pathName asFilename.
-	inStream close.
+        inStream := Smalltalk systemFileStreamFor:fn.
+        inStream isNil ifTrue:[
+            inStream := Smalltalk bitmapFileStreamFor:fn.
+            inStream isNil ifTrue:[
+                "this signal is a query - if noone seems to care, return nil.
+                 However, a handler may provide a replacement image."
+                ^ ImageNotFoundQuerySignal
+                            raiseRequestWith:fn
+                            errorString:('Image: ''' , fn pathName, ''' does not exist or is not readable').
+            ].
+        ].
+        fn := inStream pathName asFilename.
+        inStream close.
     ].
 
     nm := fn name.
@@ -1701,68 +1709,68 @@
 
     "handle compressed-suffix"
     (#('gz') includes:suffix) ifTrue:[
-	|baseFn|
-
-	baseFn := fn withoutSuffix.
-	nm := baseFn name.
-	suffix := baseFn suffix.
-	mustDecompress := true.
+        |baseFn|
+
+        baseFn := fn withoutSuffix.
+        nm := baseFn name.
+        suffix := baseFn suffix.
+        mustDecompress := true.
     ].
     suffix isEmpty ifTrue:[
-	suffix := nm.
+        suffix := nm.
     ].
 
     "get the imageReader class from the file's extension and ask it first"
     readerClass := MIMETypes imageReaderForSuffix:suffix.
     readerClass notNil ifTrue:[
-	mustDecompress == true ifTrue:[
-	    |zipStream|
-	    inStream := fn readStream.
-	    zipStream := ZipStream readOpenOn:inStream suppressHeaderAndChecksum:true.
-	    zipStream notNil ifTrue:[
-		[
-		    image := readerClass fromStream:zipStream.
-		] ensure:[
-		    zipStream close.
-		    inStream close.
-		].
-	    ]
-	] ifFalse:[
-	    BadImageFormatQuerySignal handle:[:ex |
-		BadImageFormatQuerySignal isHandled ifTrue:[ ex reject ].
-		Transcript showCR:(readersErrorMsg := ex description).
-		image := nil.
-		ex return.
-	    ] do:[
-		image := readerClass fromFile:fn.
-	    ].
-	].
-	image notNil ifTrue:[^ image].
+        mustDecompress == true ifTrue:[
+            |zipStream|
+            inStream := fn readStream.
+            zipStream := ZipStream readOpenOn:inStream suppressHeaderAndChecksum:true.
+            zipStream notNil ifTrue:[
+                [
+                    image := readerClass fromStream:zipStream.
+                ] ensure:[
+                    zipStream close.
+                    inStream close.
+                ].
+            ]
+        ] ifFalse:[
+            BadImageFormatQuerySignal handle:[:ex |
+                BadImageFormatQuerySignal isHandled ifTrue:[ ex reject ].
+                Transcript showCR:(readersErrorMsg := ex description).
+                image := nil.
+                ex return.
+            ] do:[
+                image := readerClass fromFile:fn.
+            ].
+        ].
+        image notNil ifTrue:[^ image].
     ].
 
     (readerClass isNil or:[readersErrorMsg notNil]) ifTrue:[
-	"no known extension (or wrong extension)
-	 - ask all readers if they know this format ...
-	 ... these look into the file, and investigate the header.
-	 therefore, it takes a bit longer."
-
-	MIMETypes imageReaderClasses do:[:mimeReaderClass |
-	    (mimeReaderClass notNil
-	    and:[mimeReaderClass ~~ readerClass]) ifTrue:[
-	       (mimeReaderClass isValidImageFile:fn) ifTrue:[
-		    image := mimeReaderClass fromFile:fn.
-		    image notNil ifTrue:[
-			^ image
-		    ]
-		]
-	    ]
-	].
+        "no known extension (or wrong extension)
+         - ask all readers if they know this format ...
+         ... these look into the file, and investigate the header.
+         therefore, it takes a bit longer."
+
+        MIMETypes imageReaderClasses do:[:mimeReaderClass |
+            (mimeReaderClass notNil
+            and:[mimeReaderClass ~~ readerClass]) ifTrue:[
+               (mimeReaderClass isValidImageFile:fn) ifTrue:[
+                    image := mimeReaderClass fromFile:fn.
+                    image notNil ifTrue:[
+                        ^ image
+                    ]
+                ]
+            ]
+        ].
     ].
 
     (fn exists and:[fn isReadable]) ifFalse:[
-	^ ImageNotFoundQuerySignal
-		    raiseRequestWith:fn
-		    errorString:('Image: ''' , fn pathName, ''' does not exist or is not readable').
+        ^ ImageNotFoundQuerySignal
+                    raiseRequestWith:fn
+                    errorString:('Image: ''' , fn pathName, ''' does not exist or is not readable').
     ].
 
     "nope - unknown format
@@ -1770,8 +1778,8 @@
      However, a handler may provide a replacement image."
 
     ^ BadImageFormatQuerySignal
-	raiseRequestWith:fn
-	errorString:(readersErrorMsg ? ('Image: unknown image file format: ''' , fn pathName , '''')).
+        raiseRequestWith:fn
+        errorString:(readersErrorMsg ? ('Image: unknown image file format: ''' , fn pathName , '''')).
 
     "
      Image fromFile:'bitmaps/gifImages/claus.gif' inPackage:'stx:goodies'
@@ -1791,10 +1799,10 @@
 
      Image imageNotFoundQuerySignal
      handle:[:ex |
-	Transcript showCR:ex description.
-	ex proceedWith:nil
+        Transcript showCR:ex description.
+        ex proceedWith:nil
      ] do:[
-	 Image fromFile:'fooBar'
+         Image fromFile:'fooBar'
      ]
     "
 
@@ -1803,7 +1811,7 @@
      Image imageNotFoundQuerySignal
      answer:(Image fromFile:'libtool/bitmaps/SmalltalkX.xbm')
      do:[
-	 Image fromFile:'fooBar'
+         Image fromFile:'fooBar'
      ]
     "
 
@@ -1840,7 +1848,7 @@
 
     img := self fromFile:aFileName.
     img notNil ifTrue:[
-	^ img onDevice:aDevice
+        ^ img onDevice:aDevice
     ].
     ^ nil
 
@@ -1874,14 +1882,14 @@
     "if the devices resolution is within +- 50% of dpi, no magnify is needed"
     dev := aDevice.
     dev isNil ifTrue:[
-	"should not happen ..."
-	dev := Screen current
+        "should not happen ..."
+        dev := Screen current
     ].
 
     dev notNil ifTrue:[
-	dpiH := dev horizontalPixelPerInch.
+        dpiH := dev horizontalPixelPerInch.
     ] ifFalse:[
-	dpiH := 90
+        dpiH := 90
     ].
     ((dpi >= (dpiH * 0.75)) and:[dpi <= (dpiH * 1.5)]) ifTrue:[^ img].
     mag := (dpiH / dpi) rounded.
@@ -1890,7 +1898,7 @@
 
     img := img magnifiedBy:(mag @ mag).
     aDevice notNil ifTrue:[
-	^ img onDevice:aDevice
+        ^ img onDevice:aDevice
     ].
     ^ img
 
@@ -1912,10 +1920,10 @@
      this format ...
     "
     MIMETypes imageReaderClasses do:[:readerClass |
-	readerClass notNil ifTrue:[
-	    image := readerClass fromStream:aStream.
-	    image notNil ifTrue:[^ image].
-	]
+        readerClass notNil ifTrue:[
+            image := readerClass fromStream:aStream.
+            image notNil ifTrue:[^ image].
+        ]
     ].
 
     "
@@ -1924,8 +1932,8 @@
 "/    'Image [info]: unknown image file format in stream: ' infoPrintCR.
 
     ^ ImageNotFoundQuerySignal
-		raiseRequestWith:aStream
-		errorString:('Image [warning]: unknown image file format in stream').
+                raiseRequestWith:aStream
+                errorString:('Image [warning]: unknown image file format in stream').
 
     "
      Image fromFile:'goodies/bitmaps/gifImages/claus.gif'
@@ -1966,8 +1974,8 @@
 "/    'Image [info]: unknown image file format in stream: ' infoPrintCR.
 
     ^ ImageNotFoundQuerySignal
-		raiseRequestWith:aStream
-		errorString:('Image: unknown image file format in stream').
+                raiseRequestWith:aStream
+                errorString:('Image: unknown image file format in stream').
 
     "Created: 1.2.1997 / 14:46:20 / cg"
     "Modified: 1.2.1997 / 14:48:53 / cg"
@@ -1977,10 +1985,10 @@
 
 ditherAlgorithm
     "return the way we dither -
-	#threshold, or nil        -> no dither
-	#pattern, or #ordered     -> orderedDither (ugly, but fast)
-	#error or #floydSteinberg -> errorDiffusion; much better
-	#burkes                   -> errorDiffusion; even better."
+        #threshold, or nil        -> no dither
+        #pattern, or #ordered     -> orderedDither (ugly, but fast)
+        #error or #floydSteinberg -> errorDiffusion; much better
+        #burkes                   -> errorDiffusion; even better."
 
     ^ DitherAlgorithm
 
@@ -1989,10 +1997,10 @@
 
 ditherAlgorithm:aSymbol
     "define how to dither -
-	#threshold, or nil        -> no dither
-	#pattern, or #ordered     -> orderedDither (ugly, but fast)
-	#error or #floydSteinberg -> errorDiffusion; much better
-	#burkes                   -> errorDiffusion; even better."
+        #threshold, or nil        -> no dither
+        #pattern, or #ordered     -> orderedDither (ugly, but fast)
+        #error or #floydSteinberg -> errorDiffusion; much better
+        #burkes                   -> errorDiffusion; even better."
 
     DitherAlgorithm := aSymbol
 
@@ -2016,33 +2024,33 @@
 
 orderedDitherMatrixOfSize:sz
     sz == 2 ifTrue:[
-	^ #[
-		0 2
-		3 1
-	   ].
+        ^ #[
+                0 2
+                3 1
+           ].
     ].
 
     sz == 4 ifTrue:[
-	^ #[
-		 0  8  2 10
-		12  4 14  6
-		 3 11  1  9
-		15  7 13  5
-	   ].
+        ^ #[
+                 0  8  2 10
+                12  4 14  6
+                 3 11  1  9
+                15  7 13  5
+           ].
     ].
 
     sz == 8 ifTrue:[
-	^  #[
-		0 32  8 40    2 34 10 42
-	       48 16 56 24   50 18 58 26
-	       12 44  4 36   14 46  6 38
-	       60 28 52 20   62 30 54 22
-
-		3 35 11 43    1 33  9 41
-	       51 19 59 27   49 17 57 25
-	       15 47  7 39   13 45  5 37
-	       63 31 55 23   61 29 53 21
-	    ].
+        ^  #[
+                0 32  8 40    2 34 10 42
+               48 16 56 24   50 18 58 26
+               12 44  4 36   14 46  6 38
+               60 28 52 20   62 30 54 22
+
+                3 35 11 43    1 33  9 41
+               51 19 59 27   49 17 57 25
+               15 47  7 39   13 45  5 37
+               63 31 55 23   61 29 53 21
+            ].
     ].
 
     ^ nil
@@ -2061,7 +2069,7 @@
     bitsPerRow := width * bitsPerPixel.
     paddedUnitsPerRow := bitsPerRow // padding.
     ((bitsPerRow \\ padding) ~~ 0) ifTrue:[
-	paddedUnitsPerRow := paddedUnitsPerRow + 1
+        paddedUnitsPerRow := paddedUnitsPerRow + 1
     ].
     ^ paddedUnitsPerRow * (padding // 8)
 
@@ -2200,16 +2208,16 @@
 fromScreen
     "return an image of the full screen.
      WARNING: this temporarily grabs the display
-	      it may not work from within a buttonMotion
-	      (use #fromScreen:on:grab: with a false grabArg then)."
+              it may not work from within a buttonMotion
+              (use #fromScreen:on:grab: with a false grabArg then)."
 
     |display|
 
     display := Screen current.
     ^ self
-	fromScreen:(0@0 corner:(display width @ display height))
-	on:display
-	grab:true
+        fromScreen:(0@0 corner:(display width @ display height))
+        on:display
+        grab:true
 
     "
      Image fromScreen
@@ -2222,13 +2230,13 @@
 fromScreen:aRectangle
     "return an image of a part of the screen.
      WARNING: this temporarily grabs the display
-	      it may not work from within a buttonMotion
-	      (use #fromScreen:on:grab: with a false grabArg then)."
+              it may not work from within a buttonMotion
+              (use #fromScreen:on:grab: with a false grabArg then)."
 
     ^ self
-	fromScreen:aRectangle
-	on:Screen current
-	grab:true
+        fromScreen:aRectangle
+        on:Screen current
+        grab:true
 
     "
      Image fromScreen:(0@0 corner:100@100)
@@ -2242,13 +2250,13 @@
     "return an image of a part of a screen, which may be on
      another display device.
      WARNING: this temporarily grabs the display
-	      it may not work from within a buttonMotion
-	      (use #fromScreen:on:grab: with a false grabArg then)."
+              it may not work from within a buttonMotion
+              (use #fromScreen:on:grab: with a false grabArg then)."
 
     ^ self
-	fromScreen:aRectangle
-	on:aDevice
-	grab:true
+        fromScreen:aRectangle
+        on:aDevice
+        grab:true
 
     "
      Image fromScreen:(0@0 corner:100@100)
@@ -2271,31 +2279,31 @@
      is grabbed (i.e. blocked for others) and a camera cursor is
      shown while the readout is done.
      WARNING: with doGrab true, this temporarily grabs the display
-	      and it may not work from within a buttonMotion
-	      (use with a false grabArg then)."
+              and it may not work from within a buttonMotion
+              (use with a false grabArg then)."
 
     |depth vis img tmpFile util|
 
     aDisplay supportsScreenReading ifFalse:[
-	"/ workaround: look for a helper utility in support/<os>/screenshot
-	"/ currently there is one for osx.
-	tmpFile := Filename newTemporary withSuffix:'png'.
-	util := Smalltalk packageDirectory asFilename / ('../support/',OperatingSystem getSystemType,'/screenshot').
-	util exists ifTrue:[
-	    OperatingSystem executeCommand:('%1 %2 png %3 %4 %5 %6'
-						bindWith:util pathName
-						with:tmpFile pathName
-						with:aRectangle left
-						with:aRectangle top
-						with:aRectangle width
-						with:aRectangle height).
-	    [
-		img := Image fromFile:tmpFile.
-	    ] ensure:[
-		tmpFile remove.
-	    ].
-	    ^ img.
-	].
+        "/ workaround: look for a helper utility in support/<os>/screenshot
+        "/ currently there is one for osx.
+        tmpFile := Filename newTemporary withSuffix:'png'.
+        util := Smalltalk packageDirectory asFilename / ('../support/',OperatingSystem getSystemType,'/screenshot').
+        util exists ifTrue:[
+            OperatingSystem executeCommand:('%1 %2 png %3 %4 %5 %6'
+                                                bindWith:util pathName
+                                                with:tmpFile pathName
+                                                with:aRectangle left
+                                                with:aRectangle top
+                                                with:aRectangle width
+                                                with:aRectangle height).
+            [
+                img := Image fromFile:tmpFile.
+            ] ensure:[
+                tmpFile remove.
+            ].
+            ^ img.
+        ].
     ].
 
     depth := aDisplay depth.
@@ -2307,9 +2315,9 @@
     "/
     vis := aDisplay visualType.
     (vis == #TrueColor or:[vis == #DirectColor]) ifTrue:[
-	depth > 8 ifTrue:[
-	    depth := 24.
-	]
+        depth > 8 ifTrue:[
+            depth := 24.
+        ]
     ].
 
     img := self newForDepth:depth.
@@ -2324,8 +2332,8 @@
      This is the same as #fromUser - kept for backward compatibility.
      Use #fromUser for ST-80 compatibility.
      WARNING: this temporarily grabs the display
-	      it may not work from within a buttonMotion
-	      (use #fromScreen:on:grab: with a false grabArg then)."
+              it may not work from within a buttonMotion
+              (use #fromScreen:on:grab: with a false grabArg then)."
 
     |r|
 
@@ -2347,8 +2355,8 @@
     "return an image of a part of the screen; let user specify screen area.
      Same as fromScreenArea, for ST-80 compatibility.
      WARNING: this temporarily grabs the display
-	      it may not work from within a buttonMotion
-	      (use #fromScreen:on:grab: with a false grabArg then)."
+              it may not work from within a buttonMotion
+              (use #fromScreen:on:grab: with a false grabArg then)."
 
     ^ self fromScreenArea
 
@@ -2364,16 +2372,16 @@
     "return an image taken from a views contents as currently
      on the screen. The returned image has the same depth and photometric
      as the Display.
-     Notice, that for invisible or partial covered views,
+     Notice that for invisible or partial covered views,
      the returned Image is NOT correct.
      You may want to raise the view before using this method.
      WARNING: this temporarily grabs the display
-	      it may not work from within a buttonMotion
-	      (use #fromView:grab: with a false grabArg then)."
+              it may not work from within a buttonMotion
+              (use #fromView:grab: with a false grabArg then)."
 
     ^ self
-	fromView:aView
-	grab:true
+        fromView:aView
+        grab:true
 
     "
      Image fromView:(Launcher allInstances first window topView)
@@ -2399,12 +2407,12 @@
      shown while the readout is done.
      The returned image has the same depth and photometric
      as the Display.
-     Notice, that for invisible or partial covered views,
+     Notice that for invisible or partial covered views,
      the returned Image is NOT correct.
      You may want to raise the view before using this method.
      WARNING: with doGrab true, this temporarily grabs the display
-	      and it may not work from within a buttonMotion
-	      (use with a false grabArg then)."
+              and it may not work from within a buttonMotion
+              (use with a false grabArg then)."
 
     ^ self fromView:aView grab:doGrab withDecoration:false
 
@@ -2420,12 +2428,12 @@
      shown while the readout is done.
      The returned image has the same depth and photometric
      as the Display.
-     Notice, that for invisible or partial covered views,
+     Notice that for invisible or partial covered views,
      the returned Image is NOT correct.
      You may want to raise the view before using this method.
      WARNING: with doGrab true, this temporarily grabs the display
-	      and it may not work from within a buttonMotion
-	      (use with a false grabArg then)."
+              and it may not work from within a buttonMotion
+              (use with a false grabArg then)."
 
     |org ext viewsDevice cH bW bH|
 
@@ -2433,15 +2441,15 @@
     org := viewsDevice translatePoint:(0@0) fromView:aView toView:nil.
     ext := aView extent.
     withDecoration ifTrue:[
-	viewsDevice isWindowsPlatform ifTrue:[
-	    cH := viewsDevice captionHeight.
-	    bW := (viewsDevice getSystemMetrics: #SM_CXFRAME )
-		  "+ ( device getSystemMetrics: #borderFrameWidth )".
-	    bH := (viewsDevice getSystemMetrics: #SM_CYFRAME )
-		  " + ( device getSystemMetrics: #borderFrameHeight )".
-	    org := org - (bW @ (bH + cH)).
-	    ext := ext + ((bW + bW) @ (bH+bH+cH)).
-	].
+        viewsDevice isWindowsPlatform ifTrue:[
+            cH := viewsDevice captionHeight.
+            bW := (viewsDevice getSystemMetrics: #SM_CXFRAME )
+                  "+ ( device getSystemMetrics: #borderFrameWidth )".
+            bH := (viewsDevice getSystemMetrics: #SM_CYFRAME )
+                  " + ( device getSystemMetrics: #borderFrameHeight )".
+            org := org - (bW @ (bH + cH)).
+            ext := ext + ((bW + bW) @ (bH+bH+cH)).
+        ].
     ].
     ^ self fromScreen:(org extent:ext) on:viewsDevice grab:doGrab
 
@@ -2475,13 +2483,13 @@
 
     newMap := Colormap new:anArrayOfRGBTriples size.
     anArrayOfRGBTriples doWithIndex:[:rgb :i |
-	newMap at:i putRGBTriple:rgb
+        newMap at:i putRGBTriple:rgb
     ].
     self colorMap:newMap.
 
     "
      Depth8Image new
-	colorsFromArray:#( (0.5 0.5 0.5) (0.25 0.0 0.0) (0.0 0.25 0.5))
+        colorsFromArray:#( (0.5 0.5 0.5) (0.25 0.0 0.0) (0.0 0.25 0.5))
     "
 !
 
@@ -2561,23 +2569,23 @@
     |monoBits convertedImage|
 
     aColormap size == 2 ifTrue:[
-	anImageRenderer class == OrderedDither ifTrue:[
-	    monoBits := self orderedDitheredMonochromeBits.
-	] ifFalse:[
-	    monoBits := self floydSteinbergDitheredMonochromeBits.
-	].
-	(((aColormap at:1) = Color black)
-	and:[(aColormap at:2) = Color white]) ifTrue:[
-	    "/ ok
-	] ifFalse:[
-	    (((aColormap at:1) = Color white)
-	    and:[(aColormap at:2) = Color black]) ifTrue:[
-		monoBits invert
-	    ]
-	].
-	convertedImage := Depth1Image width:width height:height fromArray:monoBits.
-	convertedImage palette:aColormap.
-	^ convertedImage
+        anImageRenderer class == OrderedDither ifTrue:[
+            monoBits := self orderedDitheredMonochromeBits.
+        ] ifFalse:[
+            monoBits := self floydSteinbergDitheredMonochromeBits.
+        ].
+        (((aColormap at:1) = Color black)
+        and:[(aColormap at:2) = Color white]) ifTrue:[
+            "/ ok
+        ] ifFalse:[
+            (((aColormap at:1) = Color white)
+            and:[(aColormap at:2) = Color black]) ifTrue:[
+                monoBits invert
+            ]
+        ].
+        convertedImage := Depth1Image width:width height:height fromArray:monoBits.
+        convertedImage palette:aColormap.
+        ^ convertedImage
     ].
 
     self error:'unimplemented operation'.
@@ -2606,13 +2614,13 @@
     |orgX orgY tW tH|
 
     origin ~= (0@0) ifTrue:[
-	self shouldImplement.
+        self shouldImplement.
     ].
     bounds ~= self bounds ifTrue:[
-	self shouldImplement.
+        self shouldImplement.
     ].
     rule ~= #over ifTrue:[
-	self shouldImplement.
+        self shouldImplement.
     ].
 
     orgX := origin x.
@@ -2620,21 +2628,21 @@
     tW := tile width.
     tH := tile height.
     (bounds top) to:(bounds bottom) by:tH do:[:dstY |
-	(bounds left) to:(bounds right) by:(tile width) do:[:dstX |
-	    self
-		copyFrom:tile
-		x:orgX y:orgY
-		toX:dstX y:dstY
-		width:tW height:tH.
-	].
+        (bounds left) to:(bounds right) by:(tile width) do:[:dstX |
+            self
+                copyFrom:tile
+                x:orgX y:orgY
+                toX:dstX y:dstY
+                width:tW height:tH.
+        ].
     ].
 !
 
 valueAtPoint:aPoint put:aColorValue
     aColorValue isInteger ifFalse:[
-	self colorAtX:aPoint x y:aPoint y put:aColorValue
+        self colorAtX:aPoint x y:aPoint y put:aColorValue
     ] ifTrue:[
-	self pixelAtX:aPoint x y:aPoint y put:aColorValue
+        self pixelAtX:aPoint x y:aPoint y put:aColorValue
     ]
 ! !
 
@@ -2762,32 +2770,32 @@
     sameColors := false.
 
     photometric == #palette ifTrue:[
-	"/ any change at all ?
-	(newSize := aColorMap size) >= (oldSize := colorMap size) ifTrue:[
-	    sameColors := true.
-
-	    1 to:oldSize do:[:idx |
-		(aColorMap at:idx) = (colorMap at:idx) ifFalse:[
-		    sameColors := false.
-		]
-	    ].
-	].
+        "/ any change at all ?
+        (newSize := aColorMap size) >= (oldSize := colorMap size) ifTrue:[
+            sameColors := true.
+
+            1 to:oldSize do:[:idx |
+                (aColorMap at:idx) = (colorMap at:idx) ifFalse:[
+                    sameColors := false.
+                ]
+            ].
+        ].
     ].
 
     self setColorMap:aColorMap.
     sameColors ifTrue:[
-	^ self
+        ^ self
     ].
 
     colorMap notNil ifTrue:[
-	photometric := #palette.
+        photometric := #palette.
     ] ifFalse:[
-	(photometric == #palette) ifTrue:[
-	    photometric := #blackIs0
-	]
+        (photometric == #palette) ifTrue:[
+            photometric := #blackIs0
+        ]
     ].
     deviceForm notNil ifTrue:[
-	self release
+        self release
     ]
 
     "Modified: / 31.8.1995 / 03:05:59 / claus"
@@ -2797,7 +2805,7 @@
 colorMapFromArray: anArray
     "set the colorMap by reading colors from an array with rgb-byte values.
      The (byte-)Array argument should be of the form:
-	#( red0 green0 blue0  red1 green1 blue1 ... redN greenN blueN)
+        #( red0 green0 blue0  red1 green1 blue1 ... redN greenN blueN)
      where each component must be a byteValue in 0..255."
 
     self colorMap:(MappedPalette rgbBytesVector:anArray)
@@ -2806,7 +2814,7 @@
 colorMapFromRGBValueArray:anArray
     "set the colorMap by reading colors from an array with rgb-integer values.
      The (integer-)Array argument should be of the form:
-	#( rgb0 rgb1  ... rgbN)
+        #( rgb0 rgb1  ... rgbN)
      where each element must be an rgbValue in 0..FFFFFF."
 
     self colorMap:(MappedPalette rgbValueVector:anArray)
@@ -2912,16 +2920,16 @@
      (it is planned to support alpha information in a Depth8 maskImage in
       the near future).
      For depth1 masks: each pixel of the image where a corresponding
-		       1-bit is present in the mask will be drawn;
-		       0-bit mask pixels lead to transparent pixels.
+                       1-bit is present in the mask will be drawn;
+                       0-bit mask pixels lead to transparent pixels.
 
      For depth8 masks: (future):
-		       each pixel specifies the alpha value (0..255),
-		       which specifies the transparency of that pixel.
-		       0 means completely transparent, 255 means completely
-		       opaque. The 1-plane mask is a special case of this,
-		       interpreting a 0 as a 0 alpha value and 1's as an
-		       alpha value of 255."
+                       each pixel specifies the alpha value (0..255),
+                       which specifies the transparency of that pixel.
+                       0 means completely transparent, 255 means completely
+                       opaque. The 1-plane mask is a special case of this,
+                       interpreting a 0 as a 0 alpha value and 1's as an
+                       alpha value of 255."
 
     mask := anotherImage.
     maskedPixelsAre0 := false.
@@ -3003,9 +3011,9 @@
 
 setColorMap:aColorMap
     (aColorMap isNil or:[aColorMap isKindOf:Colormap]) ifFalse:[
-	colorMap := MappedPalette withColors:aColorMap
+        colorMap := MappedPalette withColors:aColorMap
     ] ifTrue:[
-	colorMap := aColorMap
+        colorMap := aColorMap
     ]
 !
 
@@ -3071,18 +3079,18 @@
     |maskVal|
 
     (aColorOrPixelOrNil notNil and:[aColorOrPixelOrNil ~= Color noColor]) ifTrue:[
-	maskVal := 1.
-	aColorOrPixelOrNil isInteger ifTrue:[
-	    self pixelAt:aPoint put:aColorOrPixelOrNil.
-	] ifFalse:[
-	    self colorAt:aPoint put:aColorOrPixelOrNil
-	]
+        maskVal := 1.
+        aColorOrPixelOrNil isInteger ifTrue:[
+            self pixelAt:aPoint put:aColorOrPixelOrNil.
+        ] ifFalse:[
+            self colorAt:aPoint put:aColorOrPixelOrNil
+        ]
     ] ifFalse:[
-	maskVal := 0.
-	self pixelAt:aPoint put:0.
+        maskVal := 0.
+        self pixelAt:aPoint put:0.
     ].
     mask notNil ifTrue:[
-	mask pixelAt:aPoint put:maskVal
+        mask pixelAt:aPoint put:maskVal
     ].
 
     "Modified: / 30.9.1998 / 22:42:44 / cg"
@@ -3096,14 +3104,14 @@
     |pixVal maskVal|
 
     aPixelValueOrNil notNil ifTrue:[
-	pixVal := aPixelValueOrNil.
-	maskVal := 1.
+        pixVal := aPixelValueOrNil.
+        maskVal := 1.
     ] ifFalse:[
-	pixVal := 0.
-	maskVal := 0.
+        pixVal := 0.
+        maskVal := 0.
     ].
     mask notNil ifTrue:[
-	mask pixelAt:aPoint put:maskVal
+        mask pixelAt:aPoint put:maskVal
     ].
     self pixelAt:aPoint put:pixVal
 
@@ -3196,18 +3204,67 @@
      4 pixels per byte."
 
     bytes isNil ifTrue:[
-	pixelFunction notNil ifTrue:[
-	    self createPixelStore.
-	    0 to:height-1 do:[:y |
-		0 to:width-1 do:[:x |
-		    self pixelAtX:x y:y put:(pixelFunction value:x value:y)
-		].
-	    ].
-	].
+        pixelFunction notNil ifTrue:[
+            self createPixelStore.
+            0 to:height-1 do:[:y |
+                0 to:width-1 do:[:x |
+                    self pixelAtX:x y:y put:(pixelFunction value:x value:y)
+                ].
+            ].
+        ].
     ].
     ^ bytes
 !
 
+colAt:x into:aPixelBuffer
+    "fill aBuffer with pixel values retrieved from a single column.
+     (eg. a vertical span)    
+     Notice: row/column coordinates start at 0."
+
+    ^ self colAt:x into:aPixelBuffer startingAt:1
+!
+
+colAt:x into:aPixelBuffer startingAt:startIndex
+    "fill aBuffer with pixel values retrieved from a single column.
+     (eg. a vertical span)    
+     Notice: row/column coordinates start at 0.
+     This is a slow fallBack method, which works with any depth;
+     concrete image subclasses should redefine this for more performance."
+
+    |h "{ Class: SmallInteger }"|
+
+    h := height-1.    
+    0 to:h do:[:row |
+        aPixelBuffer at:(row + startIndex) put:(self pixelAtX:x y:row)
+    ].
+!
+
+colAt:x putAll:pixelArray
+    "store a single column's pixels from bits in the argument;
+     (eg. a vertical span)    
+     Notice: row/column coordinates start at 0.
+     This is a slow fallBack method, which works with any depth;
+     concrete image subclasses should redefine this for more performance."
+
+    ^ self colAt:x putAll:pixelArray startingAt:1
+!
+
+colAt:x putAll:pixelArray startingAt:startIndex
+    "store a single row's pixels from bits in the pixelArray argument.
+     (eg. a vertical span)    
+     Notice: row/column coordinates start at 0.
+     This is a slow fallBack method, which works with any depth;
+     concrete image subclasses should redefine this for more performance."
+
+    |h "{ Class: SmallInteger }"|
+
+    h := height-1.
+    0 to:h do:[:row |
+        self pixelAtX:x y:row put:(pixelArray at:(row + startIndex))
+    ].
+    ^ pixelArray
+!
+
 colorAt:aPoint
     "retrieve a pixel at x/y; return a color.
      Pixels start at 0@0 for upper left pixel, end at
@@ -3256,7 +3313,7 @@
 
     pixel := self valueFromColor:aColor.
     pixel isNil ifTrue:[
-	^ UnrepresentableColorSignal raiseErrorString:'cannot store color - not in colormap'.
+        ^ UnrepresentableColorSignal raiseErrorString:'cannot store color - not in colormap'.
     ].
     self pixelAtX:x y:y put:pixel.
 
@@ -3313,8 +3370,8 @@
      0 for masked pixels (invisible), 1 for unmasked (visible)."
 
     mask isNil ifTrue:[
-	maskValue == 1 ifTrue:[^ self].
-	self error:'image has no mask'.
+        maskValue == 1 ifTrue:[^ self].
+        self error:'image has no mask'.
     ].
 
     ^ mask pixelAtX:x y:y put:maskValue
@@ -3349,13 +3406,13 @@
 !
 
 pixelAtX:x y:y
-    "retrieve the pixelValue at aPoint; return an integer number.
+    "retrieve the pixelValue at aPoint; return a pixel (an integer number).
      Pixels start at 0/0 for upper left pixel, and end at
      width-1@height-1 for lower right pixel.
-     The returned numbers interpretation depends on the photometric
+     The returned number's interpretation depends on the photometric
      and the colormap. (see also Image>>at: and Image>>atX:y:)
      You should not use this method for image-processing of
-     big images, its very slow ...
+     big images, it's very slow ...
      (it is meant to access individual pixels - for example, in a bitmap editor)"
 
     pixelFunction notNil ifTrue:[^ pixelFunction value:x value:y].
@@ -3407,9 +3464,9 @@
 !
 
 rowAt:y
-    "retrieve an array filled with pixel values from
-     a single row.
-     Notice: row coordinate starts at 0.
+    "retrieve an array filled with pixel values from a single row.
+     (eg. a horizontal span)    
+     Notice: row/column coordinates start at 0.
      This is a slow fallBack method, which works with any depth;
      concrete image subclasses should redefine this for more performance."
 
@@ -3437,7 +3494,8 @@
 
 rowAt:y into:aPixelBuffer
     "fill aBuffer with pixel values retrieved from a single row.
-     Notice: row coordinate starts at 0."
+     (eg. a horizontal span)    
+     Notice: row/column coordinates start at 0."
 
     ^ self rowAt:y into:aPixelBuffer startingAt:1
 
@@ -3447,7 +3505,8 @@
 
 rowAt:y into:aPixelBuffer startingAt:startIndex
     "fill aBuffer with pixel values retrieved from a single row.
-     Notice: row coordinate starts at 0.
+     (eg. a horizontal span)    
+     Notice: row/column coordinates start at 0.
      This is a slow fallBack method, which works with any depth;
      concrete image subclasses should redefine this for more performance."
 
@@ -3455,7 +3514,7 @@
 
     w := width-1.
     0 to:w do:[:col |
-	aPixelBuffer at:(col + startIndex) put:(self pixelAtX:col y:y)
+        aPixelBuffer at:(col + startIndex) put:(self pixelAtX:col y:y)
     ].
 
     "Created: 24.4.1997 / 15:05:21 / cg"
@@ -3463,8 +3522,9 @@
 !
 
 rowAt:y putAll:pixelArray
-    "store a single rows pixels from bits in the argument;
-     Notice: row coordinate starts at 0.
+    "store a single row's pixels from bits in the argument;
+     (eg. a horizontal span)    
+     Notice: row/column coordinates start at 0.
      This is a slow fallBack method, which works with any depth;
      concrete image subclasses should redefine this for more performance."
 
@@ -3474,9 +3534,9 @@
 !
 
 rowAt:y putAll:pixelArray startingAt:startIndex
-    "store a single rows pixels from bits in the pixelArray argument;
-     return the pixelArray.
-     Notice: row coordinate starts at 0.
+    "store a single row's pixels from bits in the pixelArray argument;
+     (eg. a horizontal span)    
+     Notice: row/column coordinates start at 0.
      This is a slow fallBack method, which works with any depth;
      concrete image subclasses should redefine this for more performance."
 
@@ -3484,7 +3544,7 @@
 
     w := width-1.
     0 to:w do:[:col |
-	self pixelAtX:col y:y put:(pixelArray at:(col + startIndex))
+        self pixelAtX:col y:y put:(pixelArray at:(col + startIndex))
     ].
     ^ pixelArray
 
@@ -3555,15 +3615,15 @@
     "/ please edit the image in the image editor and save it back.
 
     (width notNil and:[height notNil and:[(d := self depth) notNil]]) ifTrue:[
-	(d <= 8) ifTrue:[
-	    expectedSize := (self bytesPerRow * height).
-	    bytes size < expectedSize ifTrue:[
-		Smalltalk isSmalltalkDevelopmentSystem ifTrue:[
-		    self breakPoint:#cg info:'invalid bytearray size'.
-		].
-		bytes := (ByteArray new:expectedSize) replaceFrom:1 with:bytes; yourself.
-	    ].
-	].
+        (d <= 8) ifTrue:[
+            expectedSize := (self bytesPerRow * height).
+            bytes size < expectedSize ifTrue:[
+                Smalltalk isSmalltalkDevelopmentSystem ifTrue:[
+                    self breakPoint:#cg info:'invalid bytearray size'.
+                ].
+                bytes := (ByteArray new:expectedSize) replaceFrom:1 with:bytes; yourself.
+            ].
+        ].
     ].
 
     "Modified: 23.4.1996 / 11:08:28 / cg"
@@ -3643,17 +3703,17 @@
     "/ Prevents writers to do what is described above.
     "/ Do not remove, as you might not understand it!!
     bitsPerSample :=
-	#(
-	    #[ 8 8 8 ]
-	    #[ 4 4 4 ]
-	    #[ 8 ]
-	    #[ 4 ]
-	    #[ 2 ]
-	    #[ 1 ]
-	) detect:[:bps | bps sameContentsAs:aCollection] ifNone:[aCollection asByteArray].
+        #(
+            #[ 8 8 8 ]
+            #[ 4 4 4 ]
+            #[ 8 ]
+            #[ 4 ]
+            #[ 2 ]
+            #[ 1 ]
+        ) detect:[:bps | bps sameContentsAs:aCollection] ifNone:[aCollection asByteArray].
 
     samplesPerPixel isNil ifTrue:[
-	samplesPerPixel := bitsPerSample size.
+        samplesPerPixel := bitsPerSample size.
     ].
 
     "Modified: 23.4.1996 / 11:08:31 / cg"
@@ -3669,22 +3729,22 @@
     depth := self depth.
     "/ bitsPerPixel := d.
     d == 24 ifTrue:[
-	samplesPerPixel := 3.
-	bitsPerSample := #(8 8 8)
+        samplesPerPixel := 3.
+        bitsPerSample := #(8 8 8)
     ] ifFalse:[
-	d == 32 ifTrue:[
-	    samplesPerPixel := 4.
-	    bitsPerSample := #(8 8 8 8)
-	] ifFalse:[
-	    d == 16 ifTrue:[
-		samplesPerPixel := 3.
-		bitsPerSample := #(5 5 5).
-		"/ bitsPerPixel := 15.
-	    ] ifFalse:[
-		samplesPerPixel := 1.
-		bitsPerSample := ByteArray with:d
-	    ]
-	]
+        d == 32 ifTrue:[
+            samplesPerPixel := 4.
+            bitsPerSample := #(8 8 8 8)
+        ] ifFalse:[
+            d == 16 ifTrue:[
+                samplesPerPixel := 3.
+                bitsPerSample := #(5 5 5).
+                "/ bitsPerPixel := 15.
+            ] ifFalse:[
+                samplesPerPixel := 1.
+                bitsPerSample := ByteArray with:d
+            ]
+        ]
     ]
 
     "Modified: / 27-05-2007 / 16:59:47 / cg"
@@ -3722,7 +3782,7 @@
 photometric:aSymbol
     "set the photometric interpretation of the pixel values.
      The argument, aSymbol is one of:
-	#blackIs0, #whiteIs0, #palette, #rgb
+        #blackIs0, #whiteIs0, #palette, #rgb
      See TIFF documentation, from which the photometric concept is borrowed.
 
      This interface is only to be used when initializing
@@ -3733,19 +3793,19 @@
 
     photometric := aSymbol.
     bitsPerSample isNil ifTrue:[
-	photometric == #rgb ifTrue:[
-	    b := self class imageDepth // 3.
-	    bitsPerSample := ByteArray with:b with:b with:b
-	] ifFalse:[
-	    bitsPerSample := ByteArray with:(self class imageDepth)
-	].
+        photometric == #rgb ifTrue:[
+            b := self class imageDepth // 3.
+            bitsPerSample := ByteArray with:b with:b with:b
+        ] ifFalse:[
+            bitsPerSample := ByteArray with:(self class imageDepth)
+        ].
     ].
     samplesPerPixel isNil ifTrue:[
-	photometric == #rgb ifTrue:[
-	    samplesPerPixel := 3
-	] ifFalse:[
-	    samplesPerPixel := 1
-	]
+        photometric == #rgb ifTrue:[
+            samplesPerPixel := 3
+        ] ifFalse:[
+            samplesPerPixel := 1
+        ]
     ].
 
     "Modified: 10.6.1996 / 18:21:29 / cg"
@@ -3829,9 +3889,9 @@
     self depth:d.
     self setColorMap:aColormap.
     aColormap notNil ifTrue:[
-	photometric := #palette
+        photometric := #palette
     ] ifFalse:[
-	photometric := #blackIs0
+        photometric := #blackIs0
     ].
 
     "Modified: 23.4.1996 / 11:08:56 / cg"
@@ -3860,14 +3920,14 @@
      existing image may confuse later pixel interpretation."
 
     ^ self
-	width:w
-	height:h
-	photometric:p
-	samplesPerPixel:spp
-	bitsPerSample:bps
-	colorMap:cm
-	bits:pixels
-	mask:nil
+        width:w
+        height:h
+        photometric:p
+        samplesPerPixel:spp
+        bitsPerSample:bps
+        colorMap:cm
+        bits:pixels
+        mask:nil
 
     "Modified: 20.6.1996 / 17:10:24 / cg"
 !
@@ -3922,19 +3982,19 @@
     colorValues := Array uninitializedNew:nColors.
 
     0 to:nColors-1 do:[:pixel |
-	|clr rv gv bv v "{ Class: SmallInteger }" |
-
-	clr := self colorFromValue:pixel.
-
-	rv := (clr red * scaleRed) rounded.
-	gv := (clr green * scaleGreen) rounded.
-	bv := (clr blue * scaleBlue) rounded.
-
-	v := rv bitShift:redShift.
-	v := v bitOr:(gv bitShift:greenShift).
-	v := v bitOr:(bv bitShift:blueShift).
-
-	colorValues at:(pixel+1) put:v.
+        |clr rv gv bv v "{ Class: SmallInteger }" |
+
+        clr := self colorFromValue:pixel.
+
+        rv := (clr red * scaleRed) rounded.
+        gv := (clr green * scaleGreen) rounded.
+        bv := (clr blue * scaleBlue) rounded.
+
+        v := rv bitShift:redShift.
+        v := v bitOr:(gv bitShift:greenShift).
+        v := v bitOr:(bv bitShift:blueShift).
+
+        colorValues at:(pixel+1) put:v.
 "/ clr print. ' ' print.
 "/ rv print. ' ' print. gv print. ' ' print. bv print. ' ' print.
 "/ ' -> ' print. v printNL.
@@ -3951,7 +4011,7 @@
     "return a burkes dithered monochrome image from the receiver image.
      Depending on the images contents, this may or may not look better than
      a floyd-steinberg dithered image.
-     Notice, that floyd-steinberg dithering is faster; both because less
+     Notice that floyd-steinberg dithering is faster; both because less
      error diffusion is done and due to being specially tuned."
 
     |monoBits|
@@ -3983,14 +4043,14 @@
      |i|
 
      i := Depth4Image
-	     width:4
-	     height:4
-	     fromArray:#[
-			    16r01 16r23
-			    16r45 16r67
-			    16r89 16rab
-			    16rcd 16ref
-			].
+             width:4
+             height:4
+             fromArray:#[
+                            16r01 16r23
+                            16r45 16r67
+                            16r89 16rab
+                            16rcd 16ref
+                        ].
      i := i magnifiedBy:30.
      i inspect.
      i asFloydSteinbergDitheredMonochromeImage inspect.
@@ -4017,7 +4077,7 @@
 
     newBits := self floydSteinbergDitheredDepth8BitsColors:colors map:(0 to:colors size - 1).
     newBits isNil ifTrue:[
-	self error:'dithering failed'
+        self error:'dithering failed'
     ].
     ^ (self class newForDepth:d) extent:(self extent); depth:d; palette:colors; bits:newBits
 
@@ -4027,10 +4087,10 @@
     "return an error-diffusion dithered monochrome image from the receiver image."
 
     DitherAlgorithm == #burkes ifTrue:[
-	^ self asBurkesDitheredMonochromeImage
+        ^ self asBurkesDitheredMonochromeImage
     ].
     DitherAlgorithm == #stevensonArce ifTrue:[
-	^ self asStevensonArceDitheredMonochromeImage
+        ^ self asStevensonArceDitheredMonochromeImage
     ].
     ^ self asFloydSteinbergDitheredMonochromeImage
 
@@ -4056,14 +4116,14 @@
      |i|
 
      i := Depth4Image
-	     width:4
-	     height:4
-	     fromArray:#[
-			    16r01 16r23
-			    16r45 16r67
-			    16r89 16rab
-			    16rcd 16ref
-			].
+             width:4
+             height:4
+             fromArray:#[
+                            16r01 16r23
+                            16r45 16r67
+                            16r89 16rab
+                            16rcd 16ref
+                        ].
      i := i magnifiedBy:30.
      i inspect.
      i asErrorDitheredMonochromeImage inspect.
@@ -4084,9 +4144,9 @@
 
     deviceDepth := aDevice depth.
     deviceDepth == 8 ifFalse:[
-	(aDevice supportedImageFormatForDepth:8) isNil ifTrue:[
-	    ^ nil.
-	]
+        (aDevice supportedImageFormatForDepth:8) isNil ifTrue:[
+            ^ nil.
+        ]
     ].
 
     pseudoBits := self floydSteinbergDitheredDepth8BitsColors:fixColors.
@@ -4101,51 +4161,51 @@
     "/
     map := Array new:256.
     fixColors do:[:clr |
-	map at:clr colorId + 1 put:clr
+        map at:clr colorId + 1 put:clr
     ].
     f colorMap:map.
     f initGC.
     f bits:pseudoBits.
     aDevice
-	drawBits:pseudoBits
-	bitsPerPixel:8
-	depth:deviceDepth
-	padding:8
-	width:width height:height
-	x:0 y:0
-	into:(f id) x:0 y:0
-	width:width height:height
-	with:(f gcId).
+        drawBits:pseudoBits
+        bitsPerPixel:8
+        depth:deviceDepth
+        padding:8
+        width:width height:height
+        x:0 y:0
+        into:(f id) x:0 y:0
+        width:width height:height
+        with:(f gcId).
     ^ f
 
     "
      example:
-	color reduction from Depth8 to Depth4 (dithering) can be done by:
+        color reduction from Depth8 to Depth4 (dithering) can be done by:
 
      |img8 reducedImg8 img4 map form|
 
      map := #(
-		  (0     0   0)
-		  (0     0 100)
-		  (0    50   0)
-		  (0    50 100)
-		  (0   100   0)
-		  (0   100 100)
-		  (100   0   0)
-		  (100   0 100)
-		  (100  50   0)
-		  (100  50 100)
-		  (100 100   0)
-		  (100 100 100)) collect:[:rgb | (Color red:(rgb at:1)
-						      green:(rgb at:2)
-						       blue:(rgb at:3)) onDevice:Display].
+                  (0     0   0)
+                  (0     0 100)
+                  (0    50   0)
+                  (0    50 100)
+                  (0   100   0)
+                  (0   100 100)
+                  (100   0   0)
+                  (100   0 100)
+                  (100  50   0)
+                  (100  50 100)
+                  (100 100   0)
+                  (100 100 100)) collect:[:rgb | (Color red:(rgb at:1)
+                                                      green:(rgb at:2)
+                                                       blue:(rgb at:3)) onDevice:Display].
 
      img8 := Image fromFile:'goodies/bitmaps/bf.im8'.
      form := img8 paletteImageAsDitheredPseudoFormOn:Display
-		      colors:map
-			nRed:2
-		      nGreen:3
-		       nBlue:2.
+                      colors:map
+                        nRed:2
+                      nGreen:3
+                       nBlue:2.
      img8 := Depth8Image fromForm:form.    'dithered version of original image'.
      img4 := Depth4Image fromImage:img8.
     "
@@ -4167,9 +4227,9 @@
 
     deviceDepth := aDevice depth.
     deviceDepth == 8 ifFalse:[
-	(aDevice supportedImageFormatForDepth:8) isNil ifTrue:[
-	    ^ nil
-	]
+        (aDevice supportedImageFormatForDepth:8) isNil ifTrue:[
+            ^ nil
+        ]
     ].
 
     pseudoBits := self floydSteinbergDitheredDepth8BitsColors:fixColors nRed:nRed nGreen:nGreen nBlue:nBlue.
@@ -4184,51 +4244,51 @@
     "/
     map := Array new:256.
     fixColors do:[:clr |
-	map at:clr colorId + 1 put:clr
+        map at:clr colorId + 1 put:clr
     ].
     f colorMap:map.
     f initGC.
     f bits:pseudoBits.
     aDevice
-	drawBits:pseudoBits
-	bitsPerPixel:8
-	depth:deviceDepth
-	padding:8
-	width:width height:height
-	x:0 y:0
-	into:(f id) x:0 y:0
-	width:width height:height
-	with:(f gcId).
+        drawBits:pseudoBits
+        bitsPerPixel:8
+        depth:deviceDepth
+        padding:8
+        width:width height:height
+        x:0 y:0
+        into:(f id) x:0 y:0
+        width:width height:height
+        with:(f gcId).
     ^ f
 
     "
      example:
-	color reduction from Depth8 to Depth4 (dithering) can be done by:
+        color reduction from Depth8 to Depth4 (dithering) can be done by:
 
      |img8 reducedImg8 img4 map form|
 
      map := #(
-		  (0     0   0)
-		  (0     0 100)
-		  (0    50   0)
-		  (0    50 100)
-		  (0   100   0)
-		  (0   100 100)
-		  (100   0   0)
-		  (100   0 100)
-		  (100  50   0)
-		  (100  50 100)
-		  (100 100   0)
-		  (100 100 100)) collect:[:rgb | (Color red:(rgb at:1)
-						      green:(rgb at:2)
-						       blue:(rgb at:3)) onDevice:Display].
+                  (0     0   0)
+                  (0     0 100)
+                  (0    50   0)
+                  (0    50 100)
+                  (0   100   0)
+                  (0   100 100)
+                  (100   0   0)
+                  (100   0 100)
+                  (100  50   0)
+                  (100  50 100)
+                  (100 100   0)
+                  (100 100 100)) collect:[:rgb | (Color red:(rgb at:1)
+                                                      green:(rgb at:2)
+                                                       blue:(rgb at:3)) onDevice:Display].
 
      img8 := Image fromFile:'goodies/bitmaps/bf.im8'.
      form := img8 paletteImageAsDitheredPseudoFormOn:Display
-		      colors:map
-			nRed:2
-		      nGreen:3
-		       nBlue:2.
+                      colors:map
+                        nRed:2
+                      nGreen:3
+                       nBlue:2.
      img8 := Depth8Image fromForm:form.    'dithered version of original image'.
      img4 := Depth4Image fromImage:img8.
     "
@@ -4244,12 +4304,12 @@
     depth := aDevice depth.
     (depth == 1
     or:[aDevice hasGrayscales not]) ifTrue:[
-	"/ for monochrome, there is specialized
-	"/ monochrome dither code available
-
-	bits := self floydSteinbergDitheredMonochromeBits.
+        "/ for monochrome, there is specialized
+        "/ monochrome dither code available
+
+        bits := self floydSteinbergDitheredMonochromeBits.
     ] ifFalse:[
-	bits := self floydSteinbergDitheredGrayBitsDepth:depth.
+        bits := self floydSteinbergDitheredGrayBitsDepth:depth.
     ].
 
     ^ self makeDeviceGrayPixmapOn:aDevice depth:depth fromArray:bits
@@ -4278,12 +4338,12 @@
     |ditheredBits|
 
     (depth == 1) ifTrue:[
-	^ self asFloydSteinbergDitheredMonochromeImage
+        ^ self asFloydSteinbergDitheredMonochromeImage
     ].
 
     ditheredBits := self floydSteinbergDitheredGrayBitsDepth:depth.
     ^ (self class implementorForDepth:depth)
-	width:width height:height fromArray:ditheredBits
+        width:width height:height fromArray:ditheredBits
 
     "
      |i|
@@ -4299,11 +4359,11 @@
      |i|
 
      i := Depth24Image width:4 height:1
-	  fromArray:#[
-	    16rFF 16r00 16r00   16rFF 16r00 16r00  16rFF 16r00 16r00  16rFF 16r00 16r00
-	    16rFF 16r00 16r00   16rFF 16r00 16r00  16rFF 16r00 16r00  16rFF 16r00 16r00
-	    16rFF 16r00 16r00   16rFF 16r00 16r00  16rFF 16r00 16r00  16rFF 16r00 16r00
-	    16rFF 16r00 16r00   16rFF 16r00 16r00  16rFF 16r00 16r00  16rFF 16r00 16r00].
+          fromArray:#[
+            16rFF 16r00 16r00   16rFF 16r00 16r00  16rFF 16r00 16r00  16rFF 16r00 16r00
+            16rFF 16r00 16r00   16rFF 16r00 16r00  16rFF 16r00 16r00  16rFF 16r00 16r00
+            16rFF 16r00 16r00   16rFF 16r00 16r00  16rFF 16r00 16r00  16rFF 16r00 16r00
+            16rFF 16r00 16r00   16rFF 16r00 16r00  16rFF 16r00 16r00  16rFF 16r00 16r00].
      i := i magnifiedBy:4@1.
      i inspect.
 
@@ -4316,13 +4376,13 @@
      |i|
 
      i := Depth24Image width:4 height:6
-	  fromArray:#[
-	    16r00 16r00 16r00   16r00 16r00 16r80  16r00 16r00 16rff  16r00 16r80 16r00
-	    16r00 16r80 16r80   16r00 16rFF 16r00  16r00 16rFF 16r80  16r00 16rFF 16rFF
-	    16r80 16r00 16r00   16r80 16r00 16r80  16r80 16r00 16rff  16r80 16r80 16r00
-	    16r80 16r80 16r80   16r80 16rFF 16r00  16r80 16rFF 16r80  16r80 16rFF 16rFF
-	    16rFF 16r00 16r00   16rFF 16r00 16r80  16rFF 16r00 16rff  16rFF 16r80 16r00
-	    16rFF 16r80 16r80   16rFF 16rFF 16r00  16rFF 16rFF 16r80  16rFF 16rFF 16rFF].
+          fromArray:#[
+            16r00 16r00 16r00   16r00 16r00 16r80  16r00 16r00 16rff  16r00 16r80 16r00
+            16r00 16r80 16r80   16r00 16rFF 16r00  16r00 16rFF 16r80  16r00 16rFF 16rFF
+            16r80 16r00 16r00   16r80 16r00 16r80  16r80 16r00 16rff  16r80 16r80 16r00
+            16r80 16r80 16r80   16r80 16rFF 16r00  16r80 16rFF 16r80  16r80 16rFF 16rFF
+            16rFF 16r00 16r00   16rFF 16r00 16r80  16rFF 16r00 16rff  16rFF 16r80 16r00
+            16rFF 16r80 16r80   16rFF 16rFF 16r00  16rFF 16rFF 16r80  16rFF 16rFF 16rFF].
      i := i magnifiedBy:30.
      i inspect.
 
@@ -4354,14 +4414,14 @@
      |i|
 
      i := Depth4Image
-	     width:4
-	     height:4
-	     fromArray:#[
-			    16r01 16r23
-			    16r45 16r67
-			    16r89 16rab
-			    16rcd 16ref
-			].
+             width:4
+             height:4
+             fromArray:#[
+                            16r01 16r23
+                            16r45 16r67
+                            16r89 16rab
+                            16rcd 16ref
+                        ].
      i := i magnifiedBy:30.
      i inspect.
      (i asFloydSteinbergDitheredGrayImageDepth:1) inspect.
@@ -4392,16 +4452,16 @@
      |i f|
 
      i := Depth2Image width:8 height:8
-	  fromArray:#[
-			4r0000 4r0000
-			4r0000 4r0000
-			4r1111 4r1111
-			4r1111 4r1111
-			4r2222 4r2222
-			4r2222 4r2222
-			4r3333 4r3333
-			4r3333 4r3333
-		     ].
+          fromArray:#[
+                        4r0000 4r0000
+                        4r0000 4r0000
+                        4r1111 4r1111
+                        4r1111 4r1111
+                        4r2222 4r2222
+                        4r2222 4r2222
+                        4r3333 4r3333
+                        4r3333 4r3333
+                     ].
      (i asFloydSteinbergDitheredMonochromeFormOn:Display) inspect.
     "
 
@@ -4441,14 +4501,14 @@
      |i|
 
      i := Depth4Image
-	     width:4
-	     height:4
-	     fromArray:#[
-			    16r01 16r23
-			    16r45 16r67
-			    16r89 16rab
-			    16rcd 16ref
-			].
+             width:4
+             height:4
+             fromArray:#[
+                            16r01 16r23
+                            16r45 16r67
+                            16r89 16rab
+                            16rcd 16ref
+                        ].
      i := i magnifiedBy:30.
      i inspect.
      i asFloydSteinbergDitheredMonochromeImage inspect.
@@ -4468,22 +4528,22 @@
 
     deviceDepth := aDevice depth.
     has8BitImage := (deviceDepth == 8)
-		    or:[ (aDevice supportedImageFormatForDepth:8) notNil ].
+                    or:[ (aDevice supportedImageFormatForDepth:8) notNil ].
 
     has8BitImage ifFalse:[
-	deviceDepth == 4 ifFalse:[^ nil].
-
-	pseudoBits8 := self nfloydSteinbergDitheredDepth8BitsColors:colors.
-	pseudoBits8 isNil ifTrue:[^ nil].
-	"/ convert to devices depth
-
-	pseudoBits := ByteArray new:(width*4+7//8 * height).
-	pseudoBits8 compressPixels:4 width:width height:height into:pseudoBits mapping:nil.
-	d := 4.
+        deviceDepth == 4 ifFalse:[^ nil].
+
+        pseudoBits8 := self nfloydSteinbergDitheredDepth8BitsColors:colors.
+        pseudoBits8 isNil ifTrue:[^ nil].
+        "/ convert to devices depth
+
+        pseudoBits := ByteArray new:(width*4+7//8 * height).
+        pseudoBits8 compressPixels:4 width:width height:height into:pseudoBits mapping:nil.
+        d := 4.
     ] ifTrue:[
-	pseudoBits := self nfloydSteinbergDitheredDepth8BitsColors:colors.
-	pseudoBits isNil ifTrue:[^ nil].
-	d := 8.
+        pseudoBits := self nfloydSteinbergDitheredDepth8BitsColors:colors.
+        pseudoBits isNil ifTrue:[^ nil].
+        d := 8.
     ].
 
     f := Form width:width height:height depth:deviceDepth onDevice:aDevice.
@@ -4495,23 +4555,23 @@
     "/
     map := Array new:256 withAll:0.
     colors do:[:clr |
-	clr notNil ifTrue:[
-	    map at:clr colorId + 1 put:clr
-	]
+        clr notNil ifTrue:[
+            map at:clr colorId + 1 put:clr
+        ]
     ].
     f colorMap:map.
     f initGC.
     f bits:pseudoBits.
     aDevice
-	drawBits:pseudoBits
-	bitsPerPixel:d
-	depth:deviceDepth
-	padding:8
-	width:width height:height
-	x:0 y:0
-	into:(f id) x:0 y:0
-	width:width height:height
-	with:(f gcId).
+        drawBits:pseudoBits
+        bitsPerPixel:d
+        depth:deviceDepth
+        padding:8
+        width:width height:height
+        x:0 y:0
+        into:(f id) x:0 y:0
+        width:width height:height
+        with:(f gcId).
     ^ f
 
     "
@@ -4540,70 +4600,70 @@
     ((aDevice == device) and:[deviceForm notNil]) ifTrue:[^ deviceForm].
 
     mask notNil ifTrue:[
-	mask := mask onDevice:aDevice
+        mask := mask onDevice:aDevice
     ].
     bytes isNil ifTrue:[
-	pixelFunction notNil ifTrue:[
-	    self computeBitsFromPixelFunction.
-	]
+        pixelFunction notNil ifTrue:[
+            self computeBitsFromPixelFunction.
+        ]
     ].
 
     (aDevice depth == 1
     or:[aDevice hasGrayscales not]) ifTrue:[
-	form := self asMonochromeFormOn:aDevice.
+        form := self asMonochromeFormOn:aDevice.
     ] ifFalse:[
-	((visual := aDevice visualType) == #StaticGray) ifTrue:[
-	    form := self asGrayFormOn:aDevice.
-	] ifFalse:[
-	    (visual == #PseudoColor
-	     or:[visual == #StaticColor]) ifTrue:[
-		form := self asPseudoFormQuickOn:aDevice.
-	    ].
-	]
+        ((visual := aDevice visualType) == #StaticGray) ifTrue:[
+            form := self asGrayFormOn:aDevice.
+        ] ifFalse:[
+            (visual == #PseudoColor
+             or:[visual == #StaticColor]) ifTrue:[
+                form := self asPseudoFormQuickOn:aDevice.
+            ].
+        ]
     ].
 
     form isNil ifTrue:[
-	"/ kludge: repair a 'should not happen' situation...
-	photometric isNil ifTrue:[ self repairPhotometric ].
-
-	(photometric == #palette) ifTrue:[
-	    form := self paletteImageAsFormOn:aDevice
-	] ifFalse:[
-	    (photometric == #rgb or:[photometric == #rgba or:[photometric == #argb]]) ifTrue:[
-		form := self rgbImageAsFormOn:aDevice
-	    ] ifFalse:[
-		(photometric == #cmy or:[photometric == #cmyk]) ifTrue:[
-		    form := self rgbImageAsFormOn:aDevice
-		] ifFalse:[
-		    form := self greyImageAsFormOn:aDevice
-		]
-	    ]
-	].
+        "/ kludge: repair a 'should not happen' situation...
+        photometric isNil ifTrue:[ self repairPhotometric ].
+
+        (photometric == #palette) ifTrue:[
+            form := self paletteImageAsFormOn:aDevice
+        ] ifFalse:[
+            (photometric == #rgb or:[photometric == #rgba or:[photometric == #argb]]) ifTrue:[
+                form := self rgbImageAsFormOn:aDevice
+            ] ifFalse:[
+                (photometric == #cmy or:[photometric == #cmyk]) ifTrue:[
+                    form := self rgbImageAsFormOn:aDevice
+                ] ifFalse:[
+                    form := self greyImageAsFormOn:aDevice
+                ]
+            ]
+        ].
     ].
 
     (device isNil or:[aDevice == device]) ifTrue:[
-	"remember this form in the receiver ..."
-
-	form notNil ifTrue:[
-	    form := form asImageForm.
-	    deviceForm := form.
-	    maskedPixelsAre0 := nil.
-	    device isNil ifTrue:[
-		device := aDevice.
-		Lobby register:self
-	    ] ifFalse:[
-		Lobby registerChange:self
-	    ].
-	    mask notNil ifTrue:[
-		self clearMaskedPixels.
-	    ].
-
-	    "
-	     can save space, by not keeping the images data-bits
-	     twice (here and in the device form)
-	    "
-	    form forgetBits
-	]
+        "remember this form in the receiver ..."
+
+        form notNil ifTrue:[
+            form := form asImageForm.
+            deviceForm := form.
+            maskedPixelsAre0 := nil.
+            device isNil ifTrue:[
+                device := aDevice.
+                Lobby register:self
+            ] ifFalse:[
+                Lobby registerChange:self
+            ].
+            mask notNil ifTrue:[
+                self clearMaskedPixels.
+            ].
+
+            "
+             can save space, by not keeping the images data-bits
+             twice (here and in the device form)
+            "
+            form forgetBits
+        ]
     ].
 
     ^ form
@@ -4642,17 +4702,17 @@
     depth := aDevice depth.
     (depth == 1
     or:[aDevice hasGrayscales not]) ifTrue:[
-	^ self asMonochromeFormOn:aDevice
+        ^ self asMonochromeFormOn:aDevice
     ].
 
     (aDitherAlgorithm isNil
     or:[aDitherAlgorithm == #threshold]) ifTrue:[
-	^ self asThresholdGrayFormOn:aDevice
+        ^ self asThresholdGrayFormOn:aDevice
     ].
 
     (aDitherAlgorithm == #pattern
     or:[aDitherAlgorithm == #ordered]) ifTrue:[
-	^ self asOrderedDitheredGrayFormOn:aDevice
+        ^ self asOrderedDitheredGrayFormOn:aDevice
     ].
 
     ^ self asFloydSteinbergDitheredGrayFormOn:aDevice.
@@ -4666,7 +4726,7 @@
 
     ((self colorMap notNil and:[depth <= 8 and:[depth >= self depth]])
     or:[ self depth >= 8 "do need for dither" ]) ifTrue:[
-	^ self copyWithColorMapProcessing:[:clr | Color brightness:(clr brightness)].
+        ^ self copyWithColorMapProcessing:[:clr | Color brightness:(clr brightness)].
     ].
     ^ self asGrayImageDepth:depth dither:DitherAlgorithm.
 
@@ -4686,12 +4746,12 @@
 
     (aDitherAlgorithm isNil
     or:[aDitherAlgorithm == #threshold]) ifTrue:[
-	^ self asThresholdGrayImageDepth:depth
+        ^ self asThresholdGrayImageDepth:depth
     ].
 
     (aDitherAlgorithm == #pattern
     or:[aDitherAlgorithm == #ordered]) ifTrue:[
-	^ self asOrderedDitheredGrayImageDepth:depth
+        ^ self asOrderedDitheredGrayImageDepth:depth
     ].
 
     ^ self asFloydSteinbergDitheredGrayImageDepth:depth
@@ -4732,30 +4792,30 @@
 
     ((aDevice == device) and:[monoDeviceForm notNil]) ifTrue:[^ monoDeviceForm].
     self depth == 1 ifTrue:[
-	((aDevice == device) and:[deviceForm notNil]) ifTrue:[^ deviceForm].
-	^ self asFormOn:aDevice
+        ((aDevice == device) and:[deviceForm notNil]) ifTrue:[^ deviceForm].
+        ^ self asFormOn:aDevice
     ].
 
     form := self asMonochromeFormOn:aDevice dither:DitherAlgorithm.
 
     (device isNil or:[aDevice == device]) ifTrue:[
-	"remember this form in the receiver ..."
-
-	form notNil ifTrue:[
-	    form := form asImageForm.
-	    monoDeviceForm := form.
-	    device isNil ifTrue:[
-		device := aDevice.
-		Lobby register:self
-	    ] ifFalse:[
-		Lobby registerChange:self
-	    ].
-	    "
-	     can save space, by not keeping the images data-bits
-	     twice (here and in the device form)
-	    "
-	    form forgetBits
-	]
+        "remember this form in the receiver ..."
+
+        form notNil ifTrue:[
+            form := form asImageForm.
+            monoDeviceForm := form.
+            device isNil ifTrue:[
+                device := aDevice.
+                Lobby register:self
+            ] ifFalse:[
+                Lobby registerChange:self
+            ].
+            "
+             can save space, by not keeping the images data-bits
+             twice (here and in the device form)
+            "
+            form forgetBits
+        ]
     ].
 
     ^ form
@@ -4777,22 +4837,22 @@
 
     (aDitherAlgorithm isNil
     or:[aDitherAlgorithm == #threshold]) ifTrue:[
-	^ self asThresholdMonochromeFormOn:aDevice
+        ^ self asThresholdMonochromeFormOn:aDevice
     ].
 
     aDitherAlgorithm == #burkes ifTrue:[
-	monoBits := self burkesDitheredMonochromeBits.
+        monoBits := self burkesDitheredMonochromeBits.
     ] ifFalse:[
-	aDitherAlgorithm == #stevensonArce ifTrue:[
-	    monoBits := self stevensonArceDitheredMonochromeBits.
-	] ifFalse:[
-	    (aDitherAlgorithm == #pattern
-	    or:[aDitherAlgorithm == #ordered]) ifTrue:[
-		^ self asOrderedDitheredGrayFormOn:aDevice.
-	    ] ifFalse:[
-		^ self asFloydSteinbergDitheredMonochromeFormOn:aDevice.
-	    ]
-	]
+        aDitherAlgorithm == #stevensonArce ifTrue:[
+            monoBits := self stevensonArceDitheredMonochromeBits.
+        ] ifFalse:[
+            (aDitherAlgorithm == #pattern
+            or:[aDitherAlgorithm == #ordered]) ifTrue:[
+                ^ self asOrderedDitheredGrayFormOn:aDevice.
+            ] ifFalse:[
+                ^ self asFloydSteinbergDitheredMonochromeFormOn:aDevice.
+            ]
+        ]
     ].
 
     "/
@@ -4814,32 +4874,32 @@
 
     "
      example:
-	color reduction from Depth8 to Depth4 can be done by:
+        color reduction from Depth8 to Depth4 can be done by:
 
      |img8 reducedImg8 img4 map form|
 
      map := #(
-		  (0     0   0)
-		  (0     0 100)
-		  (0    50   0)
-		  (0    50 100)
-		  (0   100   0)
-		  (0   100 100)
-		  (100   0   0)
-		  (100   0 100)
-		  (100  50   0)
-		  (100  50 100)
-		  (100 100   0)
-		  (100 100 100)) collect:[:rgb | (Color red:(rgb at:1)
-						      green:(rgb at:2)
-						       blue:(rgb at:3)) onDevice:Display].
+                  (0     0   0)
+                  (0     0 100)
+                  (0    50   0)
+                  (0    50 100)
+                  (0   100   0)
+                  (0   100 100)
+                  (100   0   0)
+                  (100   0 100)
+                  (100  50   0)
+                  (100  50 100)
+                  (100 100   0)
+                  (100 100 100)) collect:[:rgb | (Color red:(rgb at:1)
+                                                      green:(rgb at:2)
+                                                       blue:(rgb at:3)) onDevice:Display].
 
      img8 := Image fromFile:'goodies/bitmaps/claus.gif'.
      form := img8 asNearestPaintDepth8FormOn:Display
-		      colors:map
-			nRed:2
-		      nGreen:3
-		       nBlue:2.
+                      colors:map
+                        nRed:2
+                      nGreen:3
+                       nBlue:2.
      img8 := Depth8Image fromForm:form.    'dithered version of original image'.
      img4 := Depth4Image fromImage:img8.
     "
@@ -4861,9 +4921,9 @@
 
     deviceDepth := aDevice depth.
     deviceDepth == 8 ifFalse:[
-	(aDevice supportedImageFormatForDepth:8) isNil ifTrue:[
-	    ^ nil
-	]
+        (aDevice supportedImageFormatForDepth:8) isNil ifTrue:[
+            ^ nil
+        ]
     ].
 
     pseudoBits := self nearestPaintDepth8BitsColors:fixColors nRed:nRed nGreen:nGreen nBlue:nBlue.
@@ -4878,51 +4938,51 @@
     "/
     map := Array new:256.
     fixColors do:[:clr |
-	map at:clr colorId + 1 put:clr
+        map at:clr colorId + 1 put:clr
     ].
     f colorMap:map.
     f initGC.
     f bits:pseudoBits.
     aDevice
-	drawBits:pseudoBits
-	bitsPerPixel:8
-	depth:deviceDepth
-	padding:8
-	width:width height:height
-	x:0 y:0
-	into:(f id) x:0 y:0
-	width:width height:height
-	with:(f gcId).
+        drawBits:pseudoBits
+        bitsPerPixel:8
+        depth:deviceDepth
+        padding:8
+        width:width height:height
+        x:0 y:0
+        into:(f id) x:0 y:0
+        width:width height:height
+        with:(f gcId).
     ^ f
 
     "
      example:
-	color reduction from Depth8 to Depth4 (dithering) can be done by:
+        color reduction from Depth8 to Depth4 (dithering) can be done by:
 
      |img8 reducedImg8 img4 map form|
 
      map := #(
-		  (0     0   0)
-		  (0     0 100)
-		  (0    50   0)
-		  (0    50 100)
-		  (0   100   0)
-		  (0   100 100)
-		  (100   0   0)
-		  (100   0 100)
-		  (100  50   0)
-		  (100  50 100)
-		  (100 100   0)
-		  (100 100 100)) collect:[:rgb | (Color red:(rgb at:1)
-						      green:(rgb at:2)
-						       blue:(rgb at:3)) onDevice:Display].
+                  (0     0   0)
+                  (0     0 100)
+                  (0    50   0)
+                  (0    50 100)
+                  (0   100   0)
+                  (0   100 100)
+                  (100   0   0)
+                  (100   0 100)
+                  (100  50   0)
+                  (100  50 100)
+                  (100 100   0)
+                  (100 100 100)) collect:[:rgb | (Color red:(rgb at:1)
+                                                      green:(rgb at:2)
+                                                       blue:(rgb at:3)) onDevice:Display].
 
      img8 := Image fromFile:'goodies/bitmaps/claus.gif'.
      form := img8 asNearestPaintDepth8FormOn:Display
-		      colors:map
-			nRed:2
-		      nGreen:3
-		       nBlue:2.
+                      colors:map
+                        nRed:2
+                      nGreen:3
+                       nBlue:2.
      img8 := Depth8Image fromForm:form.    'dithered version of original image'.
      img4 := Depth4Image fromImage:img8.
     "
@@ -4937,11 +4997,11 @@
     |newBits|
 
     d ~~ 8 ifTrue:[
-	self error:'unsupported depth'
+        self error:'unsupported depth'
     ].
     newBits := self nearestPaintDepth8BitsColors:colors nRed:nil nGreen:nil nBlue:nil.
     newBits isNil ifTrue:[
-	self error:'conversion failed'
+        self error:'conversion failed'
     ].
     ^ (self class newForDepth:d) extent:(self extent); depth:d; palette:colors; bits:newBits
 !
@@ -4955,16 +5015,16 @@
     depth := aDevice depth.
     (depth == 1
     or:[aDevice hasGrayscales not]) ifTrue:[
-	"/ for monochrome, there is highly specialized
-	"/ monochrome dither code available
-
-	^ self asOrderedDitheredMonochromeFormOn:aDevice
+        "/ for monochrome, there is highly specialized
+        "/ monochrome dither code available
+
+        ^ self asOrderedDitheredMonochromeFormOn:aDevice
     ].
 
     bits := self
-		orderedDitheredGrayBitsWithDitherMatrix:(self class orderedDitherMatrixOfSize:8)
-		ditherWidth:8
-		depth:depth.
+                orderedDitheredGrayBitsWithDitherMatrix:(self class orderedDitherMatrixOfSize:8)
+                ditherWidth:8
+                depth:depth.
 
     ^ self makeDeviceGrayPixmapOn:aDevice depth:depth fromArray:bits
 
@@ -4987,26 +5047,26 @@
     dither := self class orderedDitherMatrixOfSize:8.
 
     (depth == 1) ifTrue:[
-	"/ for monochrome, there is highly specialized
-	"/ monochrome dither code available
-
-	^ Depth1Image
-	    width:width
-	    height:height
-	    fromArray:(
-		self
-		    orderedDitheredMonochromeBitsWithDitherMatrix:dither
-		    ditherWidth:8)
+        "/ for monochrome, there is highly specialized
+        "/ monochrome dither code available
+
+        ^ Depth1Image
+            width:width
+            height:height
+            fromArray:(
+                self
+                    orderedDitheredMonochromeBitsWithDitherMatrix:dither
+                    ditherWidth:8)
     ].
 
     ^ (self class implementorForDepth:depth)
-	width:width
-	height:height
-	fromArray:(
-	    self
-		orderedDitheredGrayBitsWithDitherMatrix:dither
-		ditherWidth:8
-		depth:depth)
+        width:width
+        height:height
+        fromArray:(
+            self
+                orderedDitheredGrayBitsWithDitherMatrix:dither
+                ditherWidth:8
+                depth:depth)
 
     "
      |i i1 i2 i4 i8|
@@ -5061,9 +5121,9 @@
     "/ 4x4 for small number of colors ...
 
     ^ self
-	asOrderedDitheredMonochromeFormOn:aDevice
-	ditherMatrix:(self class orderedDitherMatrixOfSize:4)
-	ditherWidth:4
+        asOrderedDitheredMonochromeFormOn:aDevice
+        ditherMatrix:(self class orderedDitherMatrixOfSize:4)
+        ditherWidth:4
 
 "/    ^ self
 "/        asOrderedDitheredMonochromeFormOn:aDevice
@@ -5151,8 +5211,8 @@
     "/ 4x4 for small number of colors ...
 
     ^ self
-	asOrderedDitheredMonochromeImageWithDitherMatrix:(self class orderedDitherMatrixOfSize:4)
-	ditherWidth:4
+        asOrderedDitheredMonochromeImageWithDitherMatrix:(self class orderedDitherMatrixOfSize:4)
+        ditherWidth:4
 
 "/    ^ self
 "/        asOrderedDitheredMonochromeImageWithDitherMatrix:(self class orderedDitherMatrixOfSize:8)
@@ -5208,8 +5268,8 @@
 
      i := Image fromFile:'goodies/bitmaps/gifImages/garfield.gif'.
      i
-	asOrderedDitheredMonochromeImageWithDitherMatrix:(Image orderedDitherMatrixOfSize:4)
-	ditherWidth:4
+        asOrderedDitheredMonochromeImageWithDitherMatrix:(Image orderedDitherMatrixOfSize:4)
+        ditherWidth:4
     "
 
     "order-6 dither:
@@ -5218,8 +5278,8 @@
 
      i := Image fromFile:'goodies/bitmaps/gifImages/garfield.gif'.
      i
-	asOrderedDitheredMonochromeImageWithDitherMatrix:(Image orderedDitherMatrixOfSize:8)
-	ditherWidth:8
+        asOrderedDitheredMonochromeImageWithDitherMatrix:(Image orderedDitherMatrixOfSize:8)
+        ditherWidth:8
     "
 
 
@@ -5229,8 +5289,8 @@
 
      i := Image fromFile:'goodies/bitmaps/gifImages/garfield.gif'.
      i
-	asOrderedDitheredMonochromeImageWithDitherMatrix:(ByteArray new:16 withAll:8)
-	ditherWidth:4
+        asOrderedDitheredMonochromeImageWithDitherMatrix:(ByteArray new:16 withAll:8)
+        ditherWidth:4
     "
 
     "thresholding at: 0.25 (all above 0.25 becomes white):
@@ -5239,8 +5299,8 @@
 
      i := Image fromFile:'goodies/bitmaps/gifImages/garfield.gif'.
      i
-	asOrderedDitheredMonochromeImageWithDitherMatrix:(ByteArray new:16 withAll:3)
-	ditherWidth:4
+        asOrderedDitheredMonochromeImageWithDitherMatrix:(ByteArray new:16 withAll:3)
+        ditherWidth:4
     "
 
     "thresholding at: 0.75 (all above 0.75 becomes white):
@@ -5249,8 +5309,8 @@
 
      i := Image fromFile:'goodies/bitmaps/gifImages/garfield.gif'.
      i
-	asOrderedDitheredMonochromeImageWithDitherMatrix:(ByteArray new:16 withAll:11)
-	ditherWidth:4
+        asOrderedDitheredMonochromeImageWithDitherMatrix:(ByteArray new:16 withAll:11)
+        ditherWidth:4
     "
 
     "Modified: 7.6.1996 / 17:23:47 / cg"
@@ -5284,18 +5344,18 @@
 
     dDev := aDevice depth.
     (bytesPerLine := dDev) == 8 ifFalse:[
-	bytesPerLine := (w * dDev + 7) // 8.
+        bytesPerLine := (w * dDev + 7) // 8.
     ].
 
     fmt := aDevice supportedImageFormatForDepth:dDev.
     fmt isNil ifTrue:[
-	"/ cannot draw directly
-	^ nil
+        "/ cannot draw directly
+        ^ nil
     ].
     (bytesPerLine * 8) \\ (fmt at:#padding) == 0 ifFalse:[
-	"/ mhmh - ought to repad here;
-	"/ however, the nonQuick converter does it.
-	^ nil
+        "/ mhmh - ought to repad here;
+        "/ however, the nonQuick converter does it.
+        ^ nil
     ].
 
     "/ see if all of the images colors are representable
@@ -5307,78 +5367,78 @@
     idMap := ByteArray new:nClr.
 
     photometric == #palette ifTrue:[
-	nClr := nClr min:(colorMap size)
+        nClr := nClr min:(colorMap size)
     ].
 
     d == 8 ifTrue:[
-	usedColors := bytes usedValues.    "gets us an array filled with used values"
-	1 to:nClr do:[:pixel |
-	    (usedColors includes:(pixel - 1)) ifFalse:[
-		clr := Color black
-	    ] ifTrue:[
-		clr := self colorFromValue:pixel-1.
-		clr := clr exactOn:aDevice.
-		clr isNil ifTrue:[^ nil].
-	    ].
-	    (pix := clr colorId) isNil ifTrue:[^ nil].
-
-	    cMap at:(pixel) put:clr.
-	    idMap at:(pixel) put:pix.
-	].
+        usedColors := bytes usedValues.    "gets us an array filled with used values"
+        1 to:nClr do:[:pixel |
+            (usedColors includes:(pixel - 1)) ifFalse:[
+                clr := Color black
+            ] ifTrue:[
+                clr := self colorFromValue:pixel-1.
+                clr := clr exactOn:aDevice.
+                clr isNil ifTrue:[^ nil].
+            ].
+            (pix := clr colorId) isNil ifTrue:[^ nil].
+
+            cMap at:(pixel) put:clr.
+            idMap at:(pixel) put:pix.
+        ].
     ] ifFalse:[
-	1 to:nClr do:[:pixel |
-	    clr := self colorFromValue:pixel-1.
-	    clr := clr exactOn:aDevice.
-	    clr isNil ifTrue:[^ nil].
-	    (pix := clr colorId) isNil ifTrue:[^ nil].
-
-	    cMap at:(pixel) put:clr.
-	    idMap at:(pixel) put:pix.
-	].
+        1 to:nClr do:[:pixel |
+            clr := self colorFromValue:pixel-1.
+            clr := clr exactOn:aDevice.
+            clr isNil ifTrue:[^ nil].
+            (pix := clr colorId) isNil ifTrue:[^ nil].
+
+            cMap at:(pixel) put:clr.
+            idMap at:(pixel) put:pix.
+        ].
     ].
 
     "/ got all colors; good - simply change depth & translate pixels
 
     (d == 8 and:[dDev == 8]) ifTrue:[
-	"/ only translate
-	temp := ByteArray uninitializedNew:(w * h).
-	bytes expandPixels:8         "xlate only"
-		    width:w
-		   height:h
-		     into:temp
-		  mapping:idMap.
+        "/ only translate
+        temp := ByteArray uninitializedNew:(w * h).
+        bytes expandPixels:8         "xlate only"
+                    width:w
+                   height:h
+                     into:temp
+                  mapping:idMap.
     ] ifFalse:[
-	"/ stupid: expandPixels can only handle any-to-8
-	"/ compressPixels can only handle 8-to-any
-	"/ However, those methods are faster
-	"/ - even if we convert twice.
-	"/ Therefore, convert first from myDepth to 8,
-	"/ then from 8 to the device depth.
-
-	d ~~ 8 ifTrue:[
-	    temp8 := ByteArray uninitializedNew:(w * h).
-
-	    bytes expandPixels:d
-			 width:w
-			height:h
-			  into:temp8
-		       mapping:idMap.
-	    idMap := nil.
-	] ifFalse:[
-	    temp8 := bytes.
-	].
-
-	dDev ~~ 8 ifTrue:[
-	    temp := ByteArray uninitializedNew:(bytesPerLine * h).
-
-	    temp8 compressPixels:dDev
-			 width:w
-			height:h
-			  into:temp
-		       mapping:idMap.
-	] ifFalse:[
-	    temp := temp8
-	].
+        "/ stupid: expandPixels can only handle any-to-8
+        "/ compressPixels can only handle 8-to-any
+        "/ However, those methods are faster
+        "/ - even if we convert twice.
+        "/ Therefore, convert first from myDepth to 8,
+        "/ then from 8 to the device depth.
+
+        d ~~ 8 ifTrue:[
+            temp8 := ByteArray uninitializedNew:(w * h).
+
+            bytes expandPixels:d
+                         width:w
+                        height:h
+                          into:temp8
+                       mapping:idMap.
+            idMap := nil.
+        ] ifFalse:[
+            temp8 := bytes.
+        ].
+
+        dDev ~~ 8 ifTrue:[
+            temp := ByteArray uninitializedNew:(bytesPerLine * h).
+
+            temp8 compressPixels:dDev
+                         width:w
+                        height:h
+                          into:temp
+                       mapping:idMap.
+        ] ifFalse:[
+            temp := temp8
+        ].
     ].
 
     f := Form width:w height:h depth:dDev onDevice:aDevice.
@@ -5388,33 +5448,33 @@
     f initGC.
 
     aDevice
-	drawBits:temp
-	depth:dDev
-	padding:8
-	width:w
-	height:h
-	x:0 y:0
-	into:(f id) x:0 y:0
-	width:w
-	height:h
-	with:(f gcId).
+        drawBits:temp
+        depth:dDev
+        padding:8
+        width:w
+        height:h
+        x:0 y:0
+        into:(f id) x:0 y:0
+        width:w
+        height:h
+        with:(f gcId).
 
     ^ f
 
     "
      (
-	(((Depth4Image
-	     width:4
-	     height:4
-	     fromArray:#[
-			    16r01 16r23
-			    16r45 16r67
-			    16r89 16rab
-			    16rcd 16ref
-			]))
-	       magnifiedBy:30
-	 )
-	  asPseudoFormQuickOn:Display
+        (((Depth4Image
+             width:4
+             height:4
+             fromArray:#[
+                            16r01 16r23
+                            16r45 16r67
+                            16r89 16rab
+                            16rcd 16ref
+                        ]))
+               magnifiedBy:30
+         )
+          asPseudoFormQuickOn:Display
       ) inspect
      "
 
@@ -5425,7 +5485,7 @@
     "return a stevenson-arce dithered monochrome image from the receiver image.
      Depending on the images contents, this may or may not look better than
      a floyd-steinberg dithered image.
-     Notice, that floyd-steinberg dithering is faster; both because less
+     Notice that floyd-steinberg dithering is faster; both because less
      error diffusion is done and due to being specially tuned."
 
     |monoBits|
@@ -5460,14 +5520,14 @@
      |i|
 
      i := Depth4Image
-	     width:4
-	     height:4
-	     fromArray:#[
-			    16r01 16r23
-			    16r45 16r67
-			    16r89 16rab
-			    16rcd 16ref
-			].
+             width:4
+             height:4
+             fromArray:#[
+                            16r01 16r23
+                            16r45 16r67
+                            16r89 16rab
+                            16rcd 16ref
+                        ].
      i := i magnifiedBy:30.
      i inspect.
      i asStevensonArceDitheredMonochromeImage inspect.
@@ -5484,16 +5544,16 @@
     |depth|
 
     (depth := aDevice depth) == 1 ifTrue:[
-	^ self asThresholdMonochromeFormOn:aDevice
+        ^ self asThresholdMonochromeFormOn:aDevice
     ].
 
     ^ self
-	makeDeviceGrayPixmapOn:aDevice
-	depth:depth
-	fromArray:(self
-			orderedDitheredGrayBitsWithDitherMatrix:#[8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8]
-			ditherWidth:4
-			depth:depth)
+        makeDeviceGrayPixmapOn:aDevice
+        depth:depth
+        fromArray:(self
+                        orderedDitheredGrayBitsWithDitherMatrix:#[8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8]
+                        ditherWidth:4
+                        depth:depth)
 
     "
      |i|
@@ -5510,26 +5570,26 @@
     "return a thresholded depth-x grey image from the receiver image."
 
     (depth == 1) ifTrue:[
-	"/ for monochrome, there is highly specialized
-	"/ monochrome dither code available
-
-	^ Depth1Image
-	    width:width
-	    height:height
-	    fromArray:(
-		self
-		    orderedDitheredMonochromeBitsWithDitherMatrix:#[8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8]
-		    ditherWidth:4)
+        "/ for monochrome, there is highly specialized
+        "/ monochrome dither code available
+
+        ^ Depth1Image
+            width:width
+            height:height
+            fromArray:(
+                self
+                    orderedDitheredMonochromeBitsWithDitherMatrix:#[8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8]
+                    ditherWidth:4)
     ].
 
     ^ (self class implementorForDepth:depth)
-	width:width
-	height:height
-	fromArray:(
-	    self
-		orderedDitheredGrayBitsWithDitherMatrix:#[8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8]
-		ditherWidth:4
-		depth:depth)
+        width:width
+        height:height
+        fromArray:(
+            self
+                orderedDitheredGrayBitsWithDitherMatrix:#[8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8]
+                ditherWidth:4
+                depth:depth)
 
     "
      |i|
@@ -5559,9 +5619,9 @@
     "return a threshold monochrome form from the image."
 
     ^ self
-	asOrderedDitheredMonochromeFormOn:aDevice
-	ditherMatrix:#[8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8]
-	ditherWidth:4
+        asOrderedDitheredMonochromeFormOn:aDevice
+        ditherMatrix:#[8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8]
+        ditherWidth:4
 
     "
      |i|
@@ -5601,8 +5661,8 @@
      Threshold means: brightness < 0.5 -> black / otherwise white"
 
     ^ self
-	asOrderedDitheredMonochromeImageWithDitherMatrix:#[8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8]
-	ditherWidth:4
+        asOrderedDitheredMonochromeImageWithDitherMatrix:#[8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8]
+        ditherWidth:4
 
     "
      |i i2|
@@ -5644,17 +5704,17 @@
     ditherMatrix := ByteArray new:256 withAll:(value truncated).
 
     ^ self
-	asOrderedDitheredMonochromeImageWithDitherMatrix:ditherMatrix
-	ditherWidth:16
+        asOrderedDitheredMonochromeImageWithDitherMatrix:ditherMatrix
+        ditherWidth:16
 
     "
      |i|
 
      i := Image width:4 height:4 depth:4
-		fromArray:#[ 16r01 16r23
-			     16r45 16r67
-			     16r89 16rab
-			     16rcd 16ref ].
+                fromArray:#[ 16r01 16r23
+                             16r45 16r67
+                             16r89 16rab
+                             16rcd 16ref ].
      i := i magnifiedBy:30.
      i inspect.
      (i asThresholdMonochromeImage:0.125) inspect.
@@ -5690,11 +5750,7 @@
     deviceForm isNil ifTrue:[^ self].   "/ no device rep.
     mask depth ~~ 1 ifTrue:[^ self].    "/ not done with alpha masks
 
-    deviceForm
-	foreground:Color allColor background:Color noColor function:#and;
-	copyPlaneFrom:(mask asFormOn:device) x:0 y:0 toX:0 y:0 width:width height:height.
-
-"/    deviceForm clearMaskedPixels:(mask asFormOn:device).
+    deviceForm clearMaskedPixels:(mask asFormOn:device).
     maskedPixelsAre0 := true.
 
 
@@ -5725,9 +5781,9 @@
     samplesPerPixel := self samplesPerPixel.
 
     aForm hasBits ifFalse:[
-	"/ must read the data from the device
-	self from:aForm in:(0@0 extent:aForm extent).
-	^ self
+        "/ must read the data from the device
+        self from:aForm in:(0@0 extent:aForm extent).
+        ^ self
     ].
 
     "/ the form has all data available
@@ -5736,34 +5792,34 @@
     map := aForm colorMap.
 
     aForm depth == 1 ifTrue:[
-	map isNil ifTrue:[
-	    photometric := #whiteIs0
-	] ifFalse:[
-	    c0 := map at:1.
-	    c1 := map at:2.
-	    ((c0 = Color white)
-	    and:[c1 = Color black]) ifTrue:[
-		photometric := #whiteIs0
-	    ] ifFalse:[
-		((c0 = Color black)
-		and:[c1 = Color white]) ifTrue:[
-		    photometric := #blackIs0
-		] ifFalse:[
-		    photometric := #palette.
-		    self setColorMap:(Array with:c0 with:c1).
-		]
-	    ]
-	]
+        map isNil ifTrue:[
+            photometric := #whiteIs0
+        ] ifFalse:[
+            c0 := map at:1.
+            c1 := map at:2.
+            ((c0 = Color white)
+            and:[c1 = Color black]) ifTrue:[
+                photometric := #whiteIs0
+            ] ifFalse:[
+                ((c0 = Color black)
+                and:[c1 = Color white]) ifTrue:[
+                    photometric := #blackIs0
+                ] ifFalse:[
+                    photometric := #palette.
+                    self setColorMap:(Array with:c0 with:c1).
+                ]
+            ]
+        ]
     ] ifFalse:[
-	map notNil ifTrue:[
-	    photometric := #palette.
-	    self setColorMap:(map copy).
-	] ifFalse:[
-	    "
-	     photometric stays at default
-	     (which is rgb for d24, greyscale for others)
-	    "
-	]
+        map notNil ifTrue:[
+            photometric := #palette.
+            self setColorMap:(map copy).
+        ] ifFalse:[
+            "
+             photometric stays at default
+             (which is rgb for d24, greyscale for others)
+            "
+        ]
     ].
 
     "Modified: 5.7.1996 / 16:24:31 / cg"
@@ -5800,18 +5856,18 @@
     samplesPerPixel := self samplesPerPixel.
 
     photometricOrNil isNil ifTrue:[
-	photometric := self class defaultPhotometric
-	"/ photometric := anImage photometric
+        photometric := self class defaultPhotometric
+        "/ photometric := anImage photometric
     ] ifFalse:[
-	photometricOrNil == #rgba ifTrue:[
-	    samplesPerPixel == 3 ifTrue:[ photometric := #rgb ]
-	] ifFalse:[
-	    photometric := photometricOrNil
-	].
+        photometricOrNil == #rgba ifTrue:[
+            samplesPerPixel == 3 ifTrue:[ photometric := #rgb ]
+        ] ifFalse:[
+            photometric := photometricOrNil
+        ].
     ].
 
     photometric == #palette ifTrue:[
-	self colormapFromImage:anImage photometric:photometric.
+        self colormapFromImage:anImage photometric:photometric.
     ].
     self mask:anImage mask.
 
@@ -5820,46 +5876,46 @@
     otherDepth := anImage depth.
 
     ((myDepth = otherDepth) and:[samePhotometric]) ifTrue:[
-	self bits:(anImage bits copy).
-	^ self.
+        self bits:(anImage bits copy).
+        ^ self.
     ].
 
     self bits:(ByteArray new: "uninitializedNew:"(self bytesPerRow * height)).
 
     myDepth >= otherDepth ifTrue:[
-	otherDepth <= 12 ifTrue:[
-
-	    "/ if my depth is greater, all colors can be represented,
-	    "/ and the loop can be done over pixel values ...
-
-	    (colorMap isNil or:[samePhotometric not]) ifTrue:[
-		map := Array new:(1 bitShift:otherDepth).
-		1 to:map size do:[:i |
-		    clr := anImage colorFromValue:(i - 1).
-		    map at:i put:(self valueFromColor:clr).
-		].
-	    ].
-	    mappedRowPixels := self pixelArraySpecies new:width.
-	    h := height-1.
-	    w := width.
-	    0 to:h do:[:row |
-		anImage rowAt:row into:mappedRowPixels startingAt:1.
-		map notNil ifTrue:[
-		    1 to:w do:[:i |
-			mappedRowPixels at:i put:(map at:(mappedRowPixels at:i)+1)
-		    ].
-		].
-		self rowAt:row putAll:mappedRowPixels
-	    ].
-	    ^ self
-	].
+        otherDepth <= 12 ifTrue:[
+
+            "/ if my depth is greater, all colors can be represented,
+            "/ and the loop can be done over pixel values ...
+
+            (colorMap isNil or:[samePhotometric not]) ifTrue:[
+                map := Array new:(1 bitShift:otherDepth).
+                1 to:map size do:[:i |
+                    clr := anImage colorFromValue:(i - 1).
+                    map at:i put:(self valueFromColor:clr).
+                ].
+            ].
+            mappedRowPixels := self pixelArraySpecies new:width.
+            h := height-1.
+            w := width.
+            0 to:h do:[:row |
+                anImage rowAt:row into:mappedRowPixels startingAt:1.
+                map notNil ifTrue:[
+                    1 to:w do:[:i |
+                        mappedRowPixels at:i put:(map at:(mappedRowPixels at:i)+1)
+                    ].
+                ].
+                self rowAt:row putAll:mappedRowPixels
+            ].
+            ^ self
+        ].
     ].
 
     "/ a hack, for now - alpha is in the low-byte !!!!!!
     (myDepth == 24 and:[otherDepth == 32]) ifTrue:[
-	(samePhotometric and:[photometric == #rgb]) ifTrue:[
-	    "/ can do the bits by simple stripping off the alpha channel
-	    self copyPixels32AlphaLowTo24From:anImage.
+        (samePhotometric and:[photometric == #rgb]) ifTrue:[
+            "/ can do the bits by simple stripping off the alpha channel
+            self copyPixels32AlphaLowTo24From:anImage.
 "/    anImage valuesFromX:0 y:0 toX:(width-1) y:(height-1) do:[:x :y :pixel |
 "/        |a r g b rgbPixel|
 "/
@@ -5871,12 +5927,12 @@
 "/        rgbPixel := r + (g bitShift:8) + (b bitShift:16).
 "/        self pixelAtX:x y:y put:rgbPixel
 "/    ].
-	    ^ self
-	].
+            ^ self
+        ].
     ].
 
     anImage colorsFromX:0 y:0 toX:(width-1) y:(height-1) do:[:x :y :clr |
-	self colorAtX:x y:y put:clr
+        self colorAtX:x y:y put:clr
     ].
 
     "
@@ -5901,9 +5957,9 @@
 
      i := Image fromFile:'bitmaps/gifImages/garfield.gif' inPackage:'stx:goodies'.
      Transcript showCR:(
-	Time millisecondsToRun:[
-	    i24 := Depth24Image fromImage:i.
-	]
+        Time millisecondsToRun:[
+            i24 := Depth24Image fromImage:i.
+        ]
      ).
      i24 inspect.
     "
@@ -5912,7 +5968,7 @@
 
      i := Image fromFile:'bitmaps/gifImages/garfield.gif' inPackage:'stx:goodies'.
      MessageTally spyOn:[
-	i24 := Depth24Image fromImage:i.
+        i24 := Depth24Image fromImage:i.
      ]
     "
 
@@ -5935,17 +5991,17 @@
     imgHeight := anImage height.
 
     xL isFloat ifTrue:[
-	xL := (imgWidth * xL) rounded min: imgWidth.
+        xL := (imgWidth * xL) rounded min: imgWidth.
     ].
     yT isFloat ifTrue:[
-	yT := (imgHeight * yT) rounded min:imgHeight.
+        yT := (imgHeight * yT) rounded min:imgHeight.
     ].
     w isFloat ifTrue:[
-	w := (imgWidth * w) rounded.
+        w := (imgWidth * w) rounded.
     ].
     w := w min:(imgWidth - xL).
     h isFloat ifTrue:[
-	h := (imgHeight * h) rounded.
+        h := (imgHeight * h) rounded.
     ].
     h := h min:(imgHeight - yT).
     self fromSubImage:anImage inX:xL y:yT width:w height:h
@@ -5997,24 +6053,24 @@
     ((photometric == anImage photometric)
     and:[self bitsPerPixel = anImage bitsPerPixel
     and:[colorMap = anImage colorMap]]) ifTrue:[
-	"/ can do it by value
-	anImage
-	    valuesFromX:xL y:yT toX:xR y:yB
-	    do:[:x :y :pixelValue | self pixelAtX:x-xL y:y-yT put:pixelValue ]
+        "/ can do it by value
+        anImage
+            valuesFromX:xL y:yT toX:xR y:yB
+            do:[:x :y :pixelValue | self pixelAtX:x-xL y:y-yT put:pixelValue ]
     ] ifFalse:[
-	"/ must do it by colors
-	anImage
-	    colorsFromX:xL y:yT toX:xR y:yB
-	    do:[:x :y :clr | self colorAtX:x-xL y:y-yT put:clr ]
+        "/ must do it by colors
+        anImage
+            colorsFromX:xL y:yT toX:xR y:yB
+            do:[:x :y :clr | self colorAtX:x-xL y:y-yT put:clr ]
     ].
 
     (imagesMask := anImage mask) notNil ifTrue:[
-	imagesMask depth == 1 ifTrue:[
-	    maskClass := ImageMask
-	] ifFalse:[
-	    maskClass := imagesMask class.
-	].
-	mask := maskClass new fromSubImage:imagesMask inX:xL y:yT width:w height:h
+        imagesMask depth == 1 ifTrue:[
+            maskClass := ImageMask
+        ] ifFalse:[
+            maskClass := imagesMask class.
+        ].
+        mask := maskClass new fromSubImage:imagesMask inX:xL y:yT width:w height:h
     ].
 
     "
@@ -6041,10 +6097,10 @@
 
     ((aDevice == device) and:[monoDeviceForm notNil]) ifTrue:[^ self].
     (device notNil and:[aDevice ~~ device]) ifTrue:[
-	"oops, I am already accociated to another device
-	 - need a copy ...
-	"
-	^ self copy monochromeOn:aDevice
+        "oops, I am already accociated to another device
+         - need a copy ...
+        "
+        ^ self copy monochromeOn:aDevice
     ].
     monoDeviceForm := self asMonochromeFormOn:aDevice.
 !
@@ -6081,16 +6137,16 @@
     ((aDevice == device) and:[deviceForm notNil]) ifTrue:[^ self].
 
     (device notNil and:[aDevice ~~ device]) ifTrue:[
-	"oops, I am already associated to another device
-	 - need a copy ...
-	"
-	^ self copy onDevice:aDevice
+        "oops, I am already associated to another device
+         - need a copy ...
+        "
+        ^ self copy onDevice:aDevice
     ].
     deviceForm := self asFormOn:aDevice.
     device := aDevice.
     maskedPixelsAre0 := nil.
     mask notNil ifTrue:[
-	self clearMaskedPixels.
+        self clearMaskedPixels.
     ].
     Lobby register:self
 
@@ -6107,7 +6163,7 @@
 
     nPlanes := samplesPerPixel.
     (nPlanes == 2) ifTrue:[
-	'Image [info]: alpha plane ignored' infoPrintCR.
+        'Image [info]: alpha plane ignored' infoPrintCR.
     ].
     "/ first plane only
     pictureDepth := bitsPerSample at:1.
@@ -6115,11 +6171,11 @@
     "monochrome is very easy ..."
 
     (pictureDepth == 1) ifTrue:[
-	^ Form width:width height:height fromArray:self bits onDevice:aDevice
+        ^ Form width:width height:height fromArray:self bits onDevice:aDevice
     ].
 
     (aDevice visualType == #TrueColor) ifTrue:[
-	^ self greyImageAsTrueColorFormOn:aDevice
+        ^ self greyImageAsTrueColorFormOn:aDevice
     ].
 
     "/ PseudoColor conversion also works for StaticColor,
@@ -6143,66 +6199,66 @@
     pictureDepth := bitsPerSample at:1.
 
     (#(2 4 8) includes:pictureDepth) ifFalse:[
-	self error:'currently only depth-2, 4 or 8 supported'.
-	^ nil
+        self error:'currently only depth-2, 4 or 8 supported'.
+        ^ nil
     ].
 
     wideBits := ByteArray uninitializedNew:(width * height).
 
     (pictureDepth == 8) ifTrue:[
-	"for 8bits, we scan for used colors first;
-	 to avoid allocating too many colors"
-
-	(grayColors := aDevice fixGrayColors) notNil ifTrue:[
-	    DitherAlgorithm == #floydSteinberg ifTrue:[
-		f := self
-		       asFloydSteinbergDitheredDepth8FormOn:aDevice
-		       colors:grayColors
-	    ].
-	    f notNil ifTrue:[^ f].
-	].
-
-	(cube := aDevice fixColors) notNil ifTrue:[
-	    nR := aDevice numFixRed.
-	    nG := aDevice numFixGreen.
-	    nB := aDevice numFixBlue.
-
-	    DitherAlgorithm == #floydSteinberg ifTrue:[
-		f := self
-		       asFloydSteinbergDitheredDepth8FormOn:aDevice
-		       colors:cube
-		       nRed:nR
-		       nGreen:nG
-		       nBlue:nB.
-	    ] ifFalse:[
-		f := self
-		       asNearestPaintDepth8FormOn:aDevice
-		       colors:cube
-		       nRed:nR
-		       nGreen:nG
-		       nBlue:nB.
-	    ].
-	    f notNil ifTrue:[^ f].
-	].
-
-	usedColors := self bits usedValues.
-	nUsed := usedColors max + 1.
-
-	colorMap := Array new:nUsed.
-	range := 100 / 255.0.
-	usedColors do:[:grey |
-	    colorMap at:(grey + 1) put:(Color gray:(range * grey))
-	].
+        "for 8bits, we scan for used colors first;
+         to avoid allocating too many colors"
+
+        (grayColors := aDevice fixGrayColors) notNil ifTrue:[
+            DitherAlgorithm == #floydSteinberg ifTrue:[
+                f := self
+                       asFloydSteinbergDitheredDepth8FormOn:aDevice
+                       colors:grayColors
+            ].
+            f notNil ifTrue:[^ f].
+        ].
+
+        (cube := aDevice fixColors) notNil ifTrue:[
+            nR := aDevice numFixRed.
+            nG := aDevice numFixGreen.
+            nB := aDevice numFixBlue.
+
+            DitherAlgorithm == #floydSteinberg ifTrue:[
+                f := self
+                       asFloydSteinbergDitheredDepth8FormOn:aDevice
+                       colors:cube
+                       nRed:nR
+                       nGreen:nG
+                       nBlue:nB.
+            ] ifFalse:[
+                f := self
+                       asNearestPaintDepth8FormOn:aDevice
+                       colors:cube
+                       nRed:nR
+                       nGreen:nG
+                       nBlue:nB.
+            ].
+            f notNil ifTrue:[^ f].
+        ].
+
+        usedColors := self bits usedValues.
+        nUsed := usedColors max + 1.
+
+        colorMap := Array new:nUsed.
+        range := 100 / 255.0.
+        usedColors do:[:grey |
+            colorMap at:(grey + 1) put:(Color gray:(range * grey))
+        ].
     ] ifFalse:[
-	nColors := (1 bitShift:pictureDepth).
-	colorMap := Array new:nColors.
-	range := 100 / (nColors - 1) asFloat.
-	1 to:nColors do:[:i |
-	    colorMap at:i put:(Color gray:(i - 1) * range).
-	].
+        nColors := (1 bitShift:pictureDepth).
+        colorMap := Array new:nColors.
+        range := 100 / (nColors - 1) asFloat.
+        1 to:nColors do:[:i |
+            colorMap at:i put:(Color gray:(i - 1) * range).
+        ].
     ].
     photometric ~~ #blackIs0 ifTrue:[
-	colorMap reverse
+        colorMap reverse
     ].
 
     "allocate those colors & setup the translation map"
@@ -6211,47 +6267,47 @@
     map := ByteArray uninitializedNew:256.
     nColors := colorMap size.
     1 to:nColors do:[:i |
-	aColor := colorMap at:i.
-	aColor notNil ifTrue:[
-	    aColor := aColor onDevice:aDevice.
-	    colorMap at:i put:aColor.
-	    id := aColor colorId.
-	    id isNil ifTrue:[
-		id := 0.
-		fit := false.
-	    ].
-	    map at:i put:id
-	]
+        aColor := colorMap at:i.
+        aColor notNil ifTrue:[
+            aColor := aColor onDevice:aDevice.
+            colorMap at:i put:aColor.
+            id := aColor colorId.
+            id isNil ifTrue:[
+                id := 0.
+                fit := false.
+            ].
+            map at:i put:id
+        ]
     ].
 
     fit ifFalse:[
-	"/ here comes the hard part - some grey value
-	"/ could not be allocated.
-	"/ Must dither.
+        "/ here comes the hard part - some grey value
+        "/ could not be allocated.
+        "/ Must dither.
 
     ].
 
     "expand & translate"
     self bits
-	expandPixels:pictureDepth
-	width:width height:height
-	into:wideBits
-	mapping:map.
+        expandPixels:pictureDepth
+        width:width height:height
+        into:wideBits
+        mapping:map.
 
     f := Form width:width height:height depth:8 onDevice:aDevice.
     f isNil ifTrue:[^ nil].
     f colorMap:colorMap.
     f initGC.
     aDevice
-	drawBits:wideBits
-	depth:8
-	padding:8
-	width:width height:height
-	x:0 y:0
-	into:(f id)
-	x:0 y:0
-	width:width height:height
-	with:(f gcId).
+        drawBits:wideBits
+        depth:8
+        padding:8
+        width:width height:height
+        x:0 y:0
+        into:(f id)
+        x:0 y:0
+        width:width height:height
+        with:(f gcId).
     ^ f
 
     "Modified: 19.10.1997 / 05:19:44 / cg"
@@ -6284,8 +6340,8 @@
     depth := aDevice depth.
     myDepth := self depth.
     myDepth > 16 ifTrue:[
-	self error:'unsupported depth' mayProceed:true.
-	^ nil
+        self error:'unsupported depth' mayProceed:true.
+        ^ nil
     ].
 
     "/ compute scale to map from my pixels into devices range
@@ -6303,21 +6359,21 @@
     nColors := (1 bitShift:myDepth).
     colorValues := Array new:nColors.
     1 to:nColors do:[:colorIdx |
-	|v gv bv rv nv|
-
-	"/ scale down to 0..1
-	v := (colorIdx-1) / scaleDown.
-	rv := (v * scaleRed) truncated.
-	gv := (v * scaleGreen) truncated.
-	bv := (v * scaleBlue) truncated.
-	nv := rv bitShift:redShift.
-	nv := nv bitOr:(gv bitShift:greenShift).
-	nv := nv bitOr:(bv bitShift:blueShift).
-	colorValues at:colorIdx put:nv
+        |v gv bv rv nv|
+
+        "/ scale down to 0..1
+        v := (colorIdx-1) / scaleDown.
+        rv := (v * scaleRed) truncated.
+        gv := (v * scaleGreen) truncated.
+        bv := (v * scaleBlue) truncated.
+        nv := rv bitShift:redShift.
+        nv := nv bitOr:(gv bitShift:greenShift).
+        nv := nv bitOr:(bv bitShift:blueShift).
+        colorValues at:colorIdx put:nv
     ].
     photometric == #whiteIs0 ifTrue:[
-	"/ reverse the order; 0 is brightest
-	colorValues reverse
+        "/ reverse the order; 0 is brightest
+        colorValues reverse
     ].
 
     bestFormat := self bestSupportedImageFormatFor:aDevice.
@@ -6341,12 +6397,12 @@
     newPixelArray := i pixelArraySpecies new:width.
 
     0 to:h do:[:y |
-	self rowAt:y into:pixelArray.
-	0 to:w do:[:x |
-	    greyValue := pixelArray at:(x+1).
-	    newPixelArray at:(x+1) put:(colorValues at:greyValue + 1).
-	].
-	i rowAt:y putAll:newPixelArray.
+        self rowAt:y into:pixelArray.
+        0 to:w do:[:x |
+            greyValue := pixelArray at:(x+1).
+            newPixelArray at:(x+1) put:(colorValues at:greyValue + 1).
+        ].
+        i rowAt:y putAll:newPixelArray.
     ].
 
     form := Form width:width height:height depth:usedDeviceDepth onDevice:aDevice.
@@ -6354,13 +6410,13 @@
     form initGC.
 
     form
-	copyBitsFrom:imageBits
-	bitsPerPixel:usedDeviceBitsPerPixel
-	depth:usedDeviceDepth
-	padding:8
-	width:width height:height
-	x:0 y:0
-	toX:0 y:0.
+        copyBitsFrom:imageBits
+        bitsPerPixel:usedDeviceBitsPerPixel
+        depth:usedDeviceDepth
+        padding:8
+        width:width height:height
+        x:0 y:0
+        toX:0 y:0.
 
     ^ form
 
@@ -6378,27 +6434,27 @@
     ddepth := aDevice depth.
 
     aDevice hasGrayscales ifFalse:[
-	^ self asMonochromeFormOn:aDevice
+        ^ self asMonochromeFormOn:aDevice
     ].
 
     ((type := aDevice visualType) == #StaticGray) ifTrue:[
-	ddepth == 8 ifTrue:[
-	    ^ self paletteImageAsGray8FormOn:aDevice
-	].
-	^ self asGrayFormOn:aDevice
+        ddepth == 8 ifTrue:[
+            ^ self paletteImageAsGray8FormOn:aDevice
+        ].
+        ^ self asGrayFormOn:aDevice
     ].
 
     (type == #TrueColor) ifTrue:[
-	DitherAlgorithm == #floydSteinberg ifTrue:[
-	    ddepth == 8 ifTrue:[
-		self depth == 8 ifTrue:[
-		    "/ use fixColor dither algorithm
-		    ^ self asDitheredTrueColor8FormOn:aDevice
-		]
-	    ]
-	].
-
-	^ self paletteImageAsTrueColorFormOn:aDevice
+        DitherAlgorithm == #floydSteinberg ifTrue:[
+            ddepth == 8 ifTrue:[
+                self depth == 8 ifTrue:[
+                    "/ use fixColor dither algorithm
+                    ^ self asDitheredTrueColor8FormOn:aDevice
+                ]
+            ]
+        ].
+
+        ^ self paletteImageAsTrueColorFormOn:aDevice
     ].
 
     "/ the PseudoColor conversion also works for
@@ -6416,21 +6472,21 @@
 
     d := self depth.
     (#(1 2 4 8) includes:d) ifTrue:[
-	"
-	 fallback code for some depth's:
-	 create a temporary Depth8Image and use its conversion method
-	"
-	temp8 := ByteArray uninitializedNew:(width * height).
-
-	self bits
-	    expandPixels:d
-	    width:width height:height
-	    into:temp8
-	    mapping:nil.
-
-	tempImage := Image width:width height:height depth:8 fromArray:temp8.
-	tempImage colorMap:colorMap.
-	^ tempImage paletteImageAsPseudoFormOn:aDevice
+        "
+         fallback code for some depth's:
+         create a temporary Depth8Image and use its conversion method
+        "
+        temp8 := ByteArray uninitializedNew:(width * height).
+
+        self bits
+            expandPixels:d
+            width:width height:height
+            into:temp8
+            mapping:nil.
+
+        tempImage := Image width:width height:height depth:8 fromArray:temp8.
+        tempImage colorMap:colorMap.
+        ^ tempImage paletteImageAsPseudoFormOn:aDevice
     ].
     ^ self subclassResponsibility
 !
@@ -6456,7 +6512,7 @@
     bestFormat := self bestSupportedImageFormatFor:aDevice.
     usedDeviceDepth := bestFormat at:#depth.
     usedDeviceDepth == 1 ifTrue:[
-	^ self asMonochromeFormOn:aDevice.
+        ^ self asMonochromeFormOn:aDevice.
     ].
     usedDeviceBitsPerPixel := bestFormat at:#bitsPerPixel.
 
@@ -6470,33 +6526,33 @@
 
     nColors := colorMap size.
     nColors <= 4096 ifTrue:[
-	"/ precompute scales to map from 0..100 into devices range
-	"/ (this may be different for the individual components)
-	colorValues := Array uninitializedNew:nColors.
-
-	1 to:nColors do:[:index |
-	    r := colorMap redByteAt:index.
-	    g := colorMap greenByteAt:index.
-	    b := colorMap blueByteAt:index.
+        "/ precompute scales to map from 0..100 into devices range
+        "/ (this may be different for the individual components)
+        colorValues := Array uninitializedNew:nColors.
+
+        1 to:nColors do:[:index |
+            r := colorMap redByteAt:index.
+            g := colorMap greenByteAt:index.
+            b := colorMap blueByteAt:index.
 "/        clr := colorMap at:index.
-	    true "clr notNil" ifTrue:[
+            true "clr notNil" ifTrue:[
 "/            r := clr red.
 "/            g := clr green.
 "/            b := clr blue.
-		rv := (r * scaleRed) rounded.
-		gv := (g * scaleGreen) rounded.
-		bv := (b * scaleBlue) rounded.
-
-		v := rv bitShift:redShift.
-		v := v bitOr:(gv bitShift:greenShift).
-		v := v bitOr:(bv bitShift:blueShift).
-		colorValues at:index put:v.
+                rv := (r * scaleRed) rounded.
+                gv := (g * scaleGreen) rounded.
+                bv := (b * scaleBlue) rounded.
+
+                v := rv bitShift:redShift.
+                v := v bitOr:(gv bitShift:greenShift).
+                v := v bitOr:(bv bitShift:blueShift).
+                colorValues at:index put:v.
 "/ clr print. ' ' print.
 "/ rv print. ' ' print. gv print. ' ' print. bv print. ' ' print.
 "/ ' -> ' print. v printNL.
 
-	    ]
-	].
+            ]
+        ].
     ].
 
     "/ the temporary helper image is only needed to allow
@@ -6515,37 +6571,37 @@
     newPixelArray := i pixelArraySpecies new:width.
 
     colorValues notNil ifTrue:[
-	0 to:h do:[:y |
-	    self rowAt:y into:pixelArray.
-	    1 to:width do:[:x |
-		pixel := pixelArray at:x.
-		newPixelArray at:x put:(colorValues at:pixel + 1 ifAbsent:0).
-	    ].
-	    i rowAt:y putAll:newPixelArray.
-	].
+        0 to:h do:[:y |
+            self rowAt:y into:pixelArray.
+            1 to:width do:[:x |
+                pixel := pixelArray at:x.
+                newPixelArray at:x put:(colorValues at:pixel + 1 ifAbsent:0).
+            ].
+            i rowAt:y putAll:newPixelArray.
+        ].
     ] ifFalse:[
-	0 to:h do:[:y |
-	    self rowAt:y into:pixelArray.
-	    1 to:width do:[:x |
-
-		pixel := pixelArray at:x.
-		clr := self colorFromValue:pixel.
-		r := clr redByte.
-		g := clr greenByte.
-		b := clr blueByte.
-
-		rv := (r * scaleRed) rounded.
-		gv := (g * scaleGreen) rounded.
-		bv := (b * scaleBlue) rounded.
-
-		v := rv bitShift:redShift.
-		v := v bitOr:(gv bitShift:greenShift).
-		v := v bitOr:(bv bitShift:blueShift).
-
-		newPixelArray at:x put:v.
-	    ].
-	    i rowAt:y putAll:newPixelArray.
-	].
+        0 to:h do:[:y |
+            self rowAt:y into:pixelArray.
+            1 to:width do:[:x |
+
+                pixel := pixelArray at:x.
+                clr := self colorFromValue:pixel.
+                r := clr redByte.
+                g := clr greenByte.
+                b := clr blueByte.
+
+                rv := (r * scaleRed) rounded.
+                gv := (g * scaleGreen) rounded.
+                bv := (b * scaleBlue) rounded.
+
+                v := rv bitShift:redShift.
+                v := v bitOr:(gv bitShift:greenShift).
+                v := v bitOr:(bv bitShift:blueShift).
+
+                newPixelArray at:x put:v.
+            ].
+            i rowAt:y putAll:newPixelArray.
+        ].
     ].
 
     form := Form width:width height:height depth:usedDeviceDepth onDevice:aDevice.
@@ -6553,13 +6609,13 @@
     form initGC.
 
     form
-	copyBitsFrom:imageBits
-	bitsPerPixel:usedDeviceBitsPerPixel
-	depth:usedDeviceDepth
-	padding:8
-	width:width height:height
-	x:0 y:0
-	toX:0 y:0.
+        copyBitsFrom:imageBits
+        bitsPerPixel:usedDeviceBitsPerPixel
+        depth:usedDeviceDepth
+        padding:8
+        width:width height:height
+        x:0 y:0
+        toX:0 y:0.
 
     ^ form
 
@@ -6594,21 +6650,21 @@
 
     dstIdx := 1.
     0 to:nRed - 1 do:[:sR |
-	0 to:nGreen - 1 do:[:sG |
-	    0 to:nBlue - 1 do:[:sB |
-		pixel := (sR bitShift:shiftRed)
-			 + (sG bitShift:shiftGreen)
-			 + (sB bitShift:shiftBlue).
-		fixColors at:dstIdx put:(Color colorId:(pixel)).
-		dstIdx := dstIdx + 1
-	    ]
-	]
+        0 to:nGreen - 1 do:[:sG |
+            0 to:nBlue - 1 do:[:sB |
+                pixel := (sR bitShift:shiftRed)
+                         + (sG bitShift:shiftGreen)
+                         + (sB bitShift:shiftBlue).
+                fixColors at:dstIdx put:(Color colorId:(pixel)).
+                dstIdx := dstIdx + 1
+            ]
+        ]
     ].
 
     ^ self
-	asFloydSteinbergDitheredDepth8FormOn:aDevice
-	colors:fixColors
-	nRed:nRed nGreen:nGreen nBlue:nBlue
+        asFloydSteinbergDitheredDepth8FormOn:aDevice
+        colors:fixColors
+        nRed:nRed nGreen:nGreen nBlue:nBlue
 
     "Created: 14.6.1996 / 17:23:52 / cg"
     "Modified: 23.6.1997 / 15:22:36 / cg"
@@ -6622,15 +6678,15 @@
     depth := self depth.
     usedColors := self realUsedColors.
     sortBlockForColors := [:a :b |
-	    a redByte == b redByte ifTrue:[
-		a greenByte == b greenByte ifTrue:[
-		    a blueByte < b blueByte
-		] ifFalse:[
-		    a greenByte < b greenByte
-		]
-	    ] ifFalse:[
-		a redByte < b redByte
-	    ]
+            a redByte == b redByte ifTrue:[
+                a greenByte == b greenByte ifTrue:[
+                    a blueByte < b blueByte
+                ] ifFalse:[
+                    a greenByte < b greenByte
+                ]
+            ] ifFalse:[
+                a redByte < b redByte
+            ]
       ].
 
     "/ translation table
@@ -6638,40 +6694,40 @@
     newColorMap := usedColors asArray.
     newColorMap sort:sortBlockForColors.
     self colorMap notNil ifTrue:[
-	self colorMap asArray keysAndValuesDo:[:oldIdx :clr |
-	    |newPixel|
-
-	    (usedColors includes:clr) ifTrue:[
-		newPixel := newColorMap indexOf:clr.
-		oldToNew at:oldIdx put:newPixel-1.
-	    ]
-	].
+        self colorMap asArray keysAndValuesDo:[:oldIdx :clr |
+            |newPixel|
+
+            (usedColors includes:clr) ifTrue:[
+                newPixel := newColorMap indexOf:clr.
+                oldToNew at:oldIdx put:newPixel-1.
+            ]
+        ].
     ].
 
     oldBits := self bits.
     newBits := ByteArray new:(oldBits size).
     depth ~~ 8 ifTrue:[
-	"/ expand/compress can only handle 8bits
-	tmpBits := ByteArray uninitializedNew:(self width*self height).
-	oldBits
-	    expandPixels:depth
-	    width:self width
-	    height:self height
-	    into:tmpBits
-	    mapping:oldToNew.
-	tmpBits
-	    compressPixels:depth
-	    width:self width
-	    height:self height
-	    into:newBits
-	    mapping:nil
+        "/ expand/compress can only handle 8bits
+        tmpBits := ByteArray uninitializedNew:(self width*self height).
+        oldBits
+            expandPixels:depth
+            width:self width
+            height:self height
+            into:tmpBits
+            mapping:oldToNew.
+        tmpBits
+            compressPixels:depth
+            width:self width
+            height:self height
+            into:newBits
+            mapping:nil
     ] ifFalse:[
-	oldBits
-	    expandPixels:depth
-	    width:self width
-	    height:self height
-	    into:newBits
-	    mapping:oldToNew.
+        oldBits
+            expandPixels:depth
+            width:self width
+            height:self height
+            into:newBits
+            mapping:oldToNew.
     ].
 
     self bits:newBits.
@@ -6695,46 +6751,46 @@
     if (__isByteArrayLike(_myBits)
      && __isByteArrayLike(imageBits)
      && __bothSmallInteger(w, h)) {
-	int _idx;
-	int _w = __intVal(w);
-	int _h = __intVal(h);
-	int _mySize = __byteArraySize(_myBits);
-	int _imgSize = __byteArraySize(imageBits);
-	char *_myBitsPtr = __ByteArrayInstPtr(_myBits)->ba_element;
-	char *_imgBitsPtr = __ByteArrayInstPtr(imageBits)->ba_element;
-	char *_myBitsEndPtr = _myBitsPtr + (_w * _h * 3);
-	char *_imgBitsEndPtr = _imgBitsPtr + (_w * _h * 4);
-
-	if ((_w * _h * 3) > _mySize) goto error;
-	if ((_w * _h * 4) > _imgSize) goto error;
-
-	while (_myBitsPtr < _myBitsEndPtr) {
-	    // fetch r,g,b skip a
-	    unsigned char _r = _imgBitsPtr[0];
-	    unsigned char _g = _imgBitsPtr[1];
-	    unsigned char _b = _imgBitsPtr[2];
-	    _myBitsPtr[0] = _r;
-	    _myBitsPtr[1] = _g;
-	    _myBitsPtr[2] = _b;
-	    _myBitsPtr += 3;
-	    _imgBitsPtr += 4;
-	}
-	RETURN( self );
+        int _idx;
+        int _w = __intVal(w);
+        int _h = __intVal(h);
+        int _mySize = __byteArraySize(_myBits);
+        int _imgSize = __byteArraySize(imageBits);
+        char *_myBitsPtr = __ByteArrayInstPtr(_myBits)->ba_element;
+        char *_imgBitsPtr = __ByteArrayInstPtr(imageBits)->ba_element;
+        char *_myBitsEndPtr = _myBitsPtr + (_w * _h * 3);
+        char *_imgBitsEndPtr = _imgBitsPtr + (_w * _h * 4);
+
+        if ((_w * _h * 3) > _mySize) goto error;
+        if ((_w * _h * 4) > _imgSize) goto error;
+
+        while (_myBitsPtr < _myBitsEndPtr) {
+            // fetch r,g,b skip a
+            unsigned char _r = _imgBitsPtr[0];
+            unsigned char _g = _imgBitsPtr[1];
+            unsigned char _b = _imgBitsPtr[2];
+            _myBitsPtr[0] = _r;
+            _myBitsPtr[1] = _g;
+            _myBitsPtr[2] = _b;
+            _myBitsPtr += 3;
+            _imgBitsPtr += 4;
+        }
+        RETURN( self );
     }
 error: ;
     console_printf("Image: oops - bits-size in copyPixels32\n");
 %}.
 
     anImage valuesFromX:0 y:0 toX:(self width-1) y:(self height-1) do:[:x :y :pixel |
-	|a r g b rgbPixel|
-
-	"/ bgra-pixel
-	"/ a := pixel bitAnd:16rFF.
-	r := (pixel bitShift:-8) bitAnd:16rFF.
-	g := (pixel bitShift:-16) bitAnd:16rFF.
-	b := (pixel bitShift:-24) bitAnd:16rFF.
-	rgbPixel := r + (g bitShift:8) + (b bitShift:16).
-	self pixelAtX:x y:y put:rgbPixel
+        |a r g b rgbPixel|
+
+        "/ bgra-pixel
+        "/ a := pixel bitAnd:16rFF.
+        r := (pixel bitShift:-8) bitAnd:16rFF.
+        g := (pixel bitShift:-16) bitAnd:16rFF.
+        b := (pixel bitShift:-24) bitAnd:16rFF.
+        rgbPixel := r + (g bitShift:8) + (b bitShift:16).
+        self pixelAtX:x y:y put:rgbPixel
     ].
 !
 
@@ -6746,10 +6802,10 @@
 
     visual := aDevice visualType.
     (visual == #StaticGray) ifTrue:[
-	^ self asGrayFormOn:aDevice
+        ^ self asGrayFormOn:aDevice
     ].
     (visual == #TrueColor) ifTrue:[
-	^ self rgbImageAsTrueColorFormOn:aDevice
+        ^ self rgbImageAsTrueColorFormOn:aDevice
     ].
 
     "/ PseudoColor conversion also works for StaticColor, GrayScale
@@ -6768,21 +6824,21 @@
      palette f|
 
     (depth := self depth) <= 8 ifTrue:[
-	"/ simulate it via a temporary palette image
-
-	palette := Array new:(1 bitShift:depth).
-
-	n := (1 bitShift:depth)-1.
-	0 to:n do:[:pixelValue |
-	    palette at:(pixelValue+1) put:(self colorFromValue:pixelValue)
-	].
-
-	self setColorMap:palette.
-	photometric := #palette.
-	f := self paletteImageAsPseudoFormOn:aDevice.
-	self setColorMap:nil.
-	photometric := #rgb.
-	^ f
+        "/ simulate it via a temporary palette image
+
+        palette := Array new:(1 bitShift:depth).
+
+        n := (1 bitShift:depth)-1.
+        0 to:n do:[:pixelValue |
+            palette at:(pixelValue+1) put:(self colorFromValue:pixelValue)
+        ].
+
+        self setColorMap:palette.
+        photometric := #palette.
+        f := self paletteImageAsPseudoFormOn:aDevice.
+        self setColorMap:nil.
+        photometric := #rgb.
+        ^ f
     ].
 
     ^ self subclassResponsibility
@@ -6802,7 +6858,7 @@
 
     "/ kludge for some 15bit XFree servers (should return 16 here - does not)
     usedDeviceBitsPerPixel == 15 ifTrue:[
-	usedDeviceBitsPerPixel := 16
+        usedDeviceBitsPerPixel := 16
     ].
 
     "/
@@ -6811,27 +6867,27 @@
     "/ be done in concrete subclasses (see D24Image)
     "/
     self bitsPerPixel == usedDeviceBitsPerPixel ifFalse:[
-	"/ kludge - convert to a deep image first, then to a form.
-	^ ((Image implementorForDepth:usedDeviceBitsPerPixel) fromImage:self) asFormOn:aDevice
+        "/ kludge - convert to a deep image first, then to a form.
+        ^ ((Image implementorForDepth:usedDeviceBitsPerPixel) fromImage:self) asFormOn:aDevice
 "/        'Image [warning]: unimplemented trueColor depth in rgbImageAsTrueColorFormOn: ' errorPrint. self bitsPerPixel errorPrintCR.
 "/        ^ self asMonochromeFormOn:aDevice
     ].
 
     form := Form width:width height:height depth:usedDeviceDepth onDevice:aDevice.
     form isNil ifTrue:[
-	'Image [warning]: display bitmap creation failed' errorPrintCR.
-	^ nil
+        'Image [warning]: display bitmap creation failed' errorPrintCR.
+        ^ nil
     ].
     form initGC.
 
     form
-	copyBitsFrom:self bits
-	bitsPerPixel:usedDeviceBitsPerPixel
-	depth:usedDeviceDepth
-	padding:8
-	width:width height:height
-	x:0 y:0
-	toX:0 y:0.
+        copyBitsFrom:self bits
+        bitsPerPixel:usedDeviceBitsPerPixel
+        depth:usedDeviceDepth
+        padding:8
+        width:width height:height
+        x:0 y:0
+        toX:0 y:0.
 
     ^ form
 
@@ -6846,9 +6902,9 @@
 
     bytes := bytes copy.
     (colorMap isNil or:[colorMap isKindOf:Colormap]) ifFalse:[
-	colorMap := MappedPalette withColors:colorMap.
+        colorMap := MappedPalette withColors:colorMap.
     ] ifTrue:[
-	colorMap := colorMap copy.
+        colorMap := colorMap copy.
     ].
     device := deviceForm := monoDeviceForm := fullColorDeviceForm := nil.
     mask := mask copy.
@@ -6861,17 +6917,18 @@
     "a helper for deepCopy; only indices for which this method returns
      false are copied in a deep copy."
 
-    index == 17 ifTrue:[
-	^ true "/ skip device
-    ].
-    index == 18 ifTrue:[
-	^ true "/ skip deviceForm
-    ].
-    index == 19 ifTrue:[
-	^ true "/ skip monoDeviceForm
-    ].
-    index == 20 ifTrue:[
-	^ true "/ skip fullColorDeviceForm
+    "
+        self allInstanceVariableNames indexOf:#device
+    "
+
+    index == 13 ifTrue:[
+        ^ true "/ skip device
+    ].
+    index == 14 ifTrue:[
+        ^ true "/ skip deviceForm
+    ].
+    index == 15 ifTrue:[
+        ^ true "/ skip monoDeviceForm
     ].
     ^ false
 ! !
@@ -6909,9 +6966,9 @@
      Smalltalk-80 compatibility"
 
     opaque ifTrue:[
-	self displayOpaqueOn:aGC x:x y:y .
+        self displayOpaqueOn:aGC x:x y:y .
     ] ifFalse:[
-	self displayOn:aGC x:x y:y .
+        self displayOn:aGC x:x y:y .
     ].
 !
 
@@ -6965,7 +7022,7 @@
      grey|
 
     self depth > 12 ifTrue:[
-	^ self floydSteinbergDitheredMonochromeBits
+        ^ self floydSteinbergDitheredMonochromeBits
     ].
 
     w := width.
@@ -6985,90 +7042,90 @@
     greyValues := self greyMapForRange:(255*1024).
 
     0 to:(h-1) do:[:y |
-	nextDst := dstIndex + bytesPerMonoRow.
-	byte := 0.
-	bitCnt := 8.
-
-	t := errorArray.
-	errorArray := errorArray1.
-	errorArray1 := t.
-
-	errorArray1 atAllPut:0.
-
-	self valuesAtY:y from:0 to:(w-1) do:[:x :pixel |
-	    |eP "{Class: SmallInteger }"
-	     eD
-	     eI "{Class: SmallInteger }"
-	     xE "{Class: SmallInteger }"
-	     xN "{Class: SmallInteger }" |
-
-	    "/ get the colors grey value [0 .. 1]
-	    grey := greyValues at:(pixel + 1).
-
-	    "/ adjust error
-	    xE := x + 2 + 1.
-	    grey := (grey + (errorArray at:xE)).
-
-	    byte := byte bitShift:1.
-	    grey > (127*1024) ifTrue:[
-		byte := byte bitOr:1.      "/ white
-		e := grey - (255*1024)
-	    ] ifFalse:[
-		e := grey                  "/ black
-	    ].
-
-	    e ~= 0 ifTrue:[
-		"/ distribute the error:
-		"/                  XX  8  4
-		"/             2  4  8  4  2
-
-		eD := e.
-		eI := e // 32.
-
-		eP := eI * 8. eD := eD - eP.
-
-		xN := xE + 1.
-		errorArray at:xN put:(errorArray at:xN) + eP.
-
-		eD := eD - eP.
-		errorArray1 at:xE put:(errorArray1 at:xE) + eP.
-
-		eP := eI * 4. eD := eD - eP.
-		xN := xE + 2.
-		errorArray at:xN put:(errorArray at:xN) + eP.
-
-		eD := eD - eP.
-		xN := xE - 1.
-		errorArray1 at:xN put:(errorArray1 at:xN) + eP.
-
-		eD := eD - eP.
-		xN := xE + 1.
-		errorArray1 at:xN put:(errorArray1 at:xN) + eP.
-
-		eP := eI * 2. eD := eD - eP.
-		xN := xE - 2.
-		errorArray1 at:xN put:(errorArray1 at:xN) + eP.
-
-		"/ eD := eD.
-		xN := xE + 2.
-		errorArray1 at:xN put:(errorArray1 at:xN) + eP.
-	    ].
-
-	    bitCnt := bitCnt - 1.
-	    bitCnt == 0 ifTrue:[
-		monoBits at:dstIndex put:byte.
-		dstIndex := dstIndex + 1.
-		byte := 0.
-		bitCnt := 8.
-	    ].
-
-	].
-	bitCnt ~~ 8 ifTrue:[
-	    byte := byte bitShift:bitCnt.
-	    monoBits at:dstIndex put:byte.
-	].
-
-	dstIndex := nextDst.
+        nextDst := dstIndex + bytesPerMonoRow.
+        byte := 0.
+        bitCnt := 8.
+
+        t := errorArray.
+        errorArray := errorArray1.
+        errorArray1 := t.
+
+        errorArray1 atAllPut:0.
+
+        self valuesAtY:y from:0 to:(w-1) do:[:x :pixel |
+            |eP "{Class: SmallInteger }"
+             eD
+             eI "{Class: SmallInteger }"
+             xE "{Class: SmallInteger }"
+             xN "{Class: SmallInteger }" |
+
+            "/ get the colors grey value [0 .. 1]
+            grey := greyValues at:(pixel + 1).
+
+            "/ adjust error
+            xE := x + 2 + 1.
+            grey := (grey + (errorArray at:xE)).
+
+            byte := byte bitShift:1.
+            grey > (127*1024) ifTrue:[
+                byte := byte bitOr:1.      "/ white
+                e := grey - (255*1024)
+            ] ifFalse:[
+                e := grey                  "/ black
+            ].
+
+            e ~= 0 ifTrue:[
+                "/ distribute the error:
+                "/                  XX  8  4
+                "/             2  4  8  4  2
+
+                eD := e.
+                eI := e // 32.
+
+                eP := eI * 8. eD := eD - eP.
+
+                xN := xE + 1.
+                errorArray at:xN put:(errorArray at:xN) + eP.
+
+                eD := eD - eP.
+                errorArray1 at:xE put:(errorArray1 at:xE) + eP.
+
+                eP := eI * 4. eD := eD - eP.
+                xN := xE + 2.
+                errorArray at:xN put:(errorArray at:xN) + eP.
+
+                eD := eD - eP.
+                xN := xE - 1.
+                errorArray1 at:xN put:(errorArray1 at:xN) + eP.
+
+                eD := eD - eP.
+                xN := xE + 1.
+                errorArray1 at:xN put:(errorArray1 at:xN) + eP.
+
+                eP := eI * 2. eD := eD - eP.
+                xN := xE - 2.
+                errorArray1 at:xN put:(errorArray1 at:xN) + eP.
+
+                "/ eD := eD.
+                xN := xE + 2.
+                errorArray1 at:xN put:(errorArray1 at:xN) + eP.
+            ].
+
+            bitCnt := bitCnt - 1.
+            bitCnt == 0 ifTrue:[
+                monoBits at:dstIndex put:byte.
+                dstIndex := dstIndex + 1.
+                byte := 0.
+                bitCnt := 8.
+            ].
+
+        ].
+        bitCnt ~~ 8 ifTrue:[
+            byte := byte bitShift:bitCnt.
+            monoBits at:dstIndex put:byte.
+        ].
+
+        dstIndex := nextDst.
     ].
 
     ^ monoBits
@@ -7106,61 +7163,61 @@
 
     "/ collect valid ditherColors ...
     aMapOrNil isNil ifTrue:[
-	ditherColors := colors select:[:clr | clr notNil].
+        ditherColors := colors select:[:clr | clr notNil].
     ] ifFalse:[
-	ditherColors := colors
+        ditherColors := colors
     ].
 
     "/ ... and sort by manhatten distance from black
 
     qScramble := #(
-		"/  2rX00X00X00X00
-
-		    2r000000000000    "/ 0
-		    2r000000000100    "/ 1
-		    2r000000100000    "/ 2
-		    2r000000100100    "/ 3
-		    2r000100000000    "/ 4
-		    2r000100000100    "/ 5
-		    2r000100100000    "/ 6
-		    2r000100100100    "/ 7
-		    2r100000000000    "/ 8
-		    2r100000000100    "/ 9
-		    2r100000100000    "/ a
-		    2r100000100100    "/ b
-		    2r100100000000    "/ c
-		    2r100100000100    "/ d
-		    2r100100100000    "/ e
-		    2r100100100100    "/ f
-		  ).
+                "/  2rX00X00X00X00
+
+                    2r000000000000    "/ 0
+                    2r000000000100    "/ 1
+                    2r000000100000    "/ 2
+                    2r000000100100    "/ 3
+                    2r000100000000    "/ 4
+                    2r000100000100    "/ 5
+                    2r000100100000    "/ 6
+                    2r000100100100    "/ 7
+                    2r100000000000    "/ 8
+                    2r100000000100    "/ 9
+                    2r100000100000    "/ a
+                    2r100000100100    "/ b
+                    2r100100000000    "/ c
+                    2r100100000100    "/ d
+                    2r100100100000    "/ e
+                    2r100100100100    "/ f
+                  ).
 
     ditherColors := ditherColors sort:[:a :b |
-				|cr "{Class: SmallInteger }"
-				 cg "{Class: SmallInteger }"
-				 cb "{Class: SmallInteger }"
-				 i1 "{Class: SmallInteger }"
-				 i2 "{Class: SmallInteger }"|
-
-				cr := a redByte.
-				cg := a greenByte.
-				cb := a blueByte.
-				i1 := qScramble at:((cr bitShift:-4) bitAnd:16r0F) + 1.
-				i1 := i1 + ((qScramble at:((cg bitShift:-4) bitAnd:16r0F) + 1) bitShift:-1).
-				i1 := i1 + ((qScramble at:((cb bitShift:-4) bitAnd:16r0F) + 1) bitShift:-2).
-
-				cr := b redByte.
-				cg := b greenByte.
-				cb := b blueByte.
-				i2 := qScramble at:((cr bitShift:-4) bitAnd:16r0F) + 1.
-				i2 := i2 + ((qScramble at:((cg bitShift:-4) bitAnd:16r0F) + 1) bitShift:-1).
-				i2 := i2 + ((qScramble at:((cb bitShift:-4) bitAnd:16r0F) + 1) bitShift:-2).
-
-				i1 < i2
-		    ].
+                                |cr "{Class: SmallInteger }"
+                                 cg "{Class: SmallInteger }"
+                                 cb "{Class: SmallInteger }"
+                                 i1 "{Class: SmallInteger }"
+                                 i2 "{Class: SmallInteger }"|
+
+                                cr := a redByte.
+                                cg := a greenByte.
+                                cb := a blueByte.
+                                i1 := qScramble at:((cr bitShift:-4) bitAnd:16r0F) + 1.
+                                i1 := i1 + ((qScramble at:((cg bitShift:-4) bitAnd:16r0F) + 1) bitShift:-1).
+                                i1 := i1 + ((qScramble at:((cb bitShift:-4) bitAnd:16r0F) + 1) bitShift:-2).
+
+                                cr := b redByte.
+                                cg := b greenByte.
+                                cb := b blueByte.
+                                i2 := qScramble at:((cr bitShift:-4) bitAnd:16r0F) + 1.
+                                i2 := i2 + ((qScramble at:((cg bitShift:-4) bitAnd:16r0F) + 1) bitShift:-1).
+                                i2 := i2 + ((qScramble at:((cb bitShift:-4) bitAnd:16r0F) + 1) bitShift:-2).
+
+                                i1 < i2
+                    ].
     aMapOrNil isNil ifTrue:[
-	ditherIds := (ditherColors asArray collect:[:clr | clr colorId]) asByteArray.
+        ditherIds := (ditherColors asArray collect:[:clr | clr colorId]) asByteArray.
     ] ifFalse:[
-	ditherIds := aMapOrNil asByteArray
+        ditherIds := aMapOrNil asByteArray
     ].
 
     "/ build an index table, for fast lookup from manhatten-r-g-b distance
@@ -7169,20 +7226,20 @@
     clrLookup := ByteArray new:(4096).
     index := 0.
     ditherColors keysAndValuesDo:[:clrPosition :clr |
-	|r g b i|
-
-	r := clr redByte.
-	g := clr greenByte.
-	b := clr blueByte.
-	i := qScramble at:((r bitShift:-4) bitAnd:16r0F) + 1.
-	i := i + ((qScramble at:((g bitShift:-4) bitAnd:16r0F) + 1) bitShift:-1).
-	i := i + ((qScramble at:((b bitShift:-4) bitAnd:16r0F) + 1) bitShift:-2).
-	lookupPos := i.
-
-	[index < lookupPos] whileTrue:[
-	    clrLookup at:(index+1) put:(clrPosition-1-1).
-	    index := index + 1
-	]
+        |r g b i|
+
+        r := clr redByte.
+        g := clr greenByte.
+        b := clr blueByte.
+        i := qScramble at:((r bitShift:-4) bitAnd:16r0F) + 1.
+        i := i + ((qScramble at:((g bitShift:-4) bitAnd:16r0F) + 1) bitShift:-1).
+        i := i + ((qScramble at:((b bitShift:-4) bitAnd:16r0F) + 1) bitShift:-2).
+        lookupPos := i.
+
+        [index < lookupPos] whileTrue:[
+            clrLookup at:(index+1) put:(clrPosition-1-1).
+            index := index + 1
+        ]
     ].
     clrLookup from:index+1 to:4096 put:(ditherColors size - 1).
 
@@ -7198,16 +7255,16 @@
     ditherRGBBytes := ByteArray uninitializedNew:(lastColor * 3).
     index := 1.
     1 to:lastColor do:[:pix |
-	clr := ditherColors at:pix.
-	ditherRGBBytes at:index put:(clr redByte).
-	ditherRGBBytes at:index+1 put:(clr greenByte).
-	ditherRGBBytes at:index+2 put:(clr blueByte).
-	aMapOrNil isNil ifTrue:[
-	    ditherIds at:pix put:clr colorId.
-	] ifFalse:[
-	    ditherIds at:pix put:(aMapOrNil at:pix).
-	].
-	index := index + 3.
+        clr := ditherColors at:pix.
+        ditherRGBBytes at:index put:(clr redByte).
+        ditherRGBBytes at:index+1 put:(clr greenByte).
+        ditherRGBBytes at:index+2 put:(clr blueByte).
+        aMapOrNil isNil ifTrue:[
+            ditherIds at:pix put:clr colorId.
+        ] ifFalse:[
+            ditherIds at:pix put:(aMapOrNil at:pix).
+        ].
+        index := index + 3.
     ].
 
     pseudoBits := ByteArray uninitializedNew:(width * height).
@@ -7236,23 +7293,23 @@
     int __nColors = __intVal(lastColor);
     int __wR = -1, __wG, __wB;
     static int __qScramble[16] = {
-		    0x000 /* 2r000000000000    0 */,
-		    0x004 /* 2r000000000100    1 */,
-		    0x020 /* 2r000000100000    2 */,
-		    0x024 /* 2r000000100100    3 */,
-		    0x100 /* 2r000100000000    4 */,
-		    0x104 /* 2r000100000100    5 */,
-		    0x120 /* 2r000100100000    6 */,
-		    0x124 /* 2r000100100100    7 */,
-		    0x800 /* 2r100000000000    8 */,
-		    0x804 /* 2r100000000100    9 */,
-		    0x820 /* 2r100000100000    a */,
-		    0x824 /* 2r100000100100    b */,
-		    0x900 /* 2r100100000000    c */,
-		    0x904 /* 2r100100000100    d */,
-		    0x920 /* 2r100100100000    e */,
-		    0x924 /* 2r100100100100    f */,
-		  };
+                    0x000 /* 2r000000000000    0 */,
+                    0x004 /* 2r000000000100    1 */,
+                    0x020 /* 2r000000100000    2 */,
+                    0x024 /* 2r000000100100    3 */,
+                    0x100 /* 2r000100000000    4 */,
+                    0x104 /* 2r000100000100    5 */,
+                    0x120 /* 2r000100100000    6 */,
+                    0x124 /* 2r000100100100    7 */,
+                    0x800 /* 2r100000000000    8 */,
+                    0x804 /* 2r100000000100    9 */,
+                    0x820 /* 2r100000100000    a */,
+                    0x824 /* 2r100000100100    b */,
+                    0x900 /* 2r100100000000    c */,
+                    0x904 /* 2r100100000100    d */,
+                    0x920 /* 2r100100100000    e */,
+                    0x924 /* 2r100100100100    f */,
+                  };
 
     if (__isByteArrayLike(__INST(bytes))
      && __isByteArray(pseudoBits)
@@ -7260,49 +7317,49 @@
      && __isByteArray(ditherIds)
      && __isByteArray(clrLookup)
      && __isByteArray(error)) {
-	failed = false;
-
-	srcP = __ByteArrayInstPtr(__INST(bytes))->ba_element;
-	dstP = __ByteArrayInstPtr(pseudoBits)->ba_element;
-	idP = __ByteArrayInstPtr(ditherIds)->ba_element;
-	__clrLookup = __ByteArrayInstPtr(clrLookup)->ba_element;
-	errP = (short *) __ByteArrayInstPtr(error)->ba_element;
-
-	/*
-	 * clear error accumulator
-	 */
-	eP = errP;
-	bzero(eP, (__w+2) * 2 * 3);
-
-	for (__y=__h; __y>0; __y--) {
-	    __eR = __eG = __eB = 0;
-
-	    eP = &(errP[3]);
-	    __eR = eP[0];
-	    __eG = eP[1];
-	    __eB = eP[2];
-
-	    for (__x=__w; __x>0; __x--) {
-		int __want;
-		int pix;
-		int __wantR, __wantG, __wantB;
-		int idx;
-		int tR, tG, tB;
-		int nR, nG, nB;
-		int dR, dG, dB;
-		int minDelta, bestIdx;
-		int cnt;
-
-		__wantR = *srcP++;
-		__wantG = *srcP++;
-		__wantB = *srcP++;
-
-		/*
-		 * wR, wG and wB is the wanted r/g/b value;
-		 */
-		__wantR = __wantR + __eR;
-		__wantG = __wantG + __eG;
-		__wantB = __wantB + __eB;
+        failed = false;
+
+        srcP = __ByteArrayInstPtr(__INST(bytes))->ba_element;
+        dstP = __ByteArrayInstPtr(pseudoBits)->ba_element;
+        idP = __ByteArrayInstPtr(ditherIds)->ba_element;
+        __clrLookup = __ByteArrayInstPtr(clrLookup)->ba_element;
+        errP = (short *) __ByteArrayInstPtr(error)->ba_element;
+
+        /*
+         * clear error accumulator
+         */
+        eP = errP;
+        bzero(eP, (__w+2) * 2 * 3);
+
+        for (__y=__h; __y>0; __y--) {
+            __eR = __eG = __eB = 0;
+
+            eP = &(errP[3]);
+            __eR = eP[0];
+            __eG = eP[1];
+            __eB = eP[2];
+
+            for (__x=__w; __x>0; __x--) {
+                int __want;
+                int pix;
+                int __wantR, __wantG, __wantB;
+                int idx;
+                int tR, tG, tB;
+                int nR, nG, nB;
+                int dR, dG, dB;
+                int minDelta, bestIdx;
+                int cnt;
+
+                __wantR = *srcP++;
+                __wantG = *srcP++;
+                __wantB = *srcP++;
+
+                /*
+                 * wR, wG and wB is the wanted r/g/b value;
+                 */
+                __wantR = __wantR + __eR;
+                __wantG = __wantG + __eG;
+                __wantB = __wantB + __eB;
 
 #define RED_SCALE 30
 #define GREEN_SCALE 59
@@ -7319,236 +7376,236 @@
 #define NPROBE 8
 
 #ifndef FAST_LOOKUP
-		if ((__wantR == __wR)
-		 && (__wantG == __wG)
-		 && (__wantB == __wB)) {
-		    /*
-		     * same color again - reuse last bestMatch
-		     */
-		} else
+                if ((__wantR == __wR)
+                 && (__wantG == __wG)
+                 && (__wantB == __wB)) {
+                    /*
+                     * same color again - reuse last bestMatch
+                     */
+                } else
 #endif
-		{
-		    __wR = __wantR;
-		    __wG = __wantG;
-		    __wB = __wantB;
+                {
+                    __wR = __wantR;
+                    __wG = __wantG;
+                    __wB = __wantB;
 
 #ifdef FAST_LOOKUP
-		    if(__wR > 255) __wR = 255;
-		    else if (__wR < 0) __wR = 0;
-		    if(__wG > 255) __wG = 255;
-		    else if (__wG < 0) __wG = 0;
-		    if(__wB > 255) __wB = 255;
-		    else if (__wB < 0) __wB = 0;
-
-		    {
-			int lookupIndex;
-			int idx, idx0;
-			int d, delta;
-			unsigned char *dp0;
-
-			dp = __ByteArrayInstPtr(ditherRGBBytes)->ba_element;
-			lookupIndex =    __qScramble[((__wR & 0xF0)>>4)];
-			lookupIndex |=   __qScramble[((__wG & 0xF0)>>4)] >> 1;
-			lookupIndex |=   __qScramble[((__wB & 0xF0)>>4)] >> 2;
-			idx = bestIdx =__clrLookup[lookupIndex];
-			dp += (idx+idx+idx);
-
-			/* try color at lookupIndex */
-
-			d = dp[0];
-			delta = (__wR - d) * RED_SCALE;
-			if (delta < 0) delta = -delta;
-
-			d = dp[1];
-			if (__wG > d)
-			    delta += (__wG - d) * GREEN_SCALE;
-			else
-			    delta += (d - __wG) * GREEN_SCALE;
-			d = dp[2];
-			if (__wB > d)
-			    delta += (__wB - d) * BLUE_SCALE;
-			else
-			    delta += (d - __wB) * BLUE_SCALE;
-
-			if (delta <= GOOD_DELTA) {
-			    goto foundBest;
-			}
-			minDelta = delta;
+                    if(__wR > 255) __wR = 255;
+                    else if (__wR < 0) __wR = 0;
+                    if(__wG > 255) __wG = 255;
+                    else if (__wG < 0) __wG = 0;
+                    if(__wB > 255) __wB = 255;
+                    else if (__wB < 0) __wB = 0;
+
+                    {
+                        int lookupIndex;
+                        int idx, idx0;
+                        int d, delta;
+                        unsigned char *dp0;
+
+                        dp = __ByteArrayInstPtr(ditherRGBBytes)->ba_element;
+                        lookupIndex =    __qScramble[((__wR & 0xF0)>>4)];
+                        lookupIndex |=   __qScramble[((__wG & 0xF0)>>4)] >> 1;
+                        lookupIndex |=   __qScramble[((__wB & 0xF0)>>4)] >> 2;
+                        idx = bestIdx =__clrLookup[lookupIndex];
+                        dp += (idx+idx+idx);
+
+                        /* try color at lookupIndex */
+
+                        d = dp[0];
+                        delta = (__wR - d) * RED_SCALE;
+                        if (delta < 0) delta = -delta;
+
+                        d = dp[1];
+                        if (__wG > d)
+                            delta += (__wG - d) * GREEN_SCALE;
+                        else
+                            delta += (d - __wG) * GREEN_SCALE;
+                        d = dp[2];
+                        if (__wB > d)
+                            delta += (__wB - d) * BLUE_SCALE;
+                        else
+                            delta += (d - __wB) * BLUE_SCALE;
+
+                        if (delta <= GOOD_DELTA) {
+                            goto foundBest;
+                        }
+                        minDelta = delta;
 # ifndef ONE_SHOT
-			idx0 = idx; dp0 = dp;
-			cnt = 0;
-			while ((++cnt <= NPROBE) && (idx > 0)) {
-			    /* try previous color(s) */
-
-			    idx--; dp -= 3;
-			    d = dp[0];
-			    delta = (__wR - d) * RED_SCALE;
-			    if (delta < 0) delta = -delta;
-			    d = dp[1];
-			    if (__wG > d)
-				delta += (__wG - d) * GREEN_SCALE;
-			    else
-				delta += (d - __wG) * GREEN_SCALE;
-			    d = dp[2];
-			    if (__wB > d)
-				delta += (__wB - d) * BLUE_SCALE;
-			    else
-				delta += (d - __wB) * BLUE_SCALE;
-
-			    if (delta < minDelta) {
-				bestIdx = idx;
-				if (delta <= GOOD_DELTA) {
-				    goto foundBest;
-				}
-				minDelta = delta;
-			    }
-			}
-
-			idx = idx0; dp = dp0;
-			cnt = 0;
-			while ((++cnt <= NPROBE) && (++idx < __nColors)) {
-			    /* try next color */
-
-			    dp += 3;
-			    d = dp[0];
-			    delta = (__wR - d) * RED_SCALE;
-			    if (delta < 0) delta = -delta;
-			    d = dp[1];
-			    if (__wG > d)
-				delta += (__wG - d) * GREEN_SCALE;
-			    else
-				delta += (d - __wG) * GREEN_SCALE;
-			    d = dp[2];
-			    if (__wB > d)
-				delta += (__wB - d) * BLUE_SCALE;
-			    else
-				delta += (d - __wB) * BLUE_SCALE;
-
-			    if (delta < minDelta) {
-				bestIdx = idx;
-				if (delta <= GOOD_DELTA) {
-				    goto foundBest;
-				}
-				minDelta = delta;
-			    }
-			}
+                        idx0 = idx; dp0 = dp;
+                        cnt = 0;
+                        while ((++cnt <= NPROBE) && (idx > 0)) {
+                            /* try previous color(s) */
+
+                            idx--; dp -= 3;
+                            d = dp[0];
+                            delta = (__wR - d) * RED_SCALE;
+                            if (delta < 0) delta = -delta;
+                            d = dp[1];
+                            if (__wG > d)
+                                delta += (__wG - d) * GREEN_SCALE;
+                            else
+                                delta += (d - __wG) * GREEN_SCALE;
+                            d = dp[2];
+                            if (__wB > d)
+                                delta += (__wB - d) * BLUE_SCALE;
+                            else
+                                delta += (d - __wB) * BLUE_SCALE;
+
+                            if (delta < minDelta) {
+                                bestIdx = idx;
+                                if (delta <= GOOD_DELTA) {
+                                    goto foundBest;
+                                }
+                                minDelta = delta;
+                            }
+                        }
+
+                        idx = idx0; dp = dp0;
+                        cnt = 0;
+                        while ((++cnt <= NPROBE) && (++idx < __nColors)) {
+                            /* try next color */
+
+                            dp += 3;
+                            d = dp[0];
+                            delta = (__wR - d) * RED_SCALE;
+                            if (delta < 0) delta = -delta;
+                            d = dp[1];
+                            if (__wG > d)
+                                delta += (__wG - d) * GREEN_SCALE;
+                            else
+                                delta += (d - __wG) * GREEN_SCALE;
+                            d = dp[2];
+                            if (__wB > d)
+                                delta += (__wB - d) * BLUE_SCALE;
+                            else
+                                delta += (d - __wB) * BLUE_SCALE;
+
+                            if (delta < minDelta) {
+                                bestIdx = idx;
+                                if (delta <= GOOD_DELTA) {
+                                    goto foundBest;
+                                }
+                                minDelta = delta;
+                            }
+                        }
 # endif
-		    }
-	foundBest: ;
+                    }
+        foundBest: ;
 #else
 /*
-		    if(__wR > 255) __wR = 255;
-		    else if (__wR < 0) __wR = 0;
-		    if(__wG > 255) __wG = 255;
-		    else if (__wG < 0) __wG = 0;
-		    if(__wB > 255) __wB = 255;
-		    else if (__wB < 0) __wB = 0;
+                    if(__wR > 255) __wR = 255;
+                    else if (__wR < 0) __wR = 0;
+                    if(__wG > 255) __wG = 255;
+                    else if (__wG < 0) __wG = 0;
+                    if(__wB > 255) __wB = 255;
+                    else if (__wB < 0) __wB = 0;
 */
 
-		    /* find the best matching color */
-
-		    minDelta = 99999;
-		    bestIdx = -1;
-		    dp = __ByteArrayInstPtr(ditherRGBBytes)->ba_element;
-		    for (idx = 0; idx<__nColors; idx++) {
-			int d, delta;
-
-			d = dp[0];
-			delta = (__wR - d) * RED_SCALE;
-			if (delta < 0) delta = -delta;
-			if (delta < minDelta) {
-			    d = dp[1];
-			    if (__wG > d)
-				delta += (__wG - d) * GREEN_SCALE;
-			    else
-				delta += (d - __wG) * GREEN_SCALE;
-			    if (delta < minDelta) {
-				d = dp[2];
-				if (__wB > d)
-				    delta += (__wB - d) * BLUE_SCALE;
-				else
-				    delta += (d - __wB) * BLUE_SCALE;
-
-				if (delta < minDelta) {
-				    bestIdx = idx;
-				    if (delta <= GOOD_DELTA) {
-					break;
-				    }
-				    minDelta = delta;
-				}
-			    }
-			}
-			dp += 3;
-		    }
+                    /* find the best matching color */
+
+                    minDelta = 99999;
+                    bestIdx = -1;
+                    dp = __ByteArrayInstPtr(ditherRGBBytes)->ba_element;
+                    for (idx = 0; idx<__nColors; idx++) {
+                        int d, delta;
+
+                        d = dp[0];
+                        delta = (__wR - d) * RED_SCALE;
+                        if (delta < 0) delta = -delta;
+                        if (delta < minDelta) {
+                            d = dp[1];
+                            if (__wG > d)
+                                delta += (__wG - d) * GREEN_SCALE;
+                            else
+                                delta += (d - __wG) * GREEN_SCALE;
+                            if (delta < minDelta) {
+                                d = dp[2];
+                                if (__wB > d)
+                                    delta += (__wB - d) * BLUE_SCALE;
+                                else
+                                    delta += (d - __wB) * BLUE_SCALE;
+
+                                if (delta < minDelta) {
+                                    bestIdx = idx;
+                                    if (delta <= GOOD_DELTA) {
+                                        break;
+                                    }
+                                    minDelta = delta;
+                                }
+                            }
+                        }
+                        dp += 3;
+                    }
 #endif
-		}
-		dp = __ByteArrayInstPtr(ditherRGBBytes)->ba_element;
-		dp += bestIdx * 3;
-		dR = dp[0];
-		dG = dp[1];
-		dB = dp[2];
+                }
+                dp = __ByteArrayInstPtr(ditherRGBBytes)->ba_element;
+                dp += bestIdx * 3;
+                dR = dp[0];
+                dG = dp[1];
+                dB = dp[2];
 
 /*
 console_fprintf(stderr, "want: %d/%d/%d (%d/%d/%d) got: %d/%d/%d\n",
-		__wantR, __wantG, __wantB,
-		__wR, __wG, __wB,
-		dR, dG, dB);
+                __wantR, __wantG, __wantB,
+                __wR, __wG, __wB,
+                dR, dG, dB);
 */
-		/*
-		 * store the corresponding dither colors colorId
-		 */
-		*dstP++ = idP[bestIdx];
-
-		/*
-		 * the new error & distribute the error
-		 */
-		__eR = __wantR - dR;
-		if (__eR) {
-		    tR = __eR >> 4;  /* 16th of error */
-		    nR = eP[3] + (tR * 7);/* from accu: error for (x+1 / y) */
-		    eP[0] = tR*5;         /* 5/16th for (x / y+1) */
-		    eP[-3] = tR*3;        /* 3/16th for (x-1 / y+1) */
-		    eP[3] = __eR - (tR*15);  /* 1/16th for (x+1 / y+1) */
-		    __eR = nR;
-		} else {
-		    __eR = eP[3];
-		    eP[0] = eP[-3] = eP[3] = 0;
-		}
-
-		__eG = __wantG - dG;
-		if (__eG) {
-		    tG = __eG >> 4;
-		    nG = eP[4] + (tG * 7);/* plus 7/16'th of this error */
-		    eP[1] = tG*5;
-		    eP[-2] = tG*3;
-		    eP[4] = __eG - (tG*15);
-		    __eG = nG;
-		} else {
-		    __eG = eP[4];
-		    eP[1] = eP[-2] = eP[4] = 0;
-		}
-
-		__eB = __wantB - dB;
-		if (__eB) {
-		    tB = __eB >> 4;
-		    nB = eP[5] + (tB * 7);
-		    eP[2] = tB*5;
-		    eP[-1] = tB*3;
-		    eP[5] = __eB - (tB*15);
-		    __eB = nB;
-		} else {
-		    __eB = eP[5];
-		    eP[2] = eP[-1] = eP[5] = 0;
-		}
-
-		eP += 3;
-	    }
-	}
+                /*
+                 * store the corresponding dither colors colorId
+                 */
+                *dstP++ = idP[bestIdx];
+
+                /*
+                 * the new error & distribute the error
+                 */
+                __eR = __wantR - dR;
+                if (__eR) {
+                    tR = __eR >> 4;  /* 16th of error */
+                    nR = eP[3] + (tR * 7);/* from accu: error for (x+1 / y) */
+                    eP[0] = tR*5;         /* 5/16th for (x / y+1) */
+                    eP[-3] = tR*3;        /* 3/16th for (x-1 / y+1) */
+                    eP[3] = __eR - (tR*15);  /* 1/16th for (x+1 / y+1) */
+                    __eR = nR;
+                } else {
+                    __eR = eP[3];
+                    eP[0] = eP[-3] = eP[3] = 0;
+                }
+
+                __eG = __wantG - dG;
+                if (__eG) {
+                    tG = __eG >> 4;
+                    nG = eP[4] + (tG * 7);/* plus 7/16'th of this error */
+                    eP[1] = tG*5;
+                    eP[-2] = tG*3;
+                    eP[4] = __eG - (tG*15);
+                    __eG = nG;
+                } else {
+                    __eG = eP[4];
+                    eP[1] = eP[-2] = eP[4] = 0;
+                }
+
+                __eB = __wantB - dB;
+                if (__eB) {
+                    tB = __eB >> 4;
+                    nB = eP[5] + (tB * 7);
+                    eP[2] = tB*5;
+                    eP[-1] = tB*3;
+                    eP[5] = __eB - (tB*15);
+                    __eB = nB;
+                } else {
+                    __eB = eP[5];
+                    eP[2] = eP[-1] = eP[5] = 0;
+                }
+
+                eP += 3;
+            }
+        }
     }
 %}.
     failed ifTrue:[
-	self primitiveFailed.
-	^ nil
+        self primitiveFailed.
+        ^ nil
     ].
 
     ^ pseudoBits
@@ -7591,8 +7648,8 @@
 
     "/ simple check
     (fixR * fixG * fixB) ~~ fixColors size ifTrue:[
-	self error:'invalid color array passed'.
-	^ nil
+        self error:'invalid color array passed'.
+        ^ nil
     ].
     fixIds := (fixColors asArray collect:[:clr | clr colorId]) asByteArray.
 
@@ -7604,17 +7661,17 @@
     index := 1.
 
     photometric == #palette ifTrue:[
-	lastColor := colorMap size - 1
+        lastColor := colorMap size - 1
     ] ifFalse:[
-	lastColor := 255.
+        lastColor := 255.
     ].
     0 to:lastColor do:[:pix |
-	clr := self colorFromValue:pix.
-	rgbBytes at:index put:(clr redByte).
-	rgbBytes at:index+1 put:(clr greenByte).
-	rgbBytes at:index+2 put:(clr blueByte).
-
-	index := index + 3.
+        clr := self colorFromValue:pix.
+        rgbBytes at:index put:(clr redByte).
+        rgbBytes at:index+1 put:(clr greenByte).
+        rgbBytes at:index+2 put:(clr blueByte).
+
+        index := index + 3.
     ].
 
     pseudoBits := ByteArray uninitializedNew:(width * height).
@@ -7632,18 +7689,18 @@
     fixGfixB := fixG * fixB.
     index := 1.
     0 to:255 do:[:i |
-	rgbIDX := (i * (fixR-1) + 128) // 255. "red index rounded"
-	idxAndErrRBytes at:index put:(rgbIDX * fixGfixB).
-	idxAndErrRBytes at:index+1 put:i - (rgbIDX * 255 // (fixR-1)) + 128.
-
-	rgbIDX := (i * (fixG-1) + 128) // 255. "green index rounded"
-	idxAndErrGBytes at:index put:(rgbIDX * fixB).
-	idxAndErrGBytes at:index+1 put:i - (rgbIDX * 255 // (fixG-1)) + 128.
-
-	rgbIDX := (i * (fixB-1) + 128) // 255. "blue index rounded"
-	idxAndErrBBytes at:index put:(rgbIDX ).
-	idxAndErrBBytes at:index+1 put:i - (rgbIDX * 255 // (fixB-1)) + 128.
-	index := index + 2.
+        rgbIDX := (i * (fixR-1) + 128) // 255. "red index rounded"
+        idxAndErrRBytes at:index put:(rgbIDX * fixGfixB).
+        idxAndErrRBytes at:index+1 put:i - (rgbIDX * 255 // (fixR-1)) + 128.
+
+        rgbIDX := (i * (fixG-1) + 128) // 255. "green index rounded"
+        idxAndErrGBytes at:index put:(rgbIDX * fixB).
+        idxAndErrGBytes at:index+1 put:i - (rgbIDX * 255 // (fixG-1)) + 128.
+
+        rgbIDX := (i * (fixB-1) + 128) // 255. "blue index rounded"
+        idxAndErrBBytes at:index put:(rgbIDX ).
+        idxAndErrBBytes at:index+1 put:i - (rgbIDX * 255 // (fixB-1)) + 128.
+        index := index + 2.
     ].
 
     failed := true.
@@ -7666,121 +7723,121 @@
      && __isByteArray(error)
      && __bothSmallInteger(fixR, fixG)
      && __isSmallInteger(fixB)) {
-	failed = false;
-
-	srcP = __ByteArrayInstPtr(__INST(bytes))->ba_element;
-	dstP = __ByteArrayInstPtr(pseudoBits)->ba_element;
-	rgbP = __ByteArrayInstPtr(rgbBytes)->ba_element;
-	idP = __ByteArrayInstPtr(fixIds)->ba_element;
-	__idxAndErrRBytes = __ByteArrayInstPtr(idxAndErrRBytes)->ba_element;
-	__idxAndErrGBytes = __ByteArrayInstPtr(idxAndErrGBytes)->ba_element;
-	__idxAndErrBBytes = __ByteArrayInstPtr(idxAndErrBBytes)->ba_element;
-	errP = (short *) __ByteArrayInstPtr(error)->ba_element;
-
-	eP = errP;
-
-	for (__y=__intVal(h); __y>0; __y--) {
-	    __eR = __eG = __eB = 0;
-
-	    eP = &(errP[3]);
-	    __eR = eP[0];
-	    __eG = eP[1];
-	    __eB = eP[2];
-
-	    for (__x=__w; __x>0; __x--) {
-		int __want;
-		int pix;
-		int idx;
-		int tR, tG, tB;
-		int nR, nG, nB;
-		int iRGB;
-
-		pix = *srcP++;
-
-		/*
-		 * wR, wG and wB is the wanted r/g/b value;
-		 */
-		pix = pix+pix+pix;  /* pix * 3 */
-
-		/*
-		 * compute indexR/G/B and the new error:
-		 */
-		__want = rgbP[pix]   + __eR;
-		if (__want > 255) __want = 255;
-		else if (__want < 0) __want = 0;
-		__want += __want;
-		idx = __idxAndErrRBytes[__want];
-		__eR = __idxAndErrRBytes[__want+1];
-		__eR -= 128;
-
-		__want = rgbP[pix+1] + __eG;
-		if (__want > 255) __want = 255;
-		else if (__want < 0) __want = 0;
-		__want += __want;
-		idx += __idxAndErrGBytes[__want];
-		__eG = __idxAndErrGBytes[__want+1];
-		__eG -= 128;
-
-		__want = rgbP[pix+2] + __eB;
-		if (__want > 255) __want = 255;
-		else if (__want < 0) __want = 0;
-		__want += __want;
-		idx += __idxAndErrBBytes[__want];
-		__eB = __idxAndErrBBytes[__want+1];
-		__eB -= 128;
-
-		/*
-		 * store the corresponding dither colors colorId
-		 */
-		*dstP++ = idP[idx];
-
-		/*
-		 * distribute the error
-		 */
-		if (__eR) {
-		    tR = __eR >> 4;  /* 16th of error */
-		    nR = eP[3] + (tR * 7);/* from accu: error for (x+1 / y) */
-		    eP[0] = tR*5;         /* 5/16th for (x / y+1) */
-		    eP[-3] = tR*3;        /* 3/16th for (x-1 / y+1) */
-		    eP[3] = __eR - (tR*15);  /* 1/16th for (x+1 / y+1) */
-		    __eR = nR;
-		} else {
-		    __eR = eP[3];
-		    eP[0] = eP[-3] = eP[3] = 0;
-		}
-
-		if (__eG) {
-		    tG = __eG >> 4;  /* 16th of error */
-		    nG = eP[4] + (tG * 7);/* plus 7/16'th of this error */
-		    eP[1] = tG*5;
-		    eP[-2] = tG*3;
-		    eP[4] = __eG - (tG*15);
-		    __eG = nG;
-		} else {
-		    __eG = eP[4];
-		    eP[1] = eP[-2] = eP[4] = 0;
-		}
-
-		if (__eB) {
-		    tB = __eB >> 4;  /* 16th of error */
-		    nB = eP[5] + (tB * 7);
-		    eP[2] = tB*5;
-		    eP[-1] = tB*3;
-		    eP[5] = __eB - (tB*15);
-		    __eB = nB;
-		} else {
-		    __eB = eP[5];
-		    eP[2] = eP[-1] = eP[5] = 0;
-		}
-
-		eP += 3;
-	    }
-	}
+        failed = false;
+
+        srcP = __ByteArrayInstPtr(__INST(bytes))->ba_element;
+        dstP = __ByteArrayInstPtr(pseudoBits)->ba_element;
+        rgbP = __ByteArrayInstPtr(rgbBytes)->ba_element;
+        idP = __ByteArrayInstPtr(fixIds)->ba_element;
+        __idxAndErrRBytes = __ByteArrayInstPtr(idxAndErrRBytes)->ba_element;
+        __idxAndErrGBytes = __ByteArrayInstPtr(idxAndErrGBytes)->ba_element;
+        __idxAndErrBBytes = __ByteArrayInstPtr(idxAndErrBBytes)->ba_element;
+        errP = (short *) __ByteArrayInstPtr(error)->ba_element;
+
+        eP = errP;
+
+        for (__y=__intVal(h); __y>0; __y--) {
+            __eR = __eG = __eB = 0;
+
+            eP = &(errP[3]);
+            __eR = eP[0];
+            __eG = eP[1];
+            __eB = eP[2];
+
+            for (__x=__w; __x>0; __x--) {
+                int __want;
+                int pix;
+                int idx;
+                int tR, tG, tB;
+                int nR, nG, nB;
+                int iRGB;
+
+                pix = *srcP++;
+
+                /*
+                 * wR, wG and wB is the wanted r/g/b value;
+                 */
+                pix = pix+pix+pix;  /* pix * 3 */
+
+                /*
+                 * compute indexR/G/B and the new error:
+                 */
+                __want = rgbP[pix]   + __eR;
+                if (__want > 255) __want = 255;
+                else if (__want < 0) __want = 0;
+                __want += __want;
+                idx = __idxAndErrRBytes[__want];
+                __eR = __idxAndErrRBytes[__want+1];
+                __eR -= 128;
+
+                __want = rgbP[pix+1] + __eG;
+                if (__want > 255) __want = 255;
+                else if (__want < 0) __want = 0;
+                __want += __want;
+                idx += __idxAndErrGBytes[__want];
+                __eG = __idxAndErrGBytes[__want+1];
+                __eG -= 128;
+
+                __want = rgbP[pix+2] + __eB;
+                if (__want > 255) __want = 255;
+                else if (__want < 0) __want = 0;
+                __want += __want;
+                idx += __idxAndErrBBytes[__want];
+                __eB = __idxAndErrBBytes[__want+1];
+                __eB -= 128;
+
+                /*
+                 * store the corresponding dither colors colorId
+                 */
+                *dstP++ = idP[idx];
+
+                /*
+                 * distribute the error
+                 */
+                if (__eR) {
+                    tR = __eR >> 4;  /* 16th of error */
+                    nR = eP[3] + (tR * 7);/* from accu: error for (x+1 / y) */
+                    eP[0] = tR*5;         /* 5/16th for (x / y+1) */
+                    eP[-3] = tR*3;        /* 3/16th for (x-1 / y+1) */
+                    eP[3] = __eR - (tR*15);  /* 1/16th for (x+1 / y+1) */
+                    __eR = nR;
+                } else {
+                    __eR = eP[3];
+                    eP[0] = eP[-3] = eP[3] = 0;
+                }
+
+                if (__eG) {
+                    tG = __eG >> 4;  /* 16th of error */
+                    nG = eP[4] + (tG * 7);/* plus 7/16'th of this error */
+                    eP[1] = tG*5;
+                    eP[-2] = tG*3;
+                    eP[4] = __eG - (tG*15);
+                    __eG = nG;
+                } else {
+                    __eG = eP[4];
+                    eP[1] = eP[-2] = eP[4] = 0;
+                }
+
+                if (__eB) {
+                    tB = __eB >> 4;  /* 16th of error */
+                    nB = eP[5] + (tB * 7);
+                    eP[2] = tB*5;
+                    eP[-1] = tB*3;
+                    eP[5] = __eB - (tB*15);
+                    __eB = nB;
+                } else {
+                    __eB = eP[5];
+                    eP[2] = eP[-1] = eP[5] = 0;
+                }
+
+                eP += 3;
+            }
+        }
     }
 %}.
     failed ifTrue:[
-	self primitiveFailed.
-	^ nil
+        self primitiveFailed.
+        ^ nil
     ].
 
     ^ pseudoBits
@@ -7807,8 +7864,8 @@
      eR eRB eB eLB |
 
     depth > 8 ifTrue:[
-	self error:'unimplemented conversion'.
-	^ nil
+        self error:'unimplemented conversion'.
+        ^ nil
     ].
 
     w := width.
@@ -7828,176 +7885,176 @@
     bitCnt := 8.
 
     self depth <= 12 ifTrue:[
-	"/ fetch scaled brightness values outside of loop into a table;
-	"/ use table-value in loop
-
-	greyValues := self greyMapForRange:(greyLevels).
-
-	greyPixels := greyValues collect:[:v | v isNil ifTrue:[
-						   0
-					       ] ifFalse:[
-						   v truncated]].
-
-	greyPixels := ByteArray withAll:greyPixels.
-
-	greyErrors := greyValues collect:[:v | v isNil ifTrue:[
-						   0
-					       ] ifFalse:[
-						   ((v - v truncated) * 1024) truncated
-					       ]].
-
-	0 to:(h-1) do:[:y |
-	    nextDst := dstIndex + bytesPerOutRow.
-	    byte := 0.
-
-	    t := errorArray.
-	    errorArray := nextErrorArray.
-	    nextErrorArray := t.
-
-	    nextErrorArray atAllPut:0.
-
-	    self valuesAtY:y from:0 to:(w-1) do:[:x :value |
-		|e     "{ Class: SmallInteger }"
-		 pixel "{ Class: SmallInteger }"
-		 error "{ Class: SmallInteger }"
-		 e16   "{ Class: SmallInteger }"
-		 xE    "{ Class: SmallInteger }"
-		 xN    "{ Class: SmallInteger }" |
-
-		pixel := greyPixels at:(value + 1).
-
-		"/ adjust error
-		xE := x + 2.
-		error := (greyErrors at:(value + 1)) + (errorArray at:xE).
-
-		byte := byte bitShift:depth.
-		error > 512 "0.5" ifTrue:[
-		    pixel := pixel + 1.
-		    e := error - 1024 "1.0"
-		] ifFalse:[
-		    e := error
-		].
-		byte := byte bitOr:pixel.
-
-		e ~= 0 ifTrue:[
-		    e16 := e // 16.
-
-		    eR  := e16 * 7.              "/ 7/16 to right
-		    eRB := e16 "* 1".            "/ 1/16 to right below
-		    eB  := e16 * 5.              "/ 5/16 to below
-		    eLB := e - eR - eRB - eB.  "/ 3/16 to left below
-
-		    xN := xE + 1.
-		    eR ~= 0 ifTrue:[
-			errorArray     at:xN put:(errorArray at:xN) + eR.
-		    ].
-		    eRB ~= 0 ifTrue:[
-			nextErrorArray at:xN put:(nextErrorArray at:xN) + eRB.
-		    ].
-		    eB ~= 0 ifTrue:[
-			nextErrorArray at:xE put:(nextErrorArray at:xE) + eB.
-		    ].
-		    eLB ~= 0 ifTrue:[
-			xN := xE - 1.
-			nextErrorArray at:xN put:(nextErrorArray at:xN) + eLB.
-		    ].
-		].
-
-		bitCnt := bitCnt - depth.
-		bitCnt == 0 ifTrue:[
-		    outBits at:dstIndex put:byte.
-		    dstIndex := dstIndex + 1.
-		    byte := 0.
-		    bitCnt := 8.
-		].
-
-	    ].
-	    bitCnt ~~ 8 ifTrue:[
-		byte := byte bitShift:bitCnt.
-		outBits at:dstIndex put:byte.
-		bitCnt := 8.
-	    ].
-
-	    dstIndex := nextDst.
-	].
+        "/ fetch scaled brightness values outside of loop into a table;
+        "/ use table-value in loop
+
+        greyValues := self greyMapForRange:(greyLevels).
+
+        greyPixels := greyValues collect:[:v | v isNil ifTrue:[
+                                                   0
+                                               ] ifFalse:[
+                                                   v truncated]].
+
+        greyPixels := ByteArray withAll:greyPixels.
+
+        greyErrors := greyValues collect:[:v | v isNil ifTrue:[
+                                                   0
+                                               ] ifFalse:[
+                                                   ((v - v truncated) * 1024) truncated
+                                               ]].
+
+        0 to:(h-1) do:[:y |
+            nextDst := dstIndex + bytesPerOutRow.
+            byte := 0.
+
+            t := errorArray.
+            errorArray := nextErrorArray.
+            nextErrorArray := t.
+
+            nextErrorArray atAllPut:0.
+
+            self valuesAtY:y from:0 to:(w-1) do:[:x :value |
+                |e     "{ Class: SmallInteger }"
+                 pixel "{ Class: SmallInteger }"
+                 error "{ Class: SmallInteger }"
+                 e16   "{ Class: SmallInteger }"
+                 xE    "{ Class: SmallInteger }"
+                 xN    "{ Class: SmallInteger }" |
+
+                pixel := greyPixels at:(value + 1).
+
+                "/ adjust error
+                xE := x + 2.
+                error := (greyErrors at:(value + 1)) + (errorArray at:xE).
+
+                byte := byte bitShift:depth.
+                error > 512 "0.5" ifTrue:[
+                    pixel := pixel + 1.
+                    e := error - 1024 "1.0"
+                ] ifFalse:[
+                    e := error
+                ].
+                byte := byte bitOr:pixel.
+
+                e ~= 0 ifTrue:[
+                    e16 := e // 16.
+
+                    eR  := e16 * 7.              "/ 7/16 to right
+                    eRB := e16 "* 1".            "/ 1/16 to right below
+                    eB  := e16 * 5.              "/ 5/16 to below
+                    eLB := e - eR - eRB - eB.  "/ 3/16 to left below
+
+                    xN := xE + 1.
+                    eR ~= 0 ifTrue:[
+                        errorArray     at:xN put:(errorArray at:xN) + eR.
+                    ].
+                    eRB ~= 0 ifTrue:[
+                        nextErrorArray at:xN put:(nextErrorArray at:xN) + eRB.
+                    ].
+                    eB ~= 0 ifTrue:[
+                        nextErrorArray at:xE put:(nextErrorArray at:xE) + eB.
+                    ].
+                    eLB ~= 0 ifTrue:[
+                        xN := xE - 1.
+                        nextErrorArray at:xN put:(nextErrorArray at:xN) + eLB.
+                    ].
+                ].
+
+                bitCnt := bitCnt - depth.
+                bitCnt == 0 ifTrue:[
+                    outBits at:dstIndex put:byte.
+                    dstIndex := dstIndex + 1.
+                    byte := 0.
+                    bitCnt := 8.
+                ].
+
+            ].
+            bitCnt ~~ 8 ifTrue:[
+                byte := byte bitShift:bitCnt.
+                outBits at:dstIndex put:byte.
+                bitCnt := 8.
+            ].
+
+            dstIndex := nextDst.
+        ].
     ] ifFalse:[
-	0 to:(h-1) do:[:y |
-	    nextDst := dstIndex + bytesPerOutRow.
-	    byte := 0.
-
-	    t := errorArray.
-	    errorArray := nextErrorArray.
-	    nextErrorArray := t.
-
-	    nextErrorArray atAllPut:0.
-
-	    self colorsAtY:y from:0 to:(w-1) do:[:x :clr |
-		|e     "{ Class: SmallInteger }"
-		 pixel "{ Class: SmallInteger }"
-		 error "{ Class: SmallInteger }"
-		 e16   "{ Class: SmallInteger }"
-		 xE    "{ Class: SmallInteger }"
-		 xN    "{ Class: SmallInteger }" |
-
-		grey := (clr brightness * greyLevels).
-		pixel := grey truncated.
-		error := ((grey - pixel) * 1024) truncated.
-
-		"/ adjust error
-		xE := x + 2.
-		error := error + (errorArray at:xE).
-
-		byte := byte bitShift:depth.
-		error > 512 "0.5" ifTrue:[
-		    pixel := pixel + 1.
-		    e := error - 1024 "1.0"
-		] ifFalse:[
-		    e := error
-		].
-
-		byte := byte bitOr:pixel.
-
-		e ~= 0 ifTrue:[
-		    e16 := e // 16.
-
-		    eR  := e16 * 7.              "/ 7/16 to right
-		    eRB := e16 "* 1".            "/ 1/16 to right below
-		    eB  := e16 * 5.              "/ 5/16 to below
-		    eLB := e - eR - eRB - eB.  "/ 3/16 to left below
-
-		    xN := xE + 1.
-		    eR ~= 0 ifTrue:[
-			errorArray     at:xN put:(errorArray at:xN) + eR.
-		    ].
-		    eRB ~= 0 ifTrue:[
-			nextErrorArray at:xN put:(nextErrorArray at:xN) + eRB.
-		    ].
-		    eB ~= 0 ifTrue:[
-			nextErrorArray at:xE put:(nextErrorArray at:xE) + eB.
-		    ].
-		    eLB ~= 0 ifTrue:[
-			xN := xE - 1.
-			nextErrorArray at:xN put:(nextErrorArray at:xN) + eLB.
-		    ].
-		].
-
-		bitCnt := bitCnt - depth.
-		bitCnt == 0 ifTrue:[
-		    outBits at:dstIndex put:byte.
-		    dstIndex := dstIndex + 1.
-		    byte := 0.
-		    bitCnt := 8.
-		].
-
-	    ].
-	    bitCnt ~~ 8 ifTrue:[
-		byte := byte bitShift:bitCnt.
-		outBits at:dstIndex put:byte.
-		bitCnt := 8.
-	    ].
-
-	    dstIndex := nextDst.
-	].
+        0 to:(h-1) do:[:y |
+            nextDst := dstIndex + bytesPerOutRow.
+            byte := 0.
+
+            t := errorArray.
+            errorArray := nextErrorArray.
+            nextErrorArray := t.
+
+            nextErrorArray atAllPut:0.
+
+            self colorsAtY:y from:0 to:(w-1) do:[:x :clr |
+                |e     "{ Class: SmallInteger }"
+                 pixel "{ Class: SmallInteger }"
+                 error "{ Class: SmallInteger }"
+                 e16   "{ Class: SmallInteger }"
+                 xE    "{ Class: SmallInteger }"
+                 xN    "{ Class: SmallInteger }" |
+
+                grey := (clr brightness * greyLevels).
+                pixel := grey truncated.
+                error := ((grey - pixel) * 1024) truncated.
+
+                "/ adjust error
+                xE := x + 2.
+                error := error + (errorArray at:xE).
+
+                byte := byte bitShift:depth.
+                error > 512 "0.5" ifTrue:[
+                    pixel := pixel + 1.
+                    e := error - 1024 "1.0"
+                ] ifFalse:[
+                    e := error
+                ].
+
+                byte := byte bitOr:pixel.
+
+                e ~= 0 ifTrue:[
+                    e16 := e // 16.
+
+                    eR  := e16 * 7.              "/ 7/16 to right
+                    eRB := e16 "* 1".            "/ 1/16 to right below
+                    eB  := e16 * 5.              "/ 5/16 to below
+                    eLB := e - eR - eRB - eB.  "/ 3/16 to left below
+
+                    xN := xE + 1.
+                    eR ~= 0 ifTrue:[
+                        errorArray     at:xN put:(errorArray at:xN) + eR.
+                    ].
+                    eRB ~= 0 ifTrue:[
+                        nextErrorArray at:xN put:(nextErrorArray at:xN) + eRB.
+                    ].
+                    eB ~= 0 ifTrue:[
+                        nextErrorArray at:xE put:(nextErrorArray at:xE) + eB.
+                    ].
+                    eLB ~= 0 ifTrue:[
+                        xN := xE - 1.
+                        nextErrorArray at:xN put:(nextErrorArray at:xN) + eLB.
+                    ].
+                ].
+
+                bitCnt := bitCnt - depth.
+                bitCnt == 0 ifTrue:[
+                    outBits at:dstIndex put:byte.
+                    dstIndex := dstIndex + 1.
+                    byte := 0.
+                    bitCnt := 8.
+                ].
+
+            ].
+            bitCnt ~~ 8 ifTrue:[
+                byte := byte bitShift:bitCnt.
+                outBits at:dstIndex put:byte.
+                bitCnt := 8.
+            ].
+
+            dstIndex := nextDst.
+        ].
     ].
 
     ^ outBits
@@ -8042,64 +8099,64 @@
     byte := 0.
 
     self depth <= 12 ifTrue:[
-	"/ fetch scaled brightness values outside of loop into a table;
-	"/ use table-value in loop
-
-	greyValues := self greyMapForRange:(255 * 1024).
-	greyValues := greyValues collect:[:v | v rounded].
-
-	0 to:(h-1) do:[:y |
-	    nextDst := dstIndex + bytesPerMonoRow.
-
-	    t := errorArray.
-	    errorArray := nextErrorArray.
-	    nextErrorArray := t.
-
-	    nextErrorArray atAllPut:0.
-
-	    self valuesAtY:y from:0 to:(w-1) do:[:x :pixel |
+        "/ fetch scaled brightness values outside of loop into a table;
+        "/ use table-value in loop
+
+        greyValues := self greyMapForRange:(255 * 1024).
+        greyValues := greyValues collect:[:v | v rounded].
+
+        0 to:(h-1) do:[:y |
+            nextDst := dstIndex + bytesPerMonoRow.
+
+            t := errorArray.
+            errorArray := nextErrorArray.
+            nextErrorArray := t.
+
+            nextErrorArray atAllPut:0.
+
+            self valuesAtY:y from:0 to:(w-1) do:[:x :pixel |
 %{
-		int __grey, __e;
-		int __byte = __intVal(byte);
-		OBJ *__errorArray = __ArrayInstPtr(errorArray)->a_element;
-		OBJ *__nextErrorArray = __ArrayInstPtr(nextErrorArray)->a_element;
-		int __x = __intVal(x);
-		int __eR, __eB, __eRB, __eLB, __eI;
-		int __bitCnt = __intVal(bitCnt);
-
-		__grey = __intVal(__ArrayInstPtr(greyValues)->a_element[__intVal(pixel)]);
-		__grey += __intVal(__errorArray[__x+1]);
-
-		__byte <<= 1;
-		if (__grey > 127*1024) {
-		    __e = __grey - (255*1024);
-		    __byte |= 1;
-		} else {
-		    __e = __grey;
-		}
-		if (__e) {
-		    __eI = __e >> 4;
-		    __eR  = __eI * 7;
-		    __eRB = __eI * 1;
-		    __eB  = __eI * 5;
-		    __eLB = __e - __eR - __eRB - __eB;
-		    __errorArray[__x+2] = __MKSMALLINT(__intVal(__errorArray[__x+2]) + __eR);
-		    __nextErrorArray[__x+2] = __MKSMALLINT(__intVal(__nextErrorArray[__x+2]) + __eRB);
-		    __nextErrorArray[__x+1] = __MKSMALLINT(__intVal(__nextErrorArray[__x+1]) + __eB);
-		    __nextErrorArray[__x  ] = __MKSMALLINT(__intVal(__nextErrorArray[__x  ]) + __eLB);
-
-		}
-		__bitCnt--;
-		if (__bitCnt == 0) {
-		    int __dstIndex = __intVal(dstIndex);
-
-		    __ByteArrayInstPtr(monoBits)->ba_element[__dstIndex-1] = __byte;
-		    dstIndex = __MKSMALLINT(__dstIndex + 1);
-		    __byte = 0;
-		    __bitCnt = 8;
-		}
-		byte = __MKSMALLINT(__byte);
-		bitCnt = __MKSMALLINT(__bitCnt);
+                int __grey, __e;
+                int __byte = __intVal(byte);
+                OBJ *__errorArray = __ArrayInstPtr(errorArray)->a_element;
+                OBJ *__nextErrorArray = __ArrayInstPtr(nextErrorArray)->a_element;
+                int __x = __intVal(x);
+                int __eR, __eB, __eRB, __eLB, __eI;
+                int __bitCnt = __intVal(bitCnt);
+
+                __grey = __intVal(__ArrayInstPtr(greyValues)->a_element[__intVal(pixel)]);
+                __grey += __intVal(__errorArray[__x+1]);
+
+                __byte <<= 1;
+                if (__grey > 127*1024) {
+                    __e = __grey - (255*1024);
+                    __byte |= 1;
+                } else {
+                    __e = __grey;
+                }
+                if (__e) {
+                    __eI = __e >> 4;
+                    __eR  = __eI * 7;
+                    __eRB = __eI * 1;
+                    __eB  = __eI * 5;
+                    __eLB = __e - __eR - __eRB - __eB;
+                    __errorArray[__x+2] = __MKSMALLINT(__intVal(__errorArray[__x+2]) + __eR);
+                    __nextErrorArray[__x+2] = __MKSMALLINT(__intVal(__nextErrorArray[__x+2]) + __eRB);
+                    __nextErrorArray[__x+1] = __MKSMALLINT(__intVal(__nextErrorArray[__x+1]) + __eB);
+                    __nextErrorArray[__x  ] = __MKSMALLINT(__intVal(__nextErrorArray[__x  ]) + __eLB);
+
+                }
+                __bitCnt--;
+                if (__bitCnt == 0) {
+                    int __dstIndex = __intVal(dstIndex);
+
+                    __ByteArrayInstPtr(monoBits)->ba_element[__dstIndex-1] = __byte;
+                    dstIndex = __MKSMALLINT(__dstIndex + 1);
+                    __byte = 0;
+                    __bitCnt = 8;
+                }
+                byte = __MKSMALLINT(__byte);
+                bitCnt = __MKSMALLINT(__bitCnt);
 %}.
 
 "/                |eI "{ Class: SmallInteger }"
@@ -8152,91 +8209,91 @@
 "/                    byte := 0.
 "/                    bitCnt := 8.
 "/                ].
-		  0
-	    ].
-	    bitCnt ~~ 8 ifTrue:[
-		byte := byte bitShift:bitCnt.
-		monoBits at:dstIndex put:byte.
-		bitCnt := 8.
-		byte := 0.
-	    ].
-
-	    dstIndex := nextDst.
-	].
+                  0
+            ].
+            bitCnt ~~ 8 ifTrue:[
+                byte := byte bitShift:bitCnt.
+                monoBits at:dstIndex put:byte.
+                bitCnt := 8.
+                byte := 0.
+            ].
+
+            dstIndex := nextDst.
+        ].
     ] ifFalse:[
-	'Image [info]: slow floydSteinberg dither ..' infoPrintCR.
-
-	0 to:(h-1) do:[:y |
-	    nextDst := dstIndex + bytesPerMonoRow.
-
-	    t := errorArray.
-	    errorArray := nextErrorArray.
-	    nextErrorArray := t.
-
-	    nextErrorArray atAllPut:0.
-
-	    self colorsAtY:y from:0 to:(w-1) do:[:x :clr |
-		|eI "{ Class: SmallInteger }"
-		 xE "{ Class: SmallInteger }"
-		 xN "{ Class: SmallInteger }" |
-
-		"/ get the colors grey value [0 .. 1]
-		grey := (clr brightness * 255).
-
-		"/ adjust error
-		xE := x + 2.
-		grey := (grey + (errorArray at:xE)) rounded.
-
-		byte := byte bitShift:1.
-		grey > 127 ifTrue:[
-		    byte := byte bitOr:1.      "/ white
-		    e := grey - 255
-		] ifFalse:[
-		    e := grey                  "/ black
-		].
-
-		e ~= 0 ifTrue:[
-		    eD := e.
-		    eI := e // 16.
-		    eR  := eI * 7.              "/ 7/16 to right
-		    eRB := eI "* 1".            "/ 1/16 to right below
-		    eB  := eI * 5.              "/ 5/16 to below
-		    eLB := eD - eR - eRB - eB.  "/ 3/16 to left below
-
-		    xN := xE + 1.
-		    eR ~= 0 ifTrue:[
-			errorArray     at:xN put:(errorArray at:xN) + eR.
-		    ].
-		    eRB ~= 0 ifTrue:[
-			nextErrorArray at:xN put:(nextErrorArray at:xN) + eRB.
-		    ].
-		    eB ~= 0 ifTrue:[
-			nextErrorArray at:xE put:(nextErrorArray at:xE) + eB.
-		    ].
-		    eLB ~= 0 ifTrue:[
-			xN := xE - 1.
-			nextErrorArray at:xN put:(nextErrorArray at:xN) + eLB.
-		    ].
-		].
-
-		bitCnt := bitCnt - 1.
-		bitCnt == 0 ifTrue:[
-		    monoBits at:dstIndex put:byte.
-		    dstIndex := dstIndex + 1.
-		    byte := 0.
-		    bitCnt := 8.
-		].
-
-	    ].
-	    bitCnt ~~ 8 ifTrue:[
-		byte := byte bitShift:bitCnt.
-		monoBits at:dstIndex put:byte.
-		bitCnt := 8.
-		byte := 0.
-	    ].
-
-	    dstIndex := nextDst.
-	].
+        'Image [info]: slow floydSteinberg dither ..' infoPrintCR.
+
+        0 to:(h-1) do:[:y |
+            nextDst := dstIndex + bytesPerMonoRow.
+
+            t := errorArray.
+            errorArray := nextErrorArray.
+            nextErrorArray := t.
+
+            nextErrorArray atAllPut:0.
+
+            self colorsAtY:y from:0 to:(w-1) do:[:x :clr |
+                |eI "{ Class: SmallInteger }"
+                 xE "{ Class: SmallInteger }"
+                 xN "{ Class: SmallInteger }" |
+
+                "/ get the colors grey value [0 .. 1]
+                grey := (clr brightness * 255).
+
+                "/ adjust error
+                xE := x + 2.
+                grey := (grey + (errorArray at:xE)) rounded.
+
+                byte := byte bitShift:1.
+                grey > 127 ifTrue:[
+                    byte := byte bitOr:1.      "/ white
+                    e := grey - 255
+                ] ifFalse:[
+                    e := grey                  "/ black
+                ].
+
+                e ~= 0 ifTrue:[
+                    eD := e.
+                    eI := e // 16.
+                    eR  := eI * 7.              "/ 7/16 to right
+                    eRB := eI "* 1".            "/ 1/16 to right below
+                    eB  := eI * 5.              "/ 5/16 to below
+                    eLB := eD - eR - eRB - eB.  "/ 3/16 to left below
+
+                    xN := xE + 1.
+                    eR ~= 0 ifTrue:[
+                        errorArray     at:xN put:(errorArray at:xN) + eR.
+                    ].
+                    eRB ~= 0 ifTrue:[
+                        nextErrorArray at:xN put:(nextErrorArray at:xN) + eRB.
+                    ].
+                    eB ~= 0 ifTrue:[
+                        nextErrorArray at:xE put:(nextErrorArray at:xE) + eB.
+                    ].
+                    eLB ~= 0 ifTrue:[
+                        xN := xE - 1.
+                        nextErrorArray at:xN put:(nextErrorArray at:xN) + eLB.
+                    ].
+                ].
+
+                bitCnt := bitCnt - 1.
+                bitCnt == 0 ifTrue:[
+                    monoBits at:dstIndex put:byte.
+                    dstIndex := dstIndex + 1.
+                    byte := 0.
+                    bitCnt := 8.
+                ].
+
+            ].
+            bitCnt ~~ 8 ifTrue:[
+                byte := byte bitShift:bitCnt.
+                monoBits at:dstIndex put:byte.
+                bitCnt := 8.
+                byte := 0.
+            ].
+
+            dstIndex := nextDst.
+        ].
     ].
 
     ^ monoBits
@@ -8269,49 +8326,49 @@
     self depth ~~ 8 ifTrue:[^ nil].
 
     photometric == #palette ifTrue:[
-	lastColor := colorMap size - 1
+        lastColor := colorMap size - 1
     ] ifFalse:[
-	lastColor := 255.
+        lastColor := 255.
     ].
     idMap := ByteArray uninitializedNew:256.
 
     (nRed isNil or:[nGreen isNil or:[nBlue isNil]]) ifTrue:[
-	0 to:lastColor do:[:pix |
-	    |clr repClr|
-
-	    clr := self colorFromValue:pix.
-	    repClr := clr nearestIn:fixColors.
-	    idMap at:(pix+1) put:(fixColors identityIndexOf:repClr)-1.
-	].
+        0 to:lastColor do:[:pix |
+            |clr repClr|
+
+            clr := self colorFromValue:pix.
+            repClr := clr nearestIn:fixColors.
+            idMap at:(pix+1) put:(fixColors identityIndexOf:repClr)-1.
+        ].
     ] ifFalse:[
-	fixR := nRed.
-	fixR == 0 ifTrue:[ ^ nil].
-	fixG := nGreen.
-	fixG == 0 ifTrue:[ ^ nil].
-	fixB := nBlue.
-	fixB == 0 ifTrue:[ ^ nil].
-
-	"/ simple check
-	(fixR * fixG * fixB) ~~ fixColors size ifTrue:[
-	    self error:'invalid color array passed'.
-	    ^ nil
-	].
-
-	"/
-	"/ collect colorIds
-	"/
-	fixGfixB := fixG * fixB.
-
-	0 to:lastColor do:[:pix |
-	    clr := self colorFromValue:pix.
-	    r := clr redByte.
-	    g := clr greenByte.
-	    b := clr blueByte.
-	    idx := ((r * (fixR-1) + 128) // 255) * fixGfixB.
-	    idx := idx + (((g * (fixG-1) + 128) // 255) * fixB).
-	    idx := idx + ((b * (fixB-1) + 128) // 255).
-	    idMap at:(pix+1) put:(fixColors at:(idx+1)) colorId.
-	].
+        fixR := nRed.
+        fixR == 0 ifTrue:[ ^ nil].
+        fixG := nGreen.
+        fixG == 0 ifTrue:[ ^ nil].
+        fixB := nBlue.
+        fixB == 0 ifTrue:[ ^ nil].
+
+        "/ simple check
+        (fixR * fixG * fixB) ~~ fixColors size ifTrue:[
+            self error:'invalid color array passed'.
+            ^ nil
+        ].
+
+        "/
+        "/ collect colorIds
+        "/
+        fixGfixB := fixG * fixB.
+
+        0 to:lastColor do:[:pix |
+            clr := self colorFromValue:pix.
+            r := clr redByte.
+            g := clr greenByte.
+            b := clr blueByte.
+            idx := ((r * (fixR-1) + 128) // 255) * fixGfixB.
+            idx := idx + (((g * (fixG-1) + 128) // 255) * fixB).
+            idx := idx + ((b * (fixB-1) + 128) // 255).
+            idMap at:(pix+1) put:(fixColors at:(idx+1)) colorId.
+        ].
     ].
 
     pseudoBits := ByteArray uninitializedNew:(width * height).
@@ -8319,10 +8376,10 @@
     "/ translate
 
     self bits
-	expandPixels:8         "xlate only"
-	width:width height:height
-	into:pseudoBits
-	mapping:idMap.
+        expandPixels:8         "xlate only"
+        width:width height:height
+        into:pseudoBits
+        mapping:idMap.
 
     ^ pseudoBits
 
@@ -8379,18 +8436,18 @@
     rgbBytes := ByteArray uninitializedNew:256 * 3.
 
     photometric == #palette ifTrue:[
-	lastColor := colorMap size - 1
+        lastColor := colorMap size - 1
     ] ifFalse:[
-	lastColor := 255.
+        lastColor := 255.
     ].
     index := 1.
     0 to:lastColor do:[:pix |
-	clr := self colorFromValue:pix.
-	rgbBytes at:index put:(clr redByte).
-	rgbBytes at:index+1 put:(clr greenByte).
-	rgbBytes at:index+2 put:(clr blueByte).
-
-	index := index + 3.
+        clr := self colorFromValue:pix.
+        rgbBytes at:index put:(clr redByte).
+        rgbBytes at:index+1 put:(clr greenByte).
+        rgbBytes at:index+2 put:(clr blueByte).
+
+        index := index + 3.
     ].
 
     "/ collect valid ditherColors ...
@@ -8405,13 +8462,13 @@
     ditherRGBBytes := ByteArray uninitializedNew:(lastColor * 3).
     index := 1.
     1 to:lastColor do:[:pix |
-	clr := ditherColors at:pix.
-	ditherRGBBytes at:index put:(clr redByte).
-	ditherRGBBytes at:index+1 put:(clr greenByte).
-	ditherRGBBytes at:index+2 put:(clr blueByte).
-	ditherIds at:pix put:clr colorId.
-
-	index := index + 3.
+        clr := ditherColors at:pix.
+        ditherRGBBytes at:index put:(clr redByte).
+        ditherRGBBytes at:index+1 put:(clr greenByte).
+        ditherRGBBytes at:index+2 put:(clr blueByte).
+        ditherIds at:pix put:clr colorId.
+
+        index := index + 3.
     ].
 
     "/ place the ditherColor positions into a color cube
@@ -8439,17 +8496,17 @@
     maxIDX := numR*numG*numB.
     cube := Array new:maxIDX.
     1 to:lastColor do:[:clrIdx |
-	clr := ditherColors at:clrIdx.
-	rI := clr scaledRed. rI := (rI bitShift:shR) bitAnd:maskR.
-	gI := clr scaledGreen. gI := (gI bitShift:shG) bitAnd:maskG.
-	bI := clr scaledBlue. bI := (bI bitShift:shB) bitAnd:maskB.
-	index := rI + gI + bI + 1.
-	subCubeColorCollection := cube at:index.
-	subCubeColorCollection isNil ifTrue:[
-	    subCubeColorCollection := OrderedCollection new.
-	    cube at:index put:subCubeColorCollection.
-	].
-	subCubeColorCollection add:(clrIdx - 1).
+        clr := ditherColors at:clrIdx.
+        rI := clr scaledRed. rI := (rI bitShift:shR) bitAnd:maskR.
+        gI := clr scaledGreen. gI := (gI bitShift:shG) bitAnd:maskG.
+        bI := clr scaledBlue. bI := (bI bitShift:shB) bitAnd:maskB.
+        index := rI + gI + bI + 1.
+        subCubeColorCollection := cube at:index.
+        subCubeColorCollection isNil ifTrue:[
+            subCubeColorCollection := OrderedCollection new.
+            cube at:index put:subCubeColorCollection.
+        ].
+        subCubeColorCollection add:(clrIdx - 1).
     ].
 
     shR := 1 bitShift:(bitsG+bitsB).
@@ -8457,10 +8514,10 @@
     shB := 1.
 
     1 to:maxIDX do:[:i |
-	subCubeColorCollection := cube at:i.
-	subCubeColorCollection notNil ifTrue:[
-	    cube at:i put:(subCubeColorCollection asByteArray)
-	]
+        subCubeColorCollection := cube at:i.
+        subCubeColorCollection notNil ifTrue:[
+            cube at:i put:(subCubeColorCollection asByteArray)
+        ]
     ].
 
 "/    nCube := cube copy.
@@ -8556,307 +8613,307 @@
      && __isByteArray(ditherRGBBytes)
      && __isByteArray(ditherIds)
      && __isByteArray(error)) {
-	failed = false;
-
-	srcP = __ByteArrayInstPtr(__INST(bytes))->ba_element;
-	dstP = __ByteArrayInstPtr(pseudoBits)->ba_element;
-	rgbP = __ByteArrayInstPtr(rgbBytes)->ba_element;
-	idP = __ByteArrayInstPtr(ditherIds)->ba_element;
-	errP = (short *) __ByteArrayInstPtr(error)->ba_element;
-	__cube = __ArrayInstPtr(cube)->a_element;
-
-	eP = errP;
-
-	for (__y=__h; __y>0; __y--) {
-	    eP = &(errP[3]);
-	    __eR = eP[0];
-	    __eG = eP[1];
-	    __eB = eP[2];
-
-	    for (__x=__w; __x>0; __x--) {
-		int __want;
-		int pix;
-		int __wantR, __wantG, __wantB;
-		int idx;
-		int tR, tG, tB;
-		int nR, nG, nB;
-		int __dR, __dG, __dB;
-		int minDelta, bestIdx;
-		int __iR, __iG, __iB;
-		int cR, cG, cB;
-		int delta;
-		OBJ subCubeColors;
-
-		pix = *srcP++;
-
-		/*
-		 * wR, wG and wB is the wanted r/g/b value;
-		 */
-		idx = pix+pix+pix;  /* pix * 3 */
-
-		__wR = __wantR = rgbP[idx] + __eR;
-		__wG = __wantG = rgbP[idx+1] + __eG;
-		__wB = __wantB = rgbP[idx+2] + __eB;
-		if(__wR > 255) __wR = 255;
-		else if (__wR < 0) __wR = 0;
-		if(__wG > 255) __wG = 255;
-		else if (__wG < 0) __wG = 0;
-		if(__wB > 255) __wB = 255;
-		else if (__wB < 0) __wB = 0;
-
-		__iR = __wR >> (8-BITSR);
-		__iG = __wG >> (8-BITSG);
-		__iB = __wB >> (8-BITSB);
-
-		cubeIndex = (__iR<<SHR) + (__iG<<SHG) + __iB;
-		subCubeColors = __cube[cubeIndex];
-
-		if (subCubeColors == nil) {
-		    /* search around in spirals, for the first match */
-
-		    delta = 1;
-		    while (delta < MAXRGB) {
-			/* check plane above */
-			cR = __iR + delta;
-			if ((unsigned)cR < NR) {
-			    for (cG=__iG-delta; cG<=__iG+delta; cG++) {
-				if ((unsigned)cG < NG) {
-				    for (cB=__iB-delta; cB<=__iB+delta; cB++) {
-					if ((unsigned)cB < NB) {
-					    cubeIndex2 = (cR<<SHR) + (cG<<SHG) + cB;
-					    subCubeColors = __cube[cubeIndex2];
-					    if (__isNonNilObject(subCubeColors)) {
-						goto found;
-					    }
-					}
-				    }
-				}
-			    }
-			}
-
-			/* check plane below */
-			cR = __iR - delta;
-			if ((unsigned)cR < NR) {
-			    for (cG=__iG-delta; cG<=__iG+delta; cG++) {
-				if ((unsigned)cG < NG) {
-				    for (cB=__iB-delta; cB<=__iB+delta; cB++) {
-					if ((unsigned)cB < NB) {
-					    cubeIndex2 = (cR<<SHR) + (cG<<SHG) + cB;
-					    subCubeColors = __cube[cubeIndex2];
-					    if (__isNonNilObject(subCubeColors)) {
-						goto found;
-					    }
-					}
-				    }
-				}
-			    }
-			}
-
-			/* check plane to the right */
-			cG = __iG + delta;
-			if ((unsigned)cG < NG) {
-			    for (cR=__iR-delta+1; cR<=__iR+delta-1; cR++) {
-				if ((unsigned)cR < NR) {
-				    for (cB=__iB-delta; cB<=__iB+delta; cB++) {
-					if ((unsigned)cB < NB) {
-					    cubeIndex2 = (cR<<SHR) + (cG<<SHG) + cB;
-					    subCubeColors = __cube[cubeIndex2];
-					    if (__isNonNilObject(subCubeColors)) {
-						goto found;
-					    }
-					}
-				    }
-				}
-			    }
-			}
-
-			/* check plane to the left */
-			cG = __iG - delta;
-			if ((unsigned)cG < NG) {
-			    for (cR=__iR-delta+1; cR<=__iR+delta-1; cR++) {
-				if ((unsigned)cR < NR) {
-				    for (cB=__iB-delta; cB<=__iB+delta; cB++) {
-					if ((unsigned)cB < NB) {
-					    cubeIndex2 = (cR<<SHR) + (cG<<SHG) + cB;
-					    subCubeColors = __cube[cubeIndex2];
-					    if (__isNonNilObject(subCubeColors)) {
-						goto found;
-					    }
-					}
-				    }
-				}
-			    }
-			}
-
-			/* check plane at back */
-			cB = __iB + delta;
-			if ((unsigned)cB < NB) {
-			    for (cR=__iR-delta+1; cR<=(__iR+delta-1); cR++) {
-				if ((unsigned)cR < NR) {
-				    for (cG=__iG-delta+1; cG<=(__iG+delta-1); cG++) {
-					if ((unsigned)cG < NG) {
-					    cubeIndex2 = (cR<<SHR) + (cG<<SHG) + cB;
-					    subCubeColors = __cube[cubeIndex2];
-					    if (__isNonNilObject(subCubeColors)) {
-						goto found;
-					    }
-					}
-				    }
-				}
-			    }
-			}
-
-			/* check plane at front */
-			cB = __iB - delta;
-			if ((unsigned)cB < NB) {
-			    for (cR=__iR-delta+1; cR<=(__iR+delta-1); cR++) {
-				if ((unsigned)cR < NR) {
-				    for (cG=__iG-delta+1; cG<=(__iG+delta-1); cG++) {
-					if ((unsigned)cG < NG) {
-					    cubeIndex2 = (cR<<SHR) + (cG<<SHG) + cB;
-					    subCubeColors = __cube[cubeIndex2];
-					    if (__isNonNilObject(subCubeColors)) {
-						goto found;
-					    }
-					}
-				    }
-				}
-			    }
-			}
-			delta = delta + 1;
-
-		    }
-		    /* cannot happen - will lead to a segmentation violation ... */
-		    subCubeColors = nil;
+        failed = false;
+
+        srcP = __ByteArrayInstPtr(__INST(bytes))->ba_element;
+        dstP = __ByteArrayInstPtr(pseudoBits)->ba_element;
+        rgbP = __ByteArrayInstPtr(rgbBytes)->ba_element;
+        idP = __ByteArrayInstPtr(ditherIds)->ba_element;
+        errP = (short *) __ByteArrayInstPtr(error)->ba_element;
+        __cube = __ArrayInstPtr(cube)->a_element;
+
+        eP = errP;
+
+        for (__y=__h; __y>0; __y--) {
+            eP = &(errP[3]);
+            __eR = eP[0];
+            __eG = eP[1];
+            __eB = eP[2];
+
+            for (__x=__w; __x>0; __x--) {
+                int __want;
+                int pix;
+                int __wantR, __wantG, __wantB;
+                int idx;
+                int tR, tG, tB;
+                int nR, nG, nB;
+                int __dR, __dG, __dB;
+                int minDelta, bestIdx;
+                int __iR, __iG, __iB;
+                int cR, cG, cB;
+                int delta;
+                OBJ subCubeColors;
+
+                pix = *srcP++;
+
+                /*
+                 * wR, wG and wB is the wanted r/g/b value;
+                 */
+                idx = pix+pix+pix;  /* pix * 3 */
+
+                __wR = __wantR = rgbP[idx] + __eR;
+                __wG = __wantG = rgbP[idx+1] + __eG;
+                __wB = __wantB = rgbP[idx+2] + __eB;
+                if(__wR > 255) __wR = 255;
+                else if (__wR < 0) __wR = 0;
+                if(__wG > 255) __wG = 255;
+                else if (__wG < 0) __wG = 0;
+                if(__wB > 255) __wB = 255;
+                else if (__wB < 0) __wB = 0;
+
+                __iR = __wR >> (8-BITSR);
+                __iG = __wG >> (8-BITSG);
+                __iB = __wB >> (8-BITSB);
+
+                cubeIndex = (__iR<<SHR) + (__iG<<SHG) + __iB;
+                subCubeColors = __cube[cubeIndex];
+
+                if (subCubeColors == nil) {
+                    /* search around in spirals, for the first match */
+
+                    delta = 1;
+                    while (delta < MAXRGB) {
+                        /* check plane above */
+                        cR = __iR + delta;
+                        if ((unsigned)cR < NR) {
+                            for (cG=__iG-delta; cG<=__iG+delta; cG++) {
+                                if ((unsigned)cG < NG) {
+                                    for (cB=__iB-delta; cB<=__iB+delta; cB++) {
+                                        if ((unsigned)cB < NB) {
+                                            cubeIndex2 = (cR<<SHR) + (cG<<SHG) + cB;
+                                            subCubeColors = __cube[cubeIndex2];
+                                            if (__isNonNilObject(subCubeColors)) {
+                                                goto found;
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+
+                        /* check plane below */
+                        cR = __iR - delta;
+                        if ((unsigned)cR < NR) {
+                            for (cG=__iG-delta; cG<=__iG+delta; cG++) {
+                                if ((unsigned)cG < NG) {
+                                    for (cB=__iB-delta; cB<=__iB+delta; cB++) {
+                                        if ((unsigned)cB < NB) {
+                                            cubeIndex2 = (cR<<SHR) + (cG<<SHG) + cB;
+                                            subCubeColors = __cube[cubeIndex2];
+                                            if (__isNonNilObject(subCubeColors)) {
+                                                goto found;
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+
+                        /* check plane to the right */
+                        cG = __iG + delta;
+                        if ((unsigned)cG < NG) {
+                            for (cR=__iR-delta+1; cR<=__iR+delta-1; cR++) {
+                                if ((unsigned)cR < NR) {
+                                    for (cB=__iB-delta; cB<=__iB+delta; cB++) {
+                                        if ((unsigned)cB < NB) {
+                                            cubeIndex2 = (cR<<SHR) + (cG<<SHG) + cB;
+                                            subCubeColors = __cube[cubeIndex2];
+                                            if (__isNonNilObject(subCubeColors)) {
+                                                goto found;
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+
+                        /* check plane to the left */
+                        cG = __iG - delta;
+                        if ((unsigned)cG < NG) {
+                            for (cR=__iR-delta+1; cR<=__iR+delta-1; cR++) {
+                                if ((unsigned)cR < NR) {
+                                    for (cB=__iB-delta; cB<=__iB+delta; cB++) {
+                                        if ((unsigned)cB < NB) {
+                                            cubeIndex2 = (cR<<SHR) + (cG<<SHG) + cB;
+                                            subCubeColors = __cube[cubeIndex2];
+                                            if (__isNonNilObject(subCubeColors)) {
+                                                goto found;
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+
+                        /* check plane at back */
+                        cB = __iB + delta;
+                        if ((unsigned)cB < NB) {
+                            for (cR=__iR-delta+1; cR<=(__iR+delta-1); cR++) {
+                                if ((unsigned)cR < NR) {
+                                    for (cG=__iG-delta+1; cG<=(__iG+delta-1); cG++) {
+                                        if ((unsigned)cG < NG) {
+                                            cubeIndex2 = (cR<<SHR) + (cG<<SHG) + cB;
+                                            subCubeColors = __cube[cubeIndex2];
+                                            if (__isNonNilObject(subCubeColors)) {
+                                                goto found;
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+
+                        /* check plane at front */
+                        cB = __iB - delta;
+                        if ((unsigned)cB < NB) {
+                            for (cR=__iR-delta+1; cR<=(__iR+delta-1); cR++) {
+                                if ((unsigned)cR < NR) {
+                                    for (cG=__iG-delta+1; cG<=(__iG+delta-1); cG++) {
+                                        if ((unsigned)cG < NG) {
+                                            cubeIndex2 = (cR<<SHR) + (cG<<SHG) + cB;
+                                            subCubeColors = __cube[cubeIndex2];
+                                            if (__isNonNilObject(subCubeColors)) {
+                                                goto found;
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                        delta = delta + 1;
+
+                    }
+                    /* cannot happen - will lead to a segmentation violation ... */
+                    subCubeColors = nil;
 
     found:
-		    __iR = cR;
-		    __iG = cG;
-		    __iB = cB;
-		    bestIdx = __ByteArrayInstPtr(subCubeColors)->ba_element[0];
+                    __iR = cR;
+                    __iG = cG;
+                    __iB = cB;
+                    bestIdx = __ByteArrayInstPtr(subCubeColors)->ba_element[0];
 #ifdef REMEMBER_SEARCH
-		    __cube[cubeIndex] = __MKSMALLINT(bestIdx);
+                    __cube[cubeIndex] = __MKSMALLINT(bestIdx);
 #endif
-		} else {
+                } else {
 #ifdef REMEMBER_SEARCH
-		    if (__isSmallInteger(subCubeColors)) {
-			bestIdx = __intVal(subCubeColors);
-		    } else
+                    if (__isSmallInteger(subCubeColors)) {
+                        bestIdx = __intVal(subCubeColors);
+                    } else
 #endif
-		    {
-			bestIdx = __ByteArrayInstPtr(subCubeColors)->ba_element[0];
-		    }
-		}
-
-		/*
-		 * ok, now, we have found a collection of nearby
-		 * colors in subCubeColors.
-		 *
-		 * since the error is at most 1/16 (i.e. roughly 6%),
-		 * dont care for searching the best - simply take the
-		 * first color found there.
-		 * (statistic reduces the error to even a smaller value).
-		 * There is no real problem due to that error, since
-		 * it will be diffused anyway ...
-		 */
+                    {
+                        bestIdx = __ByteArrayInstPtr(subCubeColors)->ba_element[0];
+                    }
+                }
+
+                /*
+                 * ok, now, we have found a collection of nearby
+                 * colors in subCubeColors.
+                 *
+                 * since the error is at most 1/16 (i.e. roughly 6%),
+                 * dont care for searching the best - simply take the
+                 * first color found there.
+                 * (statistic reduces the error to even a smaller value).
+                 * There is no real problem due to that error, since
+                 * it will be diffused anyway ...
+                 */
 
 #ifndef NO_FLOYD_STEINBERG
-		{
-		    unsigned char *dp;
-
-		    /*
-		     * fetch that colors r/g/b components
-		     */
-		    dp = __ByteArrayInstPtr(ditherRGBBytes)->ba_element;
-		    dp += bestIdx * 3;
-		    __dR = dp[0];
-		    __dG = dp[1];
-		    __dB = dp[2];
-		}
+                {
+                    unsigned char *dp;
+
+                    /*
+                     * fetch that colors r/g/b components
+                     */
+                    dp = __ByteArrayInstPtr(ditherRGBBytes)->ba_element;
+                    dp += bestIdx * 3;
+                    __dR = dp[0];
+                    __dG = dp[1];
+                    __dB = dp[2];
+                }
 #endif
 
 /*
 console_fprintf(stderr, "want: %d/%d/%d (%d/%d/%d) got: %d/%d/%d\n",
-		__wantR, __wantG, __wantB,
-		__wR, __wG, __wB,
-		__dR, __dG, __dB);
+                __wantR, __wantG, __wantB,
+                __wR, __wG, __wB,
+                __dR, __dG, __dB);
 */
-		/*
-		 * store the corresponding dither colors colorId
-		 */
-		*dstP++ = idP[bestIdx];
+                /*
+                 * store the corresponding dither colors colorId
+                 */
+                *dstP++ = idP[bestIdx];
 
 #ifndef NO_FLOYD_STEINBERG
-		/*
-		 * the new error & distribute the error
-		 */
-		__eR = __wantR - __dR;
-		if (__eR) {
-		    tR = __eR >> 4;  /* 16th of error */
-		    nR = eP[3] + (tR * 7);/* from accu: error for (x+1 / y) */
-		    eP[0] = tR*5;         /* 5/16th for (x / y+1) */
-		    eP[-3] = tR*3;        /* 3/16th for (x-1 / y+1) */
-		    eP[3] = __eR - (tR*15);  /* 1/16th for (x+1 / y+1) */
-		    __eR = nR;
-		} else {
-		    __eR = eP[3];
-		    eP[0] = eP[-3] = eP[3] = 0;
-		}
-
-		__eG = __wantG - __dG;
-		if (__eG) {
-		    tG = __eG >> 4;
-		    nG = eP[4] + (tG * 7);/* plus 7/16'th of this error */
-		    eP[1] = tG*5;
-		    eP[-2] = tG*3;
-		    eP[4] = __eG - (tG*15);
-		    __eG = nG;
-		} else {
-		    __eG = eP[4];
-		    eP[1] = eP[-2] = eP[4] = 0;
-		}
-
-		__eB = __wantB - __dB;
-		if (__eB) {
-		    tB = __eB >> 4;
-		    nB = eP[5] + (tB * 7);
-		    eP[2] = tB*5;
-		    eP[-1] = tB*3;
-		    eP[5] = __eB - (tB*15);
-		    __eB = nB;
-		} else {
-		    __eB = eP[5];
-		    eP[2] = eP[-1] = eP[5] = 0;
-		}
-
-		eP += 3;
+                /*
+                 * the new error & distribute the error
+                 */
+                __eR = __wantR - __dR;
+                if (__eR) {
+                    tR = __eR >> 4;  /* 16th of error */
+                    nR = eP[3] + (tR * 7);/* from accu: error for (x+1 / y) */
+                    eP[0] = tR*5;         /* 5/16th for (x / y+1) */
+                    eP[-3] = tR*3;        /* 3/16th for (x-1 / y+1) */
+                    eP[3] = __eR - (tR*15);  /* 1/16th for (x+1 / y+1) */
+                    __eR = nR;
+                } else {
+                    __eR = eP[3];
+                    eP[0] = eP[-3] = eP[3] = 0;
+                }
+
+                __eG = __wantG - __dG;
+                if (__eG) {
+                    tG = __eG >> 4;
+                    nG = eP[4] + (tG * 7);/* plus 7/16'th of this error */
+                    eP[1] = tG*5;
+                    eP[-2] = tG*3;
+                    eP[4] = __eG - (tG*15);
+                    __eG = nG;
+                } else {
+                    __eG = eP[4];
+                    eP[1] = eP[-2] = eP[4] = 0;
+                }
+
+                __eB = __wantB - __dB;
+                if (__eB) {
+                    tB = __eB >> 4;
+                    nB = eP[5] + (tB * 7);
+                    eP[2] = tB*5;
+                    eP[-1] = tB*3;
+                    eP[5] = __eB - (tB*15);
+                    __eB = nB;
+                } else {
+                    __eB = eP[5];
+                    eP[2] = eP[-1] = eP[5] = 0;
+                }
+
+                eP += 3;
 #endif
-	    }
-
-	    /*
-	     * allow for an interrupt after every row.
-	     * but care to refetch C variables
-	     */
-	    if (InterruptPending) {
-		int d_srcP = srcP - __ByteArrayInstPtr(__INST(bytes))->ba_element;
-		int d_dstP = dstP - __ByteArrayInstPtr(pseudoBits)->ba_element;
-		int d_errP = errP - (short *) __ByteArrayInstPtr(error)->ba_element;
-
-		__interrupt__();
-
-		srcP = __ByteArrayInstPtr(__INST(bytes))->ba_element + d_srcP;
-		dstP = __ByteArrayInstPtr(pseudoBits)->ba_element + d_dstP;
-		rgbP = __ByteArrayInstPtr(rgbBytes)->ba_element;
-		idP = __ByteArrayInstPtr(ditherIds)->ba_element;
-		errP = (short *) __ByteArrayInstPtr(error)->ba_element + d_errP;
-		__cube = __ArrayInstPtr(cube)->a_element;
-	    }
-	}
+            }
+
+            /*
+             * allow for an interrupt after every row.
+             * but care to refetch C variables
+             */
+            if (InterruptPending) {
+                int d_srcP = srcP - __ByteArrayInstPtr(__INST(bytes))->ba_element;
+                int d_dstP = dstP - __ByteArrayInstPtr(pseudoBits)->ba_element;
+                int d_errP = errP - (short *) __ByteArrayInstPtr(error)->ba_element;
+
+                __interrupt__();
+
+                srcP = __ByteArrayInstPtr(__INST(bytes))->ba_element + d_srcP;
+                dstP = __ByteArrayInstPtr(pseudoBits)->ba_element + d_dstP;
+                rgbP = __ByteArrayInstPtr(rgbBytes)->ba_element;
+                idP = __ByteArrayInstPtr(ditherIds)->ba_element;
+                errP = (short *) __ByteArrayInstPtr(error)->ba_element + d_errP;
+                __cube = __ArrayInstPtr(cube)->a_element;
+            }
+        }
     }
 %}.
     failed ifTrue:[
-	self primitiveFailed.
-	^ nil
+        self primitiveFailed.
+        ^ nil
     ].
 
     ^ pseudoBits
@@ -8866,9 +8923,9 @@
     "return the bitmap for a dithered depth-bitmap from the image"
 
     ^ self
-	orderedDitheredGrayBitsWithDitherMatrix:(self class orderedDitherMatrixOfSize:8)
-	ditherWidth:8
-	depth:depth.
+        orderedDitheredGrayBitsWithDitherMatrix:(self class orderedDitherMatrixOfSize:8)
+        ditherWidth:8
+        depth:depth.
 
     "Created: 24.6.1997 / 22:20:12 / cg"
 !
@@ -8893,8 +8950,8 @@
      byte            "{Class: SmallInteger }" |
 
     depth > 8 ifTrue:[
-	'IMAGE: unimplemented orderedDither conversion' errorPrintCR.
-	^ nil
+        'IMAGE: unimplemented orderedDither conversion' errorPrintCR.
+        ^ nil
     ].
 
     nDither := ditherMatrix size.
@@ -8912,144 +8969,144 @@
     dstIndex := 1.
 
     self bitsPerPixel <= 12 ifTrue:[
-	"/ fetch scaled brightness values outside of loop into a table;
-	"/ use table-value in loop
-
-	greyValues := self greyMapForRange:(greyLevels-1).
-	greyPixels := greyValues collect:[:v | v isNil ifTrue:[
-						   0
-					       ] ifFalse:[
-						   v truncated]].
-	greyPixels := ByteArray withAll:greyPixels.
-
-	greyErrors := greyValues collect:[:v | v isNil ifTrue:[
-						   0
-					       ] ifFalse:[
-						   ((v - v truncated) * nDither) rounded
-					       ]].
-	greyErrors := ByteArray withAll:greyErrors.
-
-	0 to:(h-1) do:[:y |
-	    nextDst := dstIndex + bytesPerOutRow.
-	    byte := 0.
-	    bitCnt := 8.
-
-	    self valuesAtY:y from:0 to:(w-1) do:[:x :value |
+        "/ fetch scaled brightness values outside of loop into a table;
+        "/ use table-value in loop
+
+        greyValues := self greyMapForRange:(greyLevels-1).
+        greyPixels := greyValues collect:[:v | v isNil ifTrue:[
+                                                   0
+                                               ] ifFalse:[
+                                                   v truncated]].
+        greyPixels := ByteArray withAll:greyPixels.
+
+        greyErrors := greyValues collect:[:v | v isNil ifTrue:[
+                                                   0
+                                               ] ifFalse:[
+                                                   ((v - v truncated) * nDither) rounded
+                                               ]].
+        greyErrors := ByteArray withAll:greyErrors.
+
+        0 to:(h-1) do:[:y |
+            nextDst := dstIndex + bytesPerOutRow.
+            byte := 0.
+            bitCnt := 8.
+
+            self valuesAtY:y from:0 to:(w-1) do:[:x :value |
 %{
-		int __dW = __intVal(dW);
-		int __byte = __intVal(byte);
-		/* Note: __value is reserved in Visual C++ 8 (2005) */
-		int __val = __intVal(value);
-		int __dT;
-		int __dstIdx;
-		int __pixel, __grey;
-		int __bitCnt = __intVal(bitCnt);
-		unsigned char *__greyPixels = __ByteArrayInstPtr(greyPixels)->ba_element;
-		unsigned char *__greyErrors = __ByteArrayInstPtr(greyErrors)->ba_element;
-
-		__pixel = __greyPixels[__val];
-		__grey = __greyErrors[__val];
-
-		__dT = __ByteArrayInstPtr(ditherMatrix)
-			    ->ba_element[__intVal(x) % __dW
-					 + (__intVal(y) % __intVal(dH)) * __dW];
-
-		if (__grey > __dT) {
-		    __pixel++;
-		}
-		__byte = (__byte << __intVal(depth)) | __pixel;
-
-		__bitCnt = __bitCnt - __intVal(depth);
-		if (__bitCnt == 0) {
-		    __dstIdx = __intVal(dstIndex);
-		    __ByteArrayInstPtr(outBits)->ba_element[__dstIdx-1] = __byte;
-		    __dstIdx = __dstIdx + 1;
-		    dstIndex = __MKSMALLINT(__dstIdx);
-		    __byte = 0;
-		    __bitCnt = 8;
-		}
-		byte = __MKSMALLINT(__byte);
-		bitCnt = __MKSMALLINT(__bitCnt);
+                int __dW = __intVal(dW);
+                int __byte = __intVal(byte);
+                /* Note: __value is reserved in Visual C++ 8 (2005) */
+                int __val = __intVal(value);
+                int __dT;
+                int __dstIdx;
+                int __pixel, __grey;
+                int __bitCnt = __intVal(bitCnt);
+                unsigned char *__greyPixels = __ByteArrayInstPtr(greyPixels)->ba_element;
+                unsigned char *__greyErrors = __ByteArrayInstPtr(greyErrors)->ba_element;
+
+                __pixel = __greyPixels[__val];
+                __grey = __greyErrors[__val];
+
+                __dT = __ByteArrayInstPtr(ditherMatrix)
+                            ->ba_element[__intVal(x) % __dW
+                                         + (__intVal(y) % __intVal(dH)) * __dW];
+
+                if (__grey > __dT) {
+                    __pixel++;
+                }
+                __byte = (__byte << __intVal(depth)) | __pixel;
+
+                __bitCnt = __bitCnt - __intVal(depth);
+                if (__bitCnt == 0) {
+                    __dstIdx = __intVal(dstIndex);
+                    __ByteArrayInstPtr(outBits)->ba_element[__dstIdx-1] = __byte;
+                    __dstIdx = __dstIdx + 1;
+                    dstIndex = __MKSMALLINT(__dstIdx);
+                    __byte = 0;
+                    __bitCnt = 8;
+                }
+                byte = __MKSMALLINT(__byte);
+                bitCnt = __MKSMALLINT(__bitCnt);
 %}.
-		0
-
-	    ].
-	    bitCnt ~~ 8 ifTrue:[
-		byte := byte bitShift:bitCnt.
-		outBits at:dstIndex put:byte.
-	    ].
-	    dstIndex := nextDst.
-	].
+                0
+
+            ].
+            bitCnt ~~ 8 ifTrue:[
+                byte := byte bitShift:bitCnt.
+                outBits at:dstIndex put:byte.
+            ].
+            dstIndex := nextDst.
+        ].
     ] ifFalse:[
-	'Image [info]: slow ordered dither ..' infoPrintCR.
-
-	0 to:(h-1) do:[:y |
-	    nextDst := dstIndex + bytesPerOutRow.
-	    byte := 0.
-	    bitCnt := 8.
-
-	    "/ this is the representaion independent (but slow)
-	    "/ inner loop - it extracts colors from the receiver
-
-	    self colorsAtY:y from:0 to:(w-1) do:[:x :clr |
-		|dstClr grey dT pixel|
-
-		"/ get the colors grey value [0 .. 1]
-		grey := clr brightness.
-
-		"/ remap into [0 .. greyLevels-1]
-		grey := grey * (greyLevels-1).
-
-		"/ get threshold pixel [0 .. greyLevels-1]
-
-		pixel := grey truncated.
-
-		"/ compute the error [0..1]
-		grey := grey - pixel.
-
-		"/ map into dither space [0 .. nDither]
-		grey := (grey * (nDither)) rounded.
+        'Image [info]: slow ordered dither ..' infoPrintCR.
+
+        0 to:(h-1) do:[:y |
+            nextDst := dstIndex + bytesPerOutRow.
+            byte := 0.
+            bitCnt := 8.
+
+            "/ this is the representaion independent (but slow)
+            "/ inner loop - it extracts colors from the receiver
+
+            self colorsAtY:y from:0 to:(w-1) do:[:x :clr |
+                |dstClr grey dT pixel|
+
+                "/ get the colors grey value [0 .. 1]
+                grey := clr brightness.
+
+                "/ remap into [0 .. greyLevels-1]
+                grey := grey * (greyLevels-1).
+
+                "/ get threshold pixel [0 .. greyLevels-1]
+
+                pixel := grey truncated.
+
+                "/ compute the error [0..1]
+                grey := grey - pixel.
+
+                "/ map into dither space [0 .. nDither]
+                grey := (grey * (nDither)) rounded.
 
 %{
-		int __dW = __intVal(dW);
-		int __byte = __intVal(byte);
-		int __dT;
-		int __dstIdx;
-		int __pixel;
-		int __bitCnt = __intVal(bitCnt);
-
-		__dT = __ByteArrayInstPtr(ditherMatrix)
-			    ->ba_element[__intVal(x) % __dW
-					 + (__intVal(y) % __intVal(dH)) * __dW];
-
-		__pixel = __intVal(pixel);
-
-		if (__intVal(grey) > __dT) {
-		    __pixel++;
-		}
-		__byte = (__byte << __intVal(depth)) | __pixel;
-
-		__bitCnt = __bitCnt - __intVal(depth);
-		if (__bitCnt == 0) {
-		    __dstIdx = __intVal(dstIndex);
-		    __ByteArrayInstPtr(outBits)->ba_element[__dstIdx-1] = __byte;
-		    __dstIdx = __dstIdx + 1;
-		    dstIndex = __MKSMALLINT(__dstIdx);
-		    __byte = 0;
-		    __bitCnt = 8;
-		}
-		byte = __MKSMALLINT(__byte);
-		bitCnt = __MKSMALLINT(__bitCnt);
+                int __dW = __intVal(dW);
+                int __byte = __intVal(byte);
+                int __dT;
+                int __dstIdx;
+                int __pixel;
+                int __bitCnt = __intVal(bitCnt);
+
+                __dT = __ByteArrayInstPtr(ditherMatrix)
+                            ->ba_element[__intVal(x) % __dW
+                                         + (__intVal(y) % __intVal(dH)) * __dW];
+
+                __pixel = __intVal(pixel);
+
+                if (__intVal(grey) > __dT) {
+                    __pixel++;
+                }
+                __byte = (__byte << __intVal(depth)) | __pixel;
+
+                __bitCnt = __bitCnt - __intVal(depth);
+                if (__bitCnt == 0) {
+                    __dstIdx = __intVal(dstIndex);
+                    __ByteArrayInstPtr(outBits)->ba_element[__dstIdx-1] = __byte;
+                    __dstIdx = __dstIdx + 1;
+                    dstIndex = __MKSMALLINT(__dstIdx);
+                    __byte = 0;
+                    __bitCnt = 8;
+                }
+                byte = __MKSMALLINT(__byte);
+                bitCnt = __MKSMALLINT(__bitCnt);
 %}.
-		0
-
-	    ].
-	    bitCnt ~~ 8 ifTrue:[
-		byte := byte bitShift:bitCnt.
-		outBits at:dstIndex put:byte.
-	    ].
-	    dstIndex := nextDst.
-	].
+                0
+
+            ].
+            bitCnt ~~ 8 ifTrue:[
+                byte := byte bitShift:bitCnt.
+                outBits at:dstIndex put:byte.
+            ].
+            dstIndex := nextDst.
+        ].
     ].
     ^ outBits
 !
@@ -9059,8 +9116,8 @@
      using a default ditherMatrix."
 
     ^ self
-	orderedDitheredMonochromeBitsWithDitherMatrix:(self class orderedDitherMatrixOfSize:8)
-	ditherWidth:8
+        orderedDitheredMonochromeBitsWithDitherMatrix:(self class orderedDitherMatrixOfSize:8)
+        ditherWidth:8
 
     "Created: 11.6.1996 / 16:48:57 / cg"
 !
@@ -9095,99 +9152,99 @@
     dstIndex := 1.
 
     self bitsPerPixel <= 12 ifTrue:[
-	"/ fetch scaled brightness values outside of loop into a table;
-	"/ use table-value in loop
-
-	greyValues := self greyByteMapForRange:nDither.
-
-	0 to:(h-1) do:[:y |
-	    nextDst := dstIndex + bytesPerMonoRow.
-	    byte := 0.
-	    bitCnt := 8.
-	    self valuesAtY:y from:0 to:(w-1) do:[:x :value |
+        "/ fetch scaled brightness values outside of loop into a table;
+        "/ use table-value in loop
+
+        greyValues := self greyByteMapForRange:nDither.
+
+        0 to:(h-1) do:[:y |
+            nextDst := dstIndex + bytesPerMonoRow.
+            byte := 0.
+            bitCnt := 8.
+            self valuesAtY:y from:0 to:(w-1) do:[:x :value |
 %{
-		int __dW = __intVal(dW);
-		int __byte = __intVal(byte);
-		int __dT;
-		int __dstIdx;
-		int __bitCnt = __intVal(bitCnt);
-		int __grey;
-		unsigned char *__greyValues = __ByteArrayInstPtr(greyValues)->ba_element;
-
-		__grey = __greyValues[__intVal(value)];
-
-		__dT = __ByteArrayInstPtr(ditherMatrix)
-			    ->ba_element[__intVal(x) % __dW
-					 + (__intVal(y) % __intVal(dH)) * __dW];
-
-		__byte = __byte << 1;
-		if (__grey > __dT) {
-		    __byte = __byte | 1;            /* white */
-		}
-		__bitCnt = __bitCnt - 1;
-		if (__bitCnt == 0) {
-		    __dstIdx = __intVal(dstIndex);
-		    __ByteArrayInstPtr(monoBits)->ba_element[__dstIdx-1] = __byte;
-		    __dstIdx = __dstIdx + 1;
-		    dstIndex = __MKSMALLINT(__dstIdx);
-		    __byte = 0;
-		    __bitCnt = 8;
-		}
-		byte = __MKSMALLINT(__byte);
-		bitCnt = __MKSMALLINT(__bitCnt);
+                int __dW = __intVal(dW);
+                int __byte = __intVal(byte);
+                int __dT;
+                int __dstIdx;
+                int __bitCnt = __intVal(bitCnt);
+                int __grey;
+                unsigned char *__greyValues = __ByteArrayInstPtr(greyValues)->ba_element;
+
+                __grey = __greyValues[__intVal(value)];
+
+                __dT = __ByteArrayInstPtr(ditherMatrix)
+                            ->ba_element[__intVal(x) % __dW
+                                         + (__intVal(y) % __intVal(dH)) * __dW];
+
+                __byte = __byte << 1;
+                if (__grey > __dT) {
+                    __byte = __byte | 1;            /* white */
+                }
+                __bitCnt = __bitCnt - 1;
+                if (__bitCnt == 0) {
+                    __dstIdx = __intVal(dstIndex);
+                    __ByteArrayInstPtr(monoBits)->ba_element[__dstIdx-1] = __byte;
+                    __dstIdx = __dstIdx + 1;
+                    dstIndex = __MKSMALLINT(__dstIdx);
+                    __byte = 0;
+                    __bitCnt = 8;
+                }
+                byte = __MKSMALLINT(__byte);
+                bitCnt = __MKSMALLINT(__bitCnt);
 %}.
-		0
-	    ].
-	    bitCnt ~~ 8 ifTrue:[
-		byte := byte bitShift:bitCnt.
-		monoBits at:dstIndex put:byte.
-	    ].
-	    dstIndex := nextDst.
-	].
+                0
+            ].
+            bitCnt ~~ 8 ifTrue:[
+                byte := byte bitShift:bitCnt.
+                monoBits at:dstIndex put:byte.
+            ].
+            dstIndex := nextDst.
+        ].
     ] ifFalse:[
-	'Image [info]: slow ordered dither ..' infoPrintCR.
-
-	0 to:(h-1) do:[:y |
-	    nextDst := dstIndex + bytesPerMonoRow.
-	    byte := 0.
-	    bitCnt := 8.
-	    self colorsAtY:y from:0 to:(w-1) do:[:x :clr |
-		|dstClr grey dT|
-
-		"/ get the colors grey value [0 .. 1]
-		grey := clr brightness.
-
-		"/ map into dither space [0 .. nDither]
-		grey := (grey * (nDither)) rounded.
+        'Image [info]: slow ordered dither ..' infoPrintCR.
+
+        0 to:(h-1) do:[:y |
+            nextDst := dstIndex + bytesPerMonoRow.
+            byte := 0.
+            bitCnt := 8.
+            self colorsAtY:y from:0 to:(w-1) do:[:x :clr |
+                |dstClr grey dT|
+
+                "/ get the colors grey value [0 .. 1]
+                grey := clr brightness.
+
+                "/ map into dither space [0 .. nDither]
+                grey := (grey * (nDither)) rounded.
 
 %{
-		int __dW = __intVal(dW);
-		int __byte = __intVal(byte);
-		int __dT;
-		int __dstIdx;
-		int __bitCnt = __intVal(bitCnt);
-
-		__dT = __ByteArrayInstPtr(ditherMatrix)
-			    ->ba_element[__intVal(x) % __dW
-					 + (__intVal(y) % __intVal(dH)) * __dW];
-
-		__byte = __byte << 1;
-		if (__intVal(grey) > __dT) {
-		    __byte = __byte | 1;            /* white */
-		}
-		__bitCnt = __bitCnt - 1;
-		if (__bitCnt == 0) {
-		    __dstIdx = __intVal(dstIndex);
-		    __ByteArrayInstPtr(monoBits)->ba_element[__dstIdx-1] = __byte;
-		    __dstIdx = __dstIdx + 1;
-		    dstIndex = __MKSMALLINT(__dstIdx);
-		    __byte = 0;
-		    __bitCnt = 8;
-		}
-		byte = __MKSMALLINT(__byte);
-		bitCnt = __MKSMALLINT(__bitCnt);
+                int __dW = __intVal(dW);
+                int __byte = __intVal(byte);
+                int __dT;
+                int __dstIdx;
+                int __bitCnt = __intVal(bitCnt);
+
+                __dT = __ByteArrayInstPtr(ditherMatrix)
+                            ->ba_element[__intVal(x) % __dW
+                                         + (__intVal(y) % __intVal(dH)) * __dW];
+
+                __byte = __byte << 1;
+                if (__intVal(grey) > __dT) {
+                    __byte = __byte | 1;            /* white */
+                }
+                __bitCnt = __bitCnt - 1;
+                if (__bitCnt == 0) {
+                    __dstIdx = __intVal(dstIndex);
+                    __ByteArrayInstPtr(monoBits)->ba_element[__dstIdx-1] = __byte;
+                    __dstIdx = __dstIdx + 1;
+                    dstIndex = __MKSMALLINT(__dstIdx);
+                    __byte = 0;
+                    __bitCnt = 8;
+                }
+                byte = __MKSMALLINT(__byte);
+                bitCnt = __MKSMALLINT(__bitCnt);
 %}.
-		0
+                0
 
 "/                dT := ditherMatrix at:(x \\ dW) + (y \\ dH * dW) + 1.
 "/
@@ -9203,13 +9260,13 @@
 "/                    bitCnt := 8.
 "/                ].
 
-	    ].
-	    bitCnt ~~ 8 ifTrue:[
-		byte := byte bitShift:bitCnt.
-		monoBits at:dstIndex put:byte.
-	    ].
-	    dstIndex := nextDst.
-	].
+            ].
+            bitCnt ~~ 8 ifTrue:[
+                byte := byte bitShift:bitCnt.
+                monoBits at:dstIndex put:byte.
+            ].
+            dstIndex := nextDst.
+        ].
     ].
     ^ monoBits
 !
@@ -9234,7 +9291,7 @@
      xE              "{Class: SmallInteger }" |
 
     self depth > 12 ifTrue:[
-	^ self floydSteinbergDitheredMonochromeBits
+        ^ self floydSteinbergDitheredMonochromeBits
     ].
 
     w := width.
@@ -9256,98 +9313,98 @@
     greyValues := self greyMapForRange:(255 * 1024).
 
     0 to:(h-1) do:[:y |
-	nextDst := dstIndex + bytesPerMonoRow.
-	byte := 0.
-	bitCnt := 8.
-
-	t := errorArray.
-	errorArray := errorArray1.
-	errorArray1 := errorArray2.
-	errorArray2 := errorArray3.
-	errorArray3 := t.
-
-	errorArray3 atAllPut:0.
-
-	self valuesAtY:y from:0 to:(w-1) do:[:x :pixel |
-	    |eP eD|
-
-	    "/ get the colors grey value [0 .. 1]
-	    grey := greyValues at:(pixel + 1).
-
-	    "/ adjust error
-	    xE := x + 3 + 1.
-	    grey := (grey + (errorArray at:xE)).
-
-	    byte := byte bitShift:1.
-	    grey > (127 * 1024) ifTrue:[
-		byte := byte bitOr:1.      "/ white
-		e := grey - (255 * 1024)
-	    ] ifFalse:[
-		e := grey                  "/ black
-	    ].
-
-	    e ~= 0 ifTrue:[
-		"/ distribute the error:
-		"/                  XX    32
-		"/         12    26    30    16
-		"/            12    26    12
-		"/          5    12    12     5
-
-		eD := e.
-		e := e // 200.
-
-		eP := e * 32. eD := eD - eP.
-		errorArray at:xE+2 put:(errorArray at:xE+2) + eP.
-
-		eP := e * 30. eD := eD - eP.
-		errorArray1 at:xE+1 put:(errorArray1 at:xE+1) + eP.
-
-		eP := e * 16. eD := eD - eP.
-		errorArray1 at:xE+3 put:(errorArray1 at:xE+3) + eP.
-
-		eP := e * 26. eD := eD - eP.
-		errorArray1 at:xE-1 put:(errorArray1 at:xE-1) + eP.
-
-		eD := eD - eP.
-		errorArray2 at:xE put:(errorArray2 at:xE) + eP.
-
-		eP := e * 12. eD := eD - eP.
-		errorArray1 at:xE-3 put:(errorArray1 at:xE-3) + eP.
-
-		eD := eD - eP.
-		errorArray2 at:xE-2 put:(errorArray2 at:xE-2) + eP.
-
-		eD := eD - eP.
-		errorArray2 at:xE+2 put:(errorArray2 at:xE+2) + eP.
-
-		eD := eD - eP.
-		errorArray3 at:xE-1 put:(errorArray3 at:xE-1) + eP.
-
-		eD := eD - eP.
-		errorArray3 at:xE+1 put:(errorArray3 at:xE+1) + eP.
-
-		eP := e * 5. eD := eD - eP.
-		errorArray3 at:xE-3 put:(errorArray3 at:xE-3) + eP.
-
-		eP := eD.
-		errorArray3 at:xE+3 put:(errorArray3 at:xE+3) + eP.
-	    ].
-
-	    bitCnt := bitCnt - 1.
-	    bitCnt == 0 ifTrue:[
-		monoBits at:dstIndex put:byte.
-		dstIndex := dstIndex + 1.
-		byte := 0.
-		bitCnt := 8.
-	    ].
-
-	].
-	bitCnt ~~ 8 ifTrue:[
-	    byte := byte bitShift:bitCnt.
-	    monoBits at:dstIndex put:byte.
-	].
-
-	dstIndex := nextDst.
+        nextDst := dstIndex + bytesPerMonoRow.
+        byte := 0.
+        bitCnt := 8.
+
+        t := errorArray.
+        errorArray := errorArray1.
+        errorArray1 := errorArray2.
+        errorArray2 := errorArray3.
+        errorArray3 := t.
+
+        errorArray3 atAllPut:0.
+
+        self valuesAtY:y from:0 to:(w-1) do:[:x :pixel |
+            |eP eD|
+
+            "/ get the colors grey value [0 .. 1]
+            grey := greyValues at:(pixel + 1).
+
+            "/ adjust error
+            xE := x + 3 + 1.
+            grey := (grey + (errorArray at:xE)).
+
+            byte := byte bitShift:1.
+            grey > (127 * 1024) ifTrue:[
+                byte := byte bitOr:1.      "/ white
+                e := grey - (255 * 1024)
+            ] ifFalse:[
+                e := grey                  "/ black
+            ].
+
+            e ~= 0 ifTrue:[
+                "/ distribute the error:
+                "/                  XX    32
+                "/         12    26    30    16
+                "/            12    26    12
+                "/          5    12    12     5
+
+                eD := e.
+                e := e // 200.
+
+                eP := e * 32. eD := eD - eP.
+                errorArray at:xE+2 put:(errorArray at:xE+2) + eP.
+
+                eP := e * 30. eD := eD - eP.
+                errorArray1 at:xE+1 put:(errorArray1 at:xE+1) + eP.
+
+                eP := e * 16. eD := eD - eP.
+                errorArray1 at:xE+3 put:(errorArray1 at:xE+3) + eP.
+
+                eP := e * 26. eD := eD - eP.
+                errorArray1 at:xE-1 put:(errorArray1 at:xE-1) + eP.
+
+                eD := eD - eP.
+                errorArray2 at:xE put:(errorArray2 at:xE) + eP.
+
+                eP := e * 12. eD := eD - eP.
+                errorArray1 at:xE-3 put:(errorArray1 at:xE-3) + eP.
+
+                eD := eD - eP.
+                errorArray2 at:xE-2 put:(errorArray2 at:xE-2) + eP.
+
+                eD := eD - eP.
+                errorArray2 at:xE+2 put:(errorArray2 at:xE+2) + eP.
+
+                eD := eD - eP.
+                errorArray3 at:xE-1 put:(errorArray3 at:xE-1) + eP.
+
+                eD := eD - eP.
+                errorArray3 at:xE+1 put:(errorArray3 at:xE+1) + eP.
+
+                eP := e * 5. eD := eD - eP.
+                errorArray3 at:xE-3 put:(errorArray3 at:xE-3) + eP.
+
+                eP := eD.
+                errorArray3 at:xE+3 put:(errorArray3 at:xE+3) + eP.
+            ].
+
+            bitCnt := bitCnt - 1.
+            bitCnt == 0 ifTrue:[
+                monoBits at:dstIndex put:byte.
+                dstIndex := dstIndex + 1.
+                byte := 0.
+                bitCnt := 8.
+            ].
+
+        ].
+        bitCnt ~~ 8 ifTrue:[
+            byte := byte bitShift:bitCnt.
+            monoBits at:dstIndex put:byte.
+        ].
+
+        dstIndex := nextDst.
     ].
 
     ^ monoBits
@@ -9388,7 +9445,7 @@
     hI := self height.
 
     tempForm := Form width:wI height:hI depth:1 onDevice:Screen current.
-    tempForm 
+    tempForm
         paint:(Color colorId:1) on:(Color colorId:0);
         clear.
     tempForm displayArcOrigin:origin corner:corner from:startAngle angle:angle.
@@ -9448,7 +9505,7 @@
     hI := aRectangle height.
 
     tempForm := Form width:wI height:hI depth:1 onDevice:Screen current.
-    tempForm 
+    tempForm
         paint:(Color colorId:1) on:(Color colorId:0);
         clear.
     tempForm displayArcIn:(0@0 extent:wI@hI) from:0 angle:360.
@@ -9489,7 +9546,7 @@
 
     pixelValue := aColorOrPixelValue.
     pixelValue isInteger ifFalse:[
-	pixelValue := self valueFromColor:aColorOrPixelValue
+        pixelValue := self valueFromColor:aColorOrPixelValue
     ].
     self drawLineFrom:startPoint to:endPoint withValue:pixelValue
 
@@ -9525,28 +9582,28 @@
 
     steep := (y1 - y0) abs > (x1 - x0) abs.
     steep ifTrue:[
-	t := x0. x0 := y0. y0 := t.
-	t := x1. x1 := y1. y1 := t.
+        t := x0. x0 := y0. y0 := t.
+        t := x1. x1 := y1. y1 := t.
     ].
     x0 > x1 ifTrue:[
-	t := x0. x0 := x1. x1 := t.
-	t := y0. y0 := y1. y1 := t.
+        t := x0. x0 := x1. x1 := t.
+        t := y0. y0 := y1. y1 := t.
     ].
 
     deltax := x1 - x0.
     deltay := (y1 - y0) abs.
 
     deltax == 0 ifTrue:[
-	y0 to: y1 do:[:y |
-	    self atImageAndMask:x0@y putValue:aPixelValueOrNil.
-	].
-	^ self.
+        y0 to: y1 do:[:y |
+            self atImageAndMask:x0@y putValue:aPixelValueOrNil.
+        ].
+        ^ self.
     ].
     deltay == 0 ifTrue:[
-	x0 to: x1 do:[:x |
-	    self atImageAndMask:x@y0 putValue:aPixelValueOrNil.
-	].
-	^ self.
+        x0 to: x1 do:[:x |
+            self atImageAndMask:x@y0 putValue:aPixelValueOrNil.
+        ].
+        ^ self.
     ].
 
     error := 0.
@@ -9555,16 +9612,16 @@
     y0 < y1 ifTrue:[ ystep := 1 ] ifFalse:[ ystep := -1 ].
 
     x0 to: x1 do:[:x |
-	steep ifTrue:[
-	    self atImageAndMask:y@x putValue:aPixelValueOrNil.
-	] ifFalse:[
-	    self atImageAndMask:x@y putValue:aPixelValueOrNil.
-	].
-	error := error + deltaerr.
-	error >= 0.5 ifTrue:[
-	    y := y + ystep.
-	    error := error - 1.
-	]
+        steep ifTrue:[
+            self atImageAndMask:y@x putValue:aPixelValueOrNil.
+        ] ifFalse:[
+            self atImageAndMask:x@y putValue:aPixelValueOrNil.
+        ].
+        error := error + deltaerr.
+        error >= 0.5 ifTrue:[
+            y := y + ystep.
+            error := error - 1.
+        ]
     ].
     self release. "/ device-image is no longer valid
 
@@ -9616,12 +9673,12 @@
     hI := aRectangle height.
 
     xI to:xI+wI-1 do:[:xRun|
-	self atImageAndMask: xRun@yI put:aPixelValueOrNil.
-	self atImageAndMask: xRun@(yI+hI-1) put:aPixelValueOrNil
+        self atImageAndMask: xRun@yI put:aPixelValueOrNil.
+        self atImageAndMask: xRun@(yI+hI-1) put:aPixelValueOrNil
     ].
     yI+1 to:yI+hI-2 do:[:yRun|
-	self atImageAndMask: xI@yRun put:aPixelValueOrNil.
-	self atImageAndMask: xI+wI-1@yRun put:aPixelValueOrNil
+        self atImageAndMask: xI@yRun put:aPixelValueOrNil.
+        self atImageAndMask: xI+wI-1@yRun put:aPixelValueOrNil
     ].
     self release. "/ device-image is no longer valid
 
@@ -9647,7 +9704,7 @@
     hI := self height.
 
     tempForm := Form width:wI height:hI depth:1 onDevice:Screen current.
-    tempForm 
+    tempForm
         paint:(Color colorId:1) on:(Color colorId:0);
         clear.
     tempForm fillArc:origin radius:r from:startAngle angle:angle.
@@ -9704,7 +9761,7 @@
     hI := self height.
 
     tempForm := Form width:wI height:hI depth:1 onDevice:Screen current.
-    tempForm 
+    tempForm
         paint:(Color colorId:1) on:(Color colorId:0);
         clear.
     tempForm fillArc:origin radius:r from:startAngle angle:angle.
@@ -9771,7 +9828,7 @@
     hI := aRectangle height.
 
     tempForm := Form width:wI height:hI depth:1 onDevice:Screen current.
-    tempForm 
+    tempForm
         paint:(Color colorId:1) on:(Color colorId:0);
         clear.
     tempForm fillArcIn:(0@0 extent:wI@hI) from:0 angle:360.
@@ -9804,8 +9861,8 @@
 
 fillRectangle:aRectangle withColor:aColor
     self
-	fillRectangle:aRectangle
-	withValue:(self valueFromColor:aColor)
+        fillRectangle:aRectangle
+        withValue:(self valueFromColor:aColor)
 !
 
 fillRectangle:aRectangle withValue:aPixelValueOrNil
@@ -9815,9 +9872,9 @@
      otherwise to 1. (used by the bitmap editor)"
 
     self
-	fillRectangleX:aRectangle left y:aRectangle top
-	width:aRectangle width height:aRectangle height
-	withValue:aPixelValueOrNil
+        fillRectangleX:aRectangle left y:aRectangle top
+        width:aRectangle width height:aRectangle height
+        withValue:aPixelValueOrNil
 !
 
 fillRectangleX:x y:y width:w height:h with:aColor
@@ -9845,10 +9902,10 @@
     p := Point new.
 
     yI to:yI+hI-1 do:[:yRun |
-	xI to:xI+wI-1 do:[:xRun |
-	    p x:xRun y:yRun.
-	    self atImageAndMask:p putValue:aPixelValueOrNil.
-	]
+        xI to:xI+wI-1 do:[:xRun |
+            p x:xRun y:yRun.
+            self atImageAndMask:p putValue:aPixelValueOrNil.
+        ]
     ].
     self release. "/ device-image is no longer valid
 
@@ -9962,54 +10019,54 @@
     h := self height.
 
     surroundingPixelsOfDo :=
-	[:pX :pY :fn |
-	    |nX nY|
-
-	    nX := pX + 1.
-	    nY := pY + 1.
-	    (nY < h) ifTrue: [fn value:pX value:nY].
-	    (pY > 0) ifTrue: [fn value:pX value:(pY - 1)].
-	    (nX < w) ifTrue: [fn value:nX value:pY].
-	    (pX > 0) ifTrue: [fn value:(pX - 1) value:pY].
-	].
+        [:pX :pY :fn |
+            |nX nY|
+
+            nX := pX + 1.
+            nY := pY + 1.
+            (nY < h) ifTrue: [fn value:pX value:nY].
+            (pY > 0) ifTrue: [fn value:pX value:(pY - 1)].
+            (nX < w) ifTrue: [fn value:nX value:pY].
+            (pX > 0) ifTrue: [fn value:(pX - 1) value:pY].
+        ].
 
     enumerateDetectedPixelsAndDo :=
-	[:detectedPixels :action |
-	    |idx|
-
-	    idx := 1.
-	    0 to:h-1 do:[:y |
-		0 to:w-1 do:[:x |
-		    (detectedPixels at:idx) ifTrue:[
-			action value:x value:y
-		    ].
-		    idx := idx + 1.
-		].
-	    ].
-	].
+        [:detectedPixels :action |
+            |idx|
+
+            idx := 1.
+            0 to:h-1 do:[:y |
+                0 to:w-1 do:[:x |
+                    (detectedPixels at:idx) ifTrue:[
+                        action value:x value:y
+                    ].
+                    idx := idx + 1.
+                ].
+            ].
+        ].
 
     processPixelToFill :=
-	[:spX :spY |
-	    |samePixel sp idx|
-
-	    mask isNil ifTrue:[
-		samePixel := (self pixelAtX:spX y:spY) == detectedPixel
-	    ] ifFalse:[
-		detectedMask == 0 ifTrue:[
-		    samePixel := (mask pixelAtX:spX y:spY) == 0
-		] ifFalse:[
-		    samePixel := ((self pixelAtX:spX y:spY) == detectedPixel)
-				 and:[ (mask pixelAtX:spX y:spY) == detectedMask ]
-		].
-	    ].
-	    samePixel ifTrue: [
-		idx := 1 + spX + (spY * w).
-		(allDetectedPixelCoordinates at:idx) ifFalse:[
-		    allDetectedPixelCoordinates at:idx put:true.
-		    toDo add:spX @ spY.
-		].
-	    ]
-	].
+        [:spX :spY |
+            |samePixel sp idx|
+
+            mask isNil ifTrue:[
+                samePixel := (self pixelAtX:spX y:spY) == detectedPixel
+            ] ifFalse:[
+                detectedMask == 0 ifTrue:[
+                    samePixel := (mask pixelAtX:spX y:spY) == 0
+                ] ifFalse:[
+                    samePixel := ((self pixelAtX:spX y:spY) == detectedPixel)
+                                 and:[ (mask pixelAtX:spX y:spY) == detectedMask ]
+                ].
+            ].
+            samePixel ifTrue: [
+                idx := 1 + spX + (spY * w).
+                (allDetectedPixelCoordinates at:idx) ifFalse:[
+                    allDetectedPixelCoordinates at:idx put:true.
+                    toDo add:spX @ spY.
+                ].
+            ]
+        ].
 
 "/    (mask notNil and: [(mask pixelAt:aPoint) == 0]) ifTrue:[
 "/        allDetectedPixelCoordinates := mask floodFillAt: aPoint withColor: Color white.
@@ -10021,9 +10078,9 @@
 
     detectedPixel := self pixelAt: aPoint.
     mask isNil ifTrue:[
-	detectedMask := 1
+        detectedMask := 1
     ] ifFalse:[
-	detectedMask := mask pixelAt: aPoint.
+        detectedMask := mask pixelAt: aPoint.
     ].
 
     allDetectedPixelCoordinates := BooleanArray new:(w * h).
@@ -10032,28 +10089,28 @@
     toDo add:aPoint.
 
     [toDo notEmpty] whileTrue:[
-	|p|
-
-	p := toDo removeLast.
-	surroundingPixelsOfDo value:p x value:p y value:processPixelToFill.
+        |p|
+
+        p := toDo removeLast.
+        surroundingPixelsOfDo value:p x value:p y value:processPixelToFill.
     ].
 
     aPixelValueOrNil isNil ifTrue:[
-	drawAction := [:x :y |
-			       mask pixelAtX:x y:y put:0.
-			       self pixelAtX:x y:y put:0.
-		      ].
+        drawAction := [:x :y |
+                               mask pixelAtX:x y:y put:0.
+                               self pixelAtX:x y:y put:0.
+                      ].
     ] ifFalse:[
-	drawAction := [:x :y |
-				mask notNil ifTrue:[
-				    mask pixelAtX:x y:y put:1.
-				].
-				self pixelAtX:x y:y put:aPixelValueOrNil].
+        drawAction := [:x :y |
+                                mask notNil ifTrue:[
+                                    mask pixelAtX:x y:y put:1.
+                                ].
+                                self pixelAtX:x y:y put:aPixelValueOrNil].
     ].
 
     enumerateDetectedPixelsAndDo
-	value:allDetectedPixelCoordinates
-	value:drawAction.
+        value:allDetectedPixelCoordinates
+        value:drawAction.
 
     self release. "/ device-image is no longer valid
     ^ allDetectedPixelCoordinates
@@ -10104,7 +10161,7 @@
     yStart := y1.
     yEnd := y2.
     yStart to:yEnd do:[:yRun |
-	aBlock value:yRun value:(self colorAtX:x y:yRun)
+        aBlock value:yRun value:(self colorAtX:x y:yRun)
     ]
 !
 
@@ -10122,7 +10179,7 @@
     xStart := x1.
     xEnd := x2.
     xStart to:xEnd do:[:xRun |
-	aBlock value:xRun value:(self colorAtX:xRun y:y)
+        aBlock value:xRun value:(self colorAtX:xRun y:y)
     ]
 
     "Created: / 7.6.1996 / 19:12:51 / cg"
@@ -10131,7 +10188,7 @@
 
 colorsFromX:xStart y:yStart toX:xEnd y:yEnd do:aBlock
     "perform aBlock for each color in a rectangular area of the image.
-     Notice, that x and y coordinates start at 0@0 for the upper left corner.
+     Notice that x and y coordinates start at 0@0 for the upper left corner.
      The block is passed the x and y coordinates and pixelValue at each pixel.
      The code here provides a generic and slow implementation, and
      should be redefined in concrete subclasses, to avoid some processing
@@ -10146,10 +10203,10 @@
     yE := yEnd.
 
     yS to:yE do:[:yRun |
-	yR := yRun.
-	self colorsAtY:yRun from:xStart to:xEnd do:[:xRun :color |
-	    aBlock value:xRun value:yR value:color
-	]
+        yR := yRun.
+        self colorsAtY:yRun from:xStart to:xEnd do:[:xRun :color |
+            aBlock value:xRun value:yR value:color
+        ]
     ]
 
     "Modified: 11.7.1996 / 19:50:47 / cg"
@@ -10174,7 +10231,7 @@
      Use #pixelAtT:from:to:do: - for future compatibility.
 
      perform aBlock for each pixelValue from x1 to x2 in row y.
-     Notice, that x and y coordinates start at 0@0 for the upper left corner.
+     Notice that x and y coordinates start at 0@0 for the upper left corner.
      The block is passed the x coordinate and the pixelValue at each pixel.
      (see also Image>>atY:from:to:do:).
      The code here provides a generic and slow implementation, and
@@ -10187,7 +10244,7 @@
     xStart := x1.
     xEnd := x2.
     xStart to:xEnd do:[:xRun |
-	aBlock value:xRun value:(self pixelAtX:xRun y:y)
+        aBlock value:xRun value:(self pixelAtX:xRun y:y)
     ]
 
     "Created: 7.6.1996 / 19:09:51 / cg"
@@ -10196,7 +10253,7 @@
 
 valuesFromX:xStart y:yStart toX:xEnd y:yEnd do:aBlock
     "perform aBlock for each pixelValue in a rectangular area of the image.
-     Notice, that x and y coordinates start at 0@0 for the upper left corner.
+     Notice that x and y coordinates start at 0@0 for the upper left corner.
      The block is passed the x and y coordinates and pixelValue at each pixel.
      The code here provides a generic and slow implementation, and
      should be redefined in concrete subclasses, to avoid some processing
@@ -10208,9 +10265,9 @@
     xS := xStart.
     xE := xEnd.
     yStart to:yEnd do:[:yRun |
-	self valuesAtY:yRun from:xStart to:xEnd do:[:xRun :pixel |
-	    aBlock value:xRun value:yRun value:pixel
-	]
+        self valuesAtY:yRun from:xStart to:xEnd do:[:xRun :pixel |
+            aBlock value:xRun value:yRun value:pixel
+        ]
     ]
 
     "Modified: 7.6.1996 / 19:09:29 / cg"
@@ -10257,38 +10314,38 @@
     pixelRow := self pixelArraySpecies new:width.
 
     (x0 = 0 and:[w = self width]) ifTrue:[
-	"/ slightly faster
-	y := y0.
-	h timesRepeat:[
-	    self rowAt:y into:pixelRow.
-	    1 to:w do:[:runCol |
-		newPixel := pixelFunctionBlock
-				value:self
-				value:(pixelRow at:runCol)
-				value:(runCol-1)
-				value:y.
-		newPixelRow at:runCol put:newPixel.
-	    ].
-	    newImage rowAt:y putAll:newPixelRow.
-	    y := y + 1.
-	].
-	^ self.
+        "/ slightly faster
+        y := y0.
+        h timesRepeat:[
+            self rowAt:y into:pixelRow.
+            1 to:w do:[:runCol |
+                newPixel := pixelFunctionBlock
+                                value:self
+                                value:(pixelRow at:runCol)
+                                value:(runCol-1)
+                                value:y.
+                newPixelRow at:runCol put:newPixel.
+            ].
+            newImage rowAt:y putAll:newPixelRow.
+            y := y + 1.
+        ].
+        ^ self.
     ].
 
     y := y0.
     h timesRepeat:[
-	self rowAt:y into:pixelRow.
-	1 to:w do:[:runCol |
-	    newPixel := pixelFunctionBlock
-			    value:self
-			    value:(pixelRow at:runCol+x0)
-			    value:(runCol+x0-1)
-			    value:y.
-	    newPixelRow at:runCol put:newPixel.
-	].
-	pixelRow replaceFrom:x0+1 to:x0+1+w-1 with:newPixelRow startingAt:1.
-	newImage rowAt:y putAll:pixelRow.
-	y := y + 1.
+        self rowAt:y into:pixelRow.
+        1 to:w do:[:runCol |
+            newPixel := pixelFunctionBlock
+                            value:self
+                            value:(pixelRow at:runCol+x0)
+                            value:(runCol+x0-1)
+                            value:y.
+            newPixelRow at:runCol put:newPixel.
+        ].
+        pixelRow replaceFrom:x0+1 to:x0+1+w-1 with:newPixelRow startingAt:1.
+        newImage rowAt:y putAll:pixelRow.
+        y := y + 1.
     ].
 
     "Modified: 24.4.1997 / 16:18:31 / cg"
@@ -10299,9 +10356,9 @@
      enumerate pixelValues and evaluate the block for each."
 
     ^ self
-	applyPixelValuesTo:pixelFunctionBlock
-	in:(0@0 corner:width@height)
-	into:newImage
+        applyPixelValuesTo:pixelFunctionBlock
+        in:(0@0 corner:width@height)
+        into:newImage
 !
 
 blendWith:aColor
@@ -10311,7 +10368,7 @@
      CAVEAT: Need an argument, which specifies by how much it should be lighter."
 
      ^ self
-	copyWithColorMapProcessing:[:clr | clr blendWith:aColor]
+        copyWithColorMapProcessing:[:clr | clr blendWith:aColor]
 
     "
      (Smalltalk bitmapFromFileNamed:'gifImages/claus.gif' inPackage:'stx:goodies') inspect
@@ -10333,20 +10390,20 @@
     |nColors "{ Class: SmallInteger }"|
 
     colorMap isNil ifTrue:[
-	self colorsFromX:0 y:0 toX:(self width-1) y:(self height-1) do:[:x :y :clr |
-	    self colorAtX:x y:y put:(aBlock value:clr)
-	].
-	^ self
+        self colorsFromX:0 y:0 toX:(self width-1) y:(self height-1) do:[:x :y :clr |
+            self colorAtX:x y:y put:(aBlock value:clr)
+        ].
+        ^ self
     ].
 
     nColors := colorMap size.
     1 to:nColors do:[:index |
-	|clr|
-
-	clr := colorMap at:index.
-	clr notNil ifTrue:[
-	    colorMap at:index put:(aBlock value:clr)
-	]
+        |clr|
+
+        clr := colorMap at:index.
+        clr notNil ifTrue:[
+            colorMap at:index put:(aBlock value:clr)
+        ]
     ]
 
     "Modified: 23.4.1996 / 11:13:55 / cg"
@@ -10363,7 +10420,7 @@
     |newImage|
 
     self colorMap isNil ifTrue:[
-	^ self withPixelFunctionApplied:[:orig :clr :x :y | aBlock  value:clr]
+        ^ self withPixelFunctionApplied:[:orig :clr :x :y | aBlock  value:clr]
 "/        self error:'no colormap in image'.
 "/        ^ nil
     ].
@@ -10380,7 +10437,7 @@
      leave red component only:
 
      (Image fromFile:'goodies/bitmaps/gifImages/claus.gif')
-	copyWithColorMapProcessing:[:clr | Color red:(clr red) green:0 blue:0]
+        copyWithColorMapProcessing:[:clr | Color red:(clr red) green:0 blue:0]
     "
 
     "
@@ -10398,32 +10455,32 @@
      make it reddish:
 
      (Image fromFile:'../../goodies/bitmaps/gifImages/claus.gif')
-	copyWithColorMapProcessing:[:clr | Color red:((clr red * 2) min:100) green:clr green blue:clr blue]
+        copyWithColorMapProcessing:[:clr | Color red:((clr red * 2) min:100) green:clr green blue:clr blue]
     "
 
     "
      invert:
 
      (Image fromFile:'bitmaps/gifImages/claus.gif')
-	copyWithColorMapProcessing:[:clr | Color red:(100 - clr red) green:(100 - clr green) blue:(100 - clr green)]
+        copyWithColorMapProcessing:[:clr | Color red:(100 - clr red) green:(100 - clr green) blue:(100 - clr green)]
     "
 
     "
      lighter:
 
      (Image fromFile:'bitmaps/gifImages/claus.gif')
-	copyWithColorMapProcessing:[:clr | |r g b|
-						r := clr red.  g := clr green.  b := clr blue.
-						Color red:(r + (100-r//2))
-						      green:(g + (100-g//2))
-						      blue:(b + (100-b//2))]
+        copyWithColorMapProcessing:[:clr | |r g b|
+                                                r := clr red.  g := clr green.  b := clr blue.
+                                                Color red:(r + (100-r//2))
+                                                      green:(g + (100-g//2))
+                                                      blue:(b + (100-b//2))]
     "
 
     "
      darker:
 
      (Image fromFile:'bitmaps/gifImages/claus.gif')
-	copyWithColorMapProcessing:[:clr | Color red:(clr red//2) green:(clr green // 2) blue:(clr blue // 2)]
+        copyWithColorMapProcessing:[:clr | Color red:(clr red//2) green:(clr green // 2) blue:(clr blue // 2)]
     "
 
     "Modified: 24.4.1997 / 18:28:05 / cg"
@@ -10463,44 +10520,50 @@
      can be redefined in subclasses for more performance"
 
     |w  "{Class: SmallInteger }"
-     h  "{Class: SmallInteger }"
-     c2 r2 pixelArray|
+     h  "{Class: SmallInteger }" 
+     pixelMover|
 
     w := width - 1.
     h := height - 1.
 
-    pixelArray := self pixelArraySpecies new:width.
-
     degrees = 90 ifTrue:[
-	0 to:h do:[:row |
-	    self rowAt:row into:pixelArray startingAt:1.
-	    c2 := h-row.
-	    0 to:w do:[:col |
-		destinationImage pixelAtX:c2 y:col put:(pixelArray at:(col+1)).
-	    ]
-	].
-	^ self.
-    ].
-
-    degrees = 180 ifTrue:[
-	0 to:h do:[:row |
-	    self rowAt:row into:pixelArray startingAt:1.
-	    r2 := h - row.
-	    0 to:w do:[:col |
-		destinationImage pixelAtX:(w-col) y:r2 put:(pixelArray at:(col+1)).
-	    ]
-	].
-	^ self
-    ].
-
-    "/ degrees = 270
-    0 to:h do:[:row |
-	self rowAt:row into:pixelArray startingAt:1.
-	0 to:w do:[:col |
-	    destinationImage pixelAtX:row y:(w-col) put:(pixelArray at:(col+1)).
-	]
-    ]
-
+        pixelMover := [:col :row :pixel | destinationImage pixelAtX:(h-row) y:col put:pixel].    
+    ] ifFalse:[
+        degrees = 180 ifTrue:[
+            pixelMover := [:col :row :pixel | destinationImage pixelAtX:(w-col) y:(h-row) put:pixel].    
+        ] ifFalse:[
+            degrees = 270 ifTrue:[
+                pixelMover := [:col :row :pixel | destinationImage pixelAtX:row y:(w-col) put:pixel].    
+            ] ifFalse:[
+                ^ self
+            ].
+        ].
+    ].    
+    self valuesFromX:0 y:0 toX:w y:h do:pixelMover.
+    ^ self.
+
+    "
+     |i|
+
+     i := Image fromFile:'../../goodies/bitmaps/gifImages/claus.gif'.
+     i inspect.
+     (i rotated:45) inspect.
+     (i rotated:90) inspect.
+     (i rotated:180) inspect.
+     (i rotated:270) inspect.
+    "
+    "
+     |i|
+     i := Image fromFile:'../../goodies/bitmaps/gifImages/claus.gif'.
+     i := Depth24Image fromImage:i.
+     Time millisecondsToRun:[ 100 timesRepeat:[ i rotated:90 ] ]
+    "
+    "
+     |i|
+     i := Image fromScreen.
+     Time millisecondsToRun:[ 20 timesRepeat:[ i rotated:90 ] ]
+    "
+    
     "Created: 23.4.1997 / 14:36:45 / cg"
     "Modified: 24.4.1997 / 17:26:26 / cg"
 !
@@ -10516,13 +10579,13 @@
     pixelArray := self pixelArraySpecies new:width.
 
     0 to:h do:[:row |
-	self rowAt:row into:pixelArray.
-	pixelArray reverse.
-	self rowAt:row putAll:pixelArray.
+        self rowAt:row into:pixelArray.
+        pixelArray reverse.
+        self rowAt:row putAll:pixelArray.
     ].
 
     mask notNil ifTrue:[
-	mask flipHorizontal
+        mask flipHorizontal
     ].
 
     "/ flush device info
@@ -10555,14 +10618,14 @@
     indexHi := bytesPerRow * h + 1.
 
     0 to:(h // 2) do:[:row |
-	buffer replaceFrom:1 to:bytesPerRow with:bytes startingAt:indexLow.
-	bytes replaceFrom:indexLow to:(indexLow + bytesPerRow - 1) with:bytes startingAt:indexHi.
-	bytes replaceFrom:indexHi to:(indexHi + bytesPerRow - 1) with:buffer startingAt:1.
-	indexLow := indexLow + bytesPerRow.
-	indexHi := indexHi - bytesPerRow.
+        buffer replaceFrom:1 to:bytesPerRow with:bytes startingAt:indexLow.
+        bytes replaceFrom:indexLow to:(indexLow + bytesPerRow - 1) with:bytes startingAt:indexHi.
+        bytes replaceFrom:indexHi to:(indexHi + bytesPerRow - 1) with:buffer startingAt:1.
+        indexLow := indexLow + bytesPerRow.
+        indexHi := indexHi - bytesPerRow.
     ].
     mask notNil ifTrue:[
-	mask flipVertical
+        mask flipVertical
     ].
     "flush device info"
     self release
@@ -10580,7 +10643,7 @@
      It is definitely slower than the non antiAliasing/integral magnification methods."
 
     ^ (Depth24Image fromImage:self)
-	hardAntiAliasedMagnifiedBy:scalePoint
+        hardAntiAliasedMagnifiedBy:scalePoint
 
     "Modified: 2.6.1997 / 13:19:57 / cg"
     "Created: 2.6.1997 / 15:53:34 / cg"
@@ -10614,19 +10677,19 @@
     newBits := ByteArray uninitializedNew:(newBytesPerRow * newHeight).
 
     mask notNil ifTrue:[
-	newMask := (mask magnifiedBy:scalePoint)
+        newMask := (mask magnifiedBy:scalePoint)
     ].
 
     newImage := self species new.
     newImage
-	width:newWidth
-	height:newHeight
-	photometric:photometric
-	samplesPerPixel:samplesPerPixel
-	bitsPerSample:bitsPerSample
-	colorMap:colorMap copy
-	bits:newBits
-	mask:newMask.
+        width:newWidth
+        height:newHeight
+        photometric:photometric
+        samplesPerPixel:samplesPerPixel
+        bitsPerSample:bitsPerSample
+        colorMap:colorMap copy
+        bits:newBits
+        mask:newMask.
 
     "walk over destination image fetching pixels from source image"
 
@@ -10635,12 +10698,12 @@
     pixelArray := newImage pixelArraySpecies new:newWidth.
 
     0 to:h do:[:row |
-	srcRow := (row // mY).
-	0 to:w do:[:col |
-	    value := self pixelAtX:(col // mX) y:srcRow.
-	    pixelArray at:(col+1) put:value.
-	].
-	newImage rowAt:row putAll:pixelArray.
+        srcRow := (row // mY).
+        0 to:w do:[:col |
+            value := self pixelAtX:(col // mX) y:srcRow.
+            pixelArray at:(col+1) put:value.
+        ].
+        newImage rowAt:row putAll:pixelArray.
     ].
 
     ^ newImage
@@ -10649,7 +10712,7 @@
      |i|
      i := Image fromFile:'goodies/bitmaps/gifImages/claus.gif'.
      Time millisecondsToRun:[
-	 i := i hardMagnifiedBy:0.5@0.5
+         i := i hardMagnifiedBy:0.5@0.5
      ].
      i
     "
@@ -10697,36 +10760,36 @@
 
     maxX := minX := p1 x.
     (t := p2 x) > maxX ifTrue:[
-	maxX := t
+        maxX := t
     ] ifFalse:[
-	t < minX ifTrue:[minX := t].
+        t < minX ifTrue:[minX := t].
     ].
     (t := p3 x) > maxX ifTrue:[
-	maxX := t
+        maxX := t
     ] ifFalse:[
-	t < minX ifTrue:[minX := t].
+        t < minX ifTrue:[minX := t].
     ].
     (t := p4 x) > maxX ifTrue:[
-	maxX := t
+        maxX := t
     ] ifFalse:[
-	t < minX ifTrue:[minX := t].
+        t < minX ifTrue:[minX := t].
     ].
 
     maxY := minY := p1 y.
     (t := p2 y) > maxY ifTrue:[
-	maxY := t
+        maxY := t
     ] ifFalse:[
-	t < minY ifTrue:[minY := t].
+        t < minY ifTrue:[minY := t].
     ].
     (t := p3 y) > maxY ifTrue:[
-	maxY := t
+        maxY := t
     ] ifFalse:[
-	t < minY ifTrue:[minY := t].
+        t < minY ifTrue:[minY := t].
     ].
     (t := p4 y) > maxY ifTrue:[
-	maxY := t
+        maxY := t
     ] ifFalse:[
-	t < minY ifTrue:[minY := t].
+        t < minY ifTrue:[minY := t].
     ].
 
 
@@ -10745,36 +10808,36 @@
     newImage colorMap:colorMap copy.
     newImage maskedPixelsAre0:maskedPixelsAre0.
     mask notNil ifTrue:[
-	newImage mask:(mask rotated:degrees)
+        newImage mask:(mask rotated:degrees)
     ] ifFalse:[
-	self isMask ifFalse:[
-	    self depth ~~ 1 ifTrue:[
-		m := ImageMask width:width height:height.
-		m bits:(maskBits := ByteArray new:(m bytesPerRow * height)).
-		maskBits atAllPut:16rFF.
-		newImage mask:(m rotated:degrees)
-	    ]
-	]
+        self isMask ifFalse:[
+            self depth ~~ 1 ifTrue:[
+                m := ImageMask width:width height:height.
+                m bits:(maskBits := ByteArray new:(m bytesPerRow * height)).
+                maskBits atAllPut:16rFF.
+                newImage mask:(m rotated:degrees)
+            ]
+        ]
     ].
 
     myDepth := self depth.
     myDepth == 1 ifTrue:[
-	blackPixel := 0.
+        blackPixel := 0.
     ] ifFalse:[
-	maskedPixelsAre0 ifTrue:[
-	    blackPixel := 0.
-	] ifFalse:[
-	    blackPixel := self valueFromColor:Color black.
-	    blackPixel isNil ifTrue:[
-		blackPixel := self valueFromColor:Color white.
-		blackPixel isNil ifTrue:[
-		    blackPixel := 0.
-		]
-	    ]
-	].
-	self isMask ifTrue:[
-	    blackPixel := 0.
-	].
+        maskedPixelsAre0 ifTrue:[
+            blackPixel := 0.
+        ] ifFalse:[
+            blackPixel := self valueFromColor:Color black.
+            blackPixel isNil ifTrue:[
+                blackPixel := self valueFromColor:Color white.
+                blackPixel isNil ifTrue:[
+                    blackPixel := 0.
+                ]
+            ]
+        ].
+        self isMask ifTrue:[
+            blackPixel := 0.
+        ].
     ].
 
     newBits atAllPut:0.
@@ -10817,583 +10880,583 @@
      && __isFloat(halfH)
      && __isByteArray(newBits)
      && __isByteArrayLike(__INST(bytes))) {
-	__srcBytes = __ByteArrayInstPtr(__INST(bytes))->ba_element;
-	__dstBytes = __ByteArrayInstPtr(newBits)->ba_element;
-	__nSrcBytes = __byteArraySize(__INST(bytes));
-	__nDstBytes = __byteArraySize(newBits);
-	__blackPixel = __intVal(blackPixel);
-
-	__radians = __floatVal(radians);
-	__radians = -__radians; /* sigh: clock-wise */
-	__sin = sin(__radians);
-	__cos = cos(__radians);
-	__minX = __floatVal(minX);
-	__minY = __floatVal(minY);
-	__halfW = __floatVal(halfW);
-	__halfH = __floatVal(halfH);
-
-	__dstRowPtr = __dstBytes;
-	__dstEndPtr = __dstBytes + __nDstBytes;
+        __srcBytes = __ByteArrayInstPtr(__INST(bytes))->ba_element;
+        __dstBytes = __ByteArrayInstPtr(newBits)->ba_element;
+        __nSrcBytes = __byteArraySize(__INST(bytes));
+        __nDstBytes = __byteArraySize(newBits);
+        __blackPixel = __intVal(blackPixel);
+
+        __radians = __floatVal(radians);
+        __radians = -__radians; /* sigh: clock-wise */
+        __sin = sin(__radians);
+        __cos = cos(__radians);
+        __minX = __floatVal(minX);
+        __minY = __floatVal(minY);
+        __halfW = __floatVal(halfW);
+        __halfH = __floatVal(halfH);
+
+        __dstRowPtr = __dstBytes;
+        __dstEndPtr = __dstBytes + __nDstBytes;
 
 #       define EARLY_OUT
 #       define FAST_ADVANCE 5
 #       define FAST_ADVANCE2
 
-	switch (__depth) {
-	    case 8:
-		for (__dstY = 0; __dstY < __newHeight; __dstY++) {
-		    double __pY, __sinPY, __cosPY;
+        switch (__depth) {
+            case 8:
+                for (__dstY = 0; __dstY < __newHeight; __dstY++) {
+                    double __pY, __sinPY, __cosPY;
 #ifdef EARLY_OUT
-		    int didFetchInRow = 0;
+                    int didFetchInRow = 0;
 #endif
-		    __pY = (double)(__dstY + __minY);
-
-		    __sinPY = __sin * __pY;
-		    __cosPY = __cos * __pY;
-
-		    __dstPtr = __dstRowPtr;
-		    __dstRowPtr += __dstBytesPerRow;
-
-		    for (__dstX = 0; __dstX < __newWidth; __dstX++) {
-			double __pX, __nX;
-			unsigned __pix;
-
-			/* translate X in destination (center to 0/0) */
-			__pX = (double)(__dstX + __minX);
-			/* rotate X */
-			__nX = (__cos * __pX) - __sinPY;
-
-			/* translate X in source (origin to 0/0) */
-			__nX = __nX + __halfW + 0.5;
-
-			/* inside ? */
-			if (__nX < 0) {
+                    __pY = (double)(__dstY + __minY);
+
+                    __sinPY = __sin * __pY;
+                    __cosPY = __cos * __pY;
+
+                    __dstPtr = __dstRowPtr;
+                    __dstRowPtr += __dstBytesPerRow;
+
+                    for (__dstX = 0; __dstX < __newWidth; __dstX++) {
+                        double __pX, __nX;
+                        unsigned __pix;
+
+                        /* translate X in destination (center to 0/0) */
+                        __pX = (double)(__dstX + __minX);
+                        /* rotate X */
+                        __nX = (__cos * __pX) - __sinPY;
+
+                        /* translate X in source (origin to 0/0) */
+                        __nX = __nX + __halfW + 0.5;
+
+                        /* inside ? */
+                        if (__nX < 0) {
 #ifdef EARLY_OUT
-			    if (didFetchInRow) {
-				break;
-			    }
+                            if (didFetchInRow) {
+                                break;
+                            }
 #endif
 #ifdef FAST_ADVANCE
-			    if (__blackPixel == 0) {
-				do {
-				    /* try advance by FAST_ADVANCE pixels ... */
-				    __dstX += FAST_ADVANCE; __dstPtr += FAST_ADVANCE;
-				    if (__dstX >= __newWidth) {
-					break;
-				    }
-				    __pX = (double)(__dstX + __minX);
-				    __nX = (__cos * __pX) - __sinPY;
-				    __nX = __nX + __halfW + 0.5;
-				} while (__nX < 0);
-				__dstX -= FAST_ADVANCE; __dstPtr -= FAST_ADVANCE;
-			    }
+                            if (__blackPixel == 0) {
+                                do {
+                                    /* try advance by FAST_ADVANCE pixels ... */
+                                    __dstX += FAST_ADVANCE; __dstPtr += FAST_ADVANCE;
+                                    if (__dstX >= __newWidth) {
+                                        break;
+                                    }
+                                    __pX = (double)(__dstX + __minX);
+                                    __nX = (__cos * __pX) - __sinPY;
+                                    __nX = __nX + __halfW + 0.5;
+                                } while (__nX < 0);
+                                __dstX -= FAST_ADVANCE; __dstPtr -= FAST_ADVANCE;
+                            }
 #endif
-			    __pix = __blackPixel;
-			} else {
-			    int __srcX;
-
-			    __srcX = (int)__nX;
-			    /* inside ? */
-			    if (__srcX >= __width) {
+                            __pix = __blackPixel;
+                        } else {
+                            int __srcX;
+
+                            __srcX = (int)__nX;
+                            /* inside ? */
+                            if (__srcX >= __width) {
 #ifdef EARLY_OUT
-				if (didFetchInRow) {
-				    break;
-				}
+                                if (didFetchInRow) {
+                                    break;
+                                }
 #endif
 #ifdef FAST_ADVANCE2
-				if (__blackPixel == 0) {
-				    do {
-					/* try advance by FAST_ADVANCE pixels ... */
-					__dstX += FAST_ADVANCE; __dstPtr += FAST_ADVANCE;
-					if (__dstX >= __newWidth) {
-					    break;
-					}
-					__pX = (double)(__dstX + __minX);
-					__nX = (__cos * __pX) - __sinPY;
-					__nX = __nX + __halfW + 0.5;
-					__srcX = (int)__nX;
-				    } while (__srcX >= __width);
-				    __dstX -= FAST_ADVANCE; __dstPtr -= FAST_ADVANCE;
-				}
+                                if (__blackPixel == 0) {
+                                    do {
+                                        /* try advance by FAST_ADVANCE pixels ... */
+                                        __dstX += FAST_ADVANCE; __dstPtr += FAST_ADVANCE;
+                                        if (__dstX >= __newWidth) {
+                                            break;
+                                        }
+                                        __pX = (double)(__dstX + __minX);
+                                        __nX = (__cos * __pX) - __sinPY;
+                                        __nX = __nX + __halfW + 0.5;
+                                        __srcX = (int)__nX;
+                                    } while (__srcX >= __width);
+                                    __dstX -= FAST_ADVANCE; __dstPtr -= FAST_ADVANCE;
+                                }
 #endif
-				__pix = __blackPixel;
-			    } else {
-				double __nY;
-
-				/* rotate Y */
-				__nY = (__sin * __pX) + __cosPY;
-				/* translate Y in source (origin to 0/0) */
-				__nY = __nY + __halfH + 0.5;
-
-				/* inside ? */
-				if (__nY < 0) {
+                                __pix = __blackPixel;
+                            } else {
+                                double __nY;
+
+                                /* rotate Y */
+                                __nY = (__sin * __pX) + __cosPY;
+                                /* translate Y in source (origin to 0/0) */
+                                __nY = __nY + __halfH + 0.5;
+
+                                /* inside ? */
+                                if (__nY < 0) {
 #ifdef EARLY_OUT
-				    if (didFetchInRow) {
-					break;
-				    }
+                                    if (didFetchInRow) {
+                                        break;
+                                    }
 #endif
 #ifdef FAST_ADVANCE2
-				    if (__blackPixel == 0) {
-					do {
-					    /* try advance by FAST_ADVANCE pixels ... */
-					    __dstX += FAST_ADVANCE; __dstPtr += FAST_ADVANCE;
-					    if (__dstX >= __newWidth) {
-						break;
-					    }
-					    __pX = (double)(__dstX + __minX);
-					    __nY = (__sin * __pX) + __cosPY;
-					    __nY = __nY + __halfH + 0.5;
-					} while (__nY < 0);
-					__dstX -= FAST_ADVANCE; __dstPtr -= FAST_ADVANCE;
-				    }
+                                    if (__blackPixel == 0) {
+                                        do {
+                                            /* try advance by FAST_ADVANCE pixels ... */
+                                            __dstX += FAST_ADVANCE; __dstPtr += FAST_ADVANCE;
+                                            if (__dstX >= __newWidth) {
+                                                break;
+                                            }
+                                            __pX = (double)(__dstX + __minX);
+                                            __nY = (__sin * __pX) + __cosPY;
+                                            __nY = __nY + __halfH + 0.5;
+                                        } while (__nY < 0);
+                                        __dstX -= FAST_ADVANCE; __dstPtr -= FAST_ADVANCE;
+                                    }
 #endif
-				    __pix = __blackPixel;
-				} else {
-				    int __srcY;
-
-				    __srcY = (int)__nY;
-				    /* inside ? */
-				    if (__srcY >= __height) {
+                                    __pix = __blackPixel;
+                                } else {
+                                    int __srcY;
+
+                                    __srcY = (int)__nY;
+                                    /* inside ? */
+                                    if (__srcY >= __height) {
 #ifdef EARLY_OUT
-					if (didFetchInRow) {
-					    break;
-					}
+                                        if (didFetchInRow) {
+                                            break;
+                                        }
 #endif
 #ifdef FAST_ADVANCE
-					if (__blackPixel == 0) {
-					    do {
-						/* try advance by FAST_ADVANCE pixels ... */
-						__dstX += FAST_ADVANCE; __dstPtr += FAST_ADVANCE;
-						if (__dstX >= __newWidth) {
-						    break;
-						}
-						__pX = (double)(__dstX + __minX);
-						__nY = (__sin * __pX) + __cosPY;
-						__nY = __nY + __halfH + 0.5;
-						__srcY = (int)__nY;
-					    } while (__srcY >= __height);
-					    __dstX -= FAST_ADVANCE; __dstPtr -= FAST_ADVANCE;
-					}
+                                        if (__blackPixel == 0) {
+                                            do {
+                                                /* try advance by FAST_ADVANCE pixels ... */
+                                                __dstX += FAST_ADVANCE; __dstPtr += FAST_ADVANCE;
+                                                if (__dstX >= __newWidth) {
+                                                    break;
+                                                }
+                                                __pX = (double)(__dstX + __minX);
+                                                __nY = (__sin * __pX) + __cosPY;
+                                                __nY = __nY + __halfH + 0.5;
+                                                __srcY = (int)__nY;
+                                            } while (__srcY >= __height);
+                                            __dstX -= FAST_ADVANCE; __dstPtr -= FAST_ADVANCE;
+                                        }
 #endif
-					__pix = __blackPixel;
-				    } else {
-					/* fetch source pixel */
-
-					int idx;
+                                        __pix = __blackPixel;
+                                    } else {
+                                        /* fetch source pixel */
+
+                                        int idx;
 #ifdef EARLY_OUT
-					didFetchInRow = 1;
+                                        didFetchInRow = 1;
 #endif
-					idx = __srcY * __srcBytesPerRow + __srcX;
-					if ((unsigned)idx < __nSrcBytes) {
-					    __pix = __srcBytes[idx];
-					} else {
-					    __pix = __blackPixel;
-					}
-				    }
-				}
-			    }
-			}
-
-			if (__pix != 0) {
-			    *__dstPtr = __pix;
-			}
-			__dstPtr++;
-		    }
-		}
-		break;
-
-	    case 1:
-		for (__dstY = 0; __dstY < __newHeight; __dstY++) {
-		    double __pY, __sinPY, __cosPY;
+                                        idx = __srcY * __srcBytesPerRow + __srcX;
+                                        if ((unsigned)idx < __nSrcBytes) {
+                                            __pix = __srcBytes[idx];
+                                        } else {
+                                            __pix = __blackPixel;
+                                        }
+                                    }
+                                }
+                            }
+                        }
+
+                        if (__pix != 0) {
+                            *__dstPtr = __pix;
+                        }
+                        __dstPtr++;
+                    }
+                }
+                break;
+
+            case 1:
+                for (__dstY = 0; __dstY < __newHeight; __dstY++) {
+                    double __pY, __sinPY, __cosPY;
 #ifdef EARLY_OUT
-		    int didFetchInRow = 0;
+                    int didFetchInRow = 0;
 #endif
-		    __pY = (double)(__dstY + __minY);
-
-		    __sinPY = __sin * __pY;
-		    __cosPY = __cos * __pY;
-
-		    __dstPtr = __dstRowPtr;
-		    __dstMask = 0x80;
-		    __dstRowPtr += __dstBytesPerRow;
-
-		    for (__dstX = 0; __dstX < __newWidth; __dstX++) {
-			double __pX, __nX;
-			int __pix;
-
-			/* translate X in destination (center to 0/0) */
-			__pX = (double)(__dstX + __minX);
-			/* rotate X */
-			__nX = (__cos * __pX) - __sinPY;
-
-			/* translate X in source (origin to 0/0) */
-			__nX = __nX + __halfW + 0.5;
-
-			/* inside ? */
-			if (__nX < 0) {
+                    __pY = (double)(__dstY + __minY);
+
+                    __sinPY = __sin * __pY;
+                    __cosPY = __cos * __pY;
+
+                    __dstPtr = __dstRowPtr;
+                    __dstMask = 0x80;
+                    __dstRowPtr += __dstBytesPerRow;
+
+                    for (__dstX = 0; __dstX < __newWidth; __dstX++) {
+                        double __pX, __nX;
+                        int __pix;
+
+                        /* translate X in destination (center to 0/0) */
+                        __pX = (double)(__dstX + __minX);
+                        /* rotate X */
+                        __nX = (__cos * __pX) - __sinPY;
+
+                        /* translate X in source (origin to 0/0) */
+                        __nX = __nX + __halfW + 0.5;
+
+                        /* inside ? */
+                        if (__nX < 0) {
 #ifdef EARLY_OUT
-			    if (didFetchInRow) {
-				break;
-			    }
+                            if (didFetchInRow) {
+                                break;
+                            }
 #endif
 #ifdef FAST_ADVANCE
-			    if (__blackPixel == 0) {
-				do {
-				    /* try advance by 8 pixels ... */
-				    __dstX += 8; __dstPtr ++;
-				    if (__dstX >= __newWidth) {
-					break;
-				    }
-				    __pX = (double)(__dstX + __minX);
-				    __nX = (__cos * __pX) - __sinPY;
-				    __nX = __nX + __halfW + 0.5;
-				} while (__nX < 0);
-				__dstX -= 8; __dstPtr--;
-			    }
+                            if (__blackPixel == 0) {
+                                do {
+                                    /* try advance by 8 pixels ... */
+                                    __dstX += 8; __dstPtr ++;
+                                    if (__dstX >= __newWidth) {
+                                        break;
+                                    }
+                                    __pX = (double)(__dstX + __minX);
+                                    __nX = (__cos * __pX) - __sinPY;
+                                    __nX = __nX + __halfW + 0.5;
+                                } while (__nX < 0);
+                                __dstX -= 8; __dstPtr--;
+                            }
 #endif
-			    __pix = __blackPixel;
-			} else {
-			    int __srcX;
-
-			    __srcX = (int)__nX;
-			    /* inside ? */
-			    if (__srcX >= __width) {
+                            __pix = __blackPixel;
+                        } else {
+                            int __srcX;
+
+                            __srcX = (int)__nX;
+                            /* inside ? */
+                            if (__srcX >= __width) {
 #ifdef EARLY_OUT
-				if (didFetchInRow) {
-				    break;
-				}
+                                if (didFetchInRow) {
+                                    break;
+                                }
 #endif
 #ifdef FAST_ADVANCE2
-				if (__blackPixel == 0) {
-				    do {
-					/* try advance by 8 pixels ... */
-					__dstX += 8; __dstPtr++;
-					if (__dstX >= __newWidth) {
-					    break;
-					}
-					__pX = (double)(__dstX + __minX);
-					__nX = (__cos * __pX) - __sinPY;
-					__nX = __nX + __halfW + 0.5;
-					__srcX = (int)__nX;
-				    } while (__srcX >= __width);
-				    __dstX -= 8; __dstPtr--;
-				}
+                                if (__blackPixel == 0) {
+                                    do {
+                                        /* try advance by 8 pixels ... */
+                                        __dstX += 8; __dstPtr++;
+                                        if (__dstX >= __newWidth) {
+                                            break;
+                                        }
+                                        __pX = (double)(__dstX + __minX);
+                                        __nX = (__cos * __pX) - __sinPY;
+                                        __nX = __nX + __halfW + 0.5;
+                                        __srcX = (int)__nX;
+                                    } while (__srcX >= __width);
+                                    __dstX -= 8; __dstPtr--;
+                                }
 #endif
-				__pix = __blackPixel;
-			    } else {
-				double __nY;
-
-				/* rotate Y */
-				__nY = (__sin * __pX) + __cosPY;
-				/* translate Y in source (origin to 0/0) */
-				__nY = __nY + __halfH + 0.5;
-
-				/* inside ? */
-				if (__nY < 0) {
+                                __pix = __blackPixel;
+                            } else {
+                                double __nY;
+
+                                /* rotate Y */
+                                __nY = (__sin * __pX) + __cosPY;
+                                /* translate Y in source (origin to 0/0) */
+                                __nY = __nY + __halfH + 0.5;
+
+                                /* inside ? */
+                                if (__nY < 0) {
 #ifdef EARLY_OUT
-				    if (didFetchInRow) {
-					break;
-				    }
+                                    if (didFetchInRow) {
+                                        break;
+                                    }
 #endif
 #ifdef FAST_ADVANCE2
-				    if (__blackPixel == 0) {
-					do {
-					    /* try advance by 8 pixels ... */
-					    __dstX += 8; __dstPtr++;
-					    if (__dstX >= __newWidth) {
-						break;
-					    }
-					    __pX = (double)(__dstX + __minX);
-					    __nY = (__sin * __pX) + __cosPY;
-					    __nY = __nY + __halfH + 0.5;
-					} while (__nY < 0);
-					__dstX -= 8; __dstPtr--;
-				    }
+                                    if (__blackPixel == 0) {
+                                        do {
+                                            /* try advance by 8 pixels ... */
+                                            __dstX += 8; __dstPtr++;
+                                            if (__dstX >= __newWidth) {
+                                                break;
+                                            }
+                                            __pX = (double)(__dstX + __minX);
+                                            __nY = (__sin * __pX) + __cosPY;
+                                            __nY = __nY + __halfH + 0.5;
+                                        } while (__nY < 0);
+                                        __dstX -= 8; __dstPtr--;
+                                    }
 #endif
-				    __pix = __blackPixel;
-				} else {
-				    int __srcY;
-
-				    __srcY = (int)__nY;
-				    /* inside ? */
-				    if (__srcY >= __height) {
+                                    __pix = __blackPixel;
+                                } else {
+                                    int __srcY;
+
+                                    __srcY = (int)__nY;
+                                    /* inside ? */
+                                    if (__srcY >= __height) {
 #ifdef EARLY_OUT
-					if (didFetchInRow) {
-					    break;
-					}
+                                        if (didFetchInRow) {
+                                            break;
+                                        }
 #endif
 #ifdef FAST_ADVANCE
-					if (__blackPixel == 0) {
-					    do {
-						/* try advance by 8 pixels ... */
-						__dstX += 8; __dstPtr++;
-						if (__dstX >= __newWidth) {
-						    break;
-						}
-						__pX = (double)(__dstX + __minX);
-						__nY = (__sin * __pX) + __cosPY;
-						__nY = __nY + __halfH + 0.5;
-						__srcY = (int)__nY;
-					    } while (__srcY >= __height);
-					    __dstX -= 8; __dstPtr--;
-					}
+                                        if (__blackPixel == 0) {
+                                            do {
+                                                /* try advance by 8 pixels ... */
+                                                __dstX += 8; __dstPtr++;
+                                                if (__dstX >= __newWidth) {
+                                                    break;
+                                                }
+                                                __pX = (double)(__dstX + __minX);
+                                                __nY = (__sin * __pX) + __cosPY;
+                                                __nY = __nY + __halfH + 0.5;
+                                                __srcY = (int)__nY;
+                                            } while (__srcY >= __height);
+                                            __dstX -= 8; __dstPtr--;
+                                        }
 #endif
-					__pix = __blackPixel;
-				    } else {
-					/* fetch source pixel */
-
-					int idx, pV;
+                                        __pix = __blackPixel;
+                                    } else {
+                                        /* fetch source pixel */
+
+                                        int idx, pV;
 #ifdef EARLY_OUT
-					didFetchInRow = 1;
+                                        didFetchInRow = 1;
 #endif
-					idx = __srcY * __srcBytesPerRow + (__srcX >> 3);
-					if ((unsigned)idx < __nSrcBytes) {
-					    pV = __srcBytes[idx];
-					    __pix = (pV & (0x80 >> (__srcX & 7))) ? 1 : 0;
-					} else {
-					    __pix = __blackPixel;
-					}
-				    }
-				}
-			    }
-			}
-
-			/* store pixel */
-			if (__pix != 0) {
-			    *__dstPtr |= __dstMask;
-			}
-			__dstMask >>= 1;
-			if (__dstMask == 0) {
-			    __dstMask = 0x80;
-			    __dstPtr++;
-			}
-		    }
-		}
-		break;
-
-	    case 24:
-		for (__dstY = 0; __dstY < __newHeight; __dstY++) {
-		    double __pY, __sinPY, __cosPY;
+                                        idx = __srcY * __srcBytesPerRow + (__srcX >> 3);
+                                        if ((unsigned)idx < __nSrcBytes) {
+                                            pV = __srcBytes[idx];
+                                            __pix = (pV & (0x80 >> (__srcX & 7))) ? 1 : 0;
+                                        } else {
+                                            __pix = __blackPixel;
+                                        }
+                                    }
+                                }
+                            }
+                        }
+
+                        /* store pixel */
+                        if (__pix != 0) {
+                            *__dstPtr |= __dstMask;
+                        }
+                        __dstMask >>= 1;
+                        if (__dstMask == 0) {
+                            __dstMask = 0x80;
+                            __dstPtr++;
+                        }
+                    }
+                }
+                break;
+
+            case 24:
+                for (__dstY = 0; __dstY < __newHeight; __dstY++) {
+                    double __pY, __sinPY, __cosPY;
 #ifdef EARLY_OUT
-		    int didFetchInRow = 0;
+                    int didFetchInRow = 0;
 #endif
-		    __pY = (double)(__dstY + __minY);
-
-		    __sinPY = __sin * __pY;
-		    __cosPY = __cos * __pY;
-
-		    __dstPtr = __dstRowPtr;
-		    __dstRowPtr += __dstBytesPerRow;
-
-		    for (__dstX = 0; __dstX < __newWidth; __dstX++) {
-			double __pX, __nX;
-			unsigned __pix;
-
-			/* translate X in destination (center to 0/0) */
-			__pX = (double)(__dstX + __minX);
-			/* rotate X */
-			__nX = (__cos * __pX) - __sinPY;
-
-			/* translate X in source (origin to 0/0) */
-			__nX = __nX + __halfW + 0.5;
-
-			/* inside ? */
-			if (__nX < 0) {
+                    __pY = (double)(__dstY + __minY);
+
+                    __sinPY = __sin * __pY;
+                    __cosPY = __cos * __pY;
+
+                    __dstPtr = __dstRowPtr;
+                    __dstRowPtr += __dstBytesPerRow;
+
+                    for (__dstX = 0; __dstX < __newWidth; __dstX++) {
+                        double __pX, __nX;
+                        unsigned __pix;
+
+                        /* translate X in destination (center to 0/0) */
+                        __pX = (double)(__dstX + __minX);
+                        /* rotate X */
+                        __nX = (__cos * __pX) - __sinPY;
+
+                        /* translate X in source (origin to 0/0) */
+                        __nX = __nX + __halfW + 0.5;
+
+                        /* inside ? */
+                        if (__nX < 0) {
 #ifdef EARLY_OUT
-			    if (didFetchInRow) {
-				break;
-			    }
+                            if (didFetchInRow) {
+                                break;
+                            }
 #endif
-			    __pix = __blackPixel;
-			} else {
-			    int __srcX;
-
-			    __srcX = (int)__nX;
-			    /* inside ? */
-			    if (__srcX >= __width) {
+                            __pix = __blackPixel;
+                        } else {
+                            int __srcX;
+
+                            __srcX = (int)__nX;
+                            /* inside ? */
+                            if (__srcX >= __width) {
 #ifdef EARLY_OUT
-				if (didFetchInRow) {
-				    break;
-				}
+                                if (didFetchInRow) {
+                                    break;
+                                }
 #endif
-				__pix = __blackPixel;
-			    } else {
-				double __nY;
-
-				/* rotate Y */
-				__nY = (__sin * __pX) + __cosPY;
-				/* translate Y in source (origin to 0/0) */
-				__nY = __nY + __halfH + 0.5;
-
-				/* inside ? */
-				if (__nY < 0) {
+                                __pix = __blackPixel;
+                            } else {
+                                double __nY;
+
+                                /* rotate Y */
+                                __nY = (__sin * __pX) + __cosPY;
+                                /* translate Y in source (origin to 0/0) */
+                                __nY = __nY + __halfH + 0.5;
+
+                                /* inside ? */
+                                if (__nY < 0) {
 #ifdef EARLY_OUT
-				    if (didFetchInRow) {
-					break;
-				    }
+                                    if (didFetchInRow) {
+                                        break;
+                                    }
 #endif
-				    __pix = __blackPixel;
-				} else {
-				    int __srcY;
-
-				    __srcY = (int)__nY;
-				    /* inside ? */
-				    if (__srcY >= __height) {
+                                    __pix = __blackPixel;
+                                } else {
+                                    int __srcY;
+
+                                    __srcY = (int)__nY;
+                                    /* inside ? */
+                                    if (__srcY >= __height) {
 #ifdef EARLY_OUT
-					if (didFetchInRow) {
-					    break;
-					}
+                                        if (didFetchInRow) {
+                                            break;
+                                        }
 #endif
-					__pix = __blackPixel;
-				    } else {
-					/* fetch source pixel */
-
-					int idx;
+                                        __pix = __blackPixel;
+                                    } else {
+                                        /* fetch source pixel */
+
+                                        int idx;
 #ifdef EARLY_OUT
-					didFetchInRow = 1;
+                                        didFetchInRow = 1;
 #endif
-					idx = __srcY * __srcBytesPerRow + __srcX + __srcX + __srcX;
-					if ((unsigned)idx < __nSrcBytes) {
-					    __pix = __srcBytes[idx];
-					    __pix = (__pix<<8) | __srcBytes[idx+1];
-					    __pix = (__pix<<8) | __srcBytes[idx+2];
-					} else {
-					    __pix = __blackPixel;
-					}
-				    }
-				}
-			    }
-			}
-
-			/* store pixel */
-			if (__pix != 0) {
-			    __dstPtr[0] = (__pix >> 16 & 0xFF);
-			    __dstPtr[1] = (__pix >> 8) & 0xFF;
-			    __dstPtr[2] = __pix & 0xFF;
-			}
-			__dstPtr += 3;
-		    }
-		}
-		break;
-
-	    default:
-		for (__dstY = 0; __dstY < __newHeight; __dstY++) {
-		    double __pY, __sinPY, __cosPY;
+                                        idx = __srcY * __srcBytesPerRow + __srcX + __srcX + __srcX;
+                                        if ((unsigned)idx < __nSrcBytes) {
+                                            __pix = __srcBytes[idx];
+                                            __pix = (__pix<<8) | __srcBytes[idx+1];
+                                            __pix = (__pix<<8) | __srcBytes[idx+2];
+                                        } else {
+                                            __pix = __blackPixel;
+                                        }
+                                    }
+                                }
+                            }
+                        }
+
+                        /* store pixel */
+                        if (__pix != 0) {
+                            __dstPtr[0] = (__pix >> 16 & 0xFF);
+                            __dstPtr[1] = (__pix >> 8) & 0xFF;
+                            __dstPtr[2] = __pix & 0xFF;
+                        }
+                        __dstPtr += 3;
+                    }
+                }
+                break;
+
+            default:
+                for (__dstY = 0; __dstY < __newHeight; __dstY++) {
+                    double __pY, __sinPY, __cosPY;
 #ifdef EARLY_OUT
-		    int didFetchInRow = 0;
+                    int didFetchInRow = 0;
 #endif
-		    __pY = (double)(__dstY + __minY);
-
-		    __sinPY = __sin * __pY;
-		    __cosPY = __cos * __pY;
-
-		    __dstPtr = __dstRowPtr;
-		    __dstMask = 0x80;
-		    __dstRowPtr += __dstBytesPerRow;
-
-		    for (__dstX = 0; __dstX < __newWidth; __dstX++) {
-			double __pX, __nX;
-			OBJ __pix;
-
-			/* translate X in destination (center to 0/0) */
-			__pX = (double)(__dstX + __minX);
-			/* rotate X */
-			__nX = (__cos * __pX) - __sinPY;
-
-			/* translate X in source (origin to 0/0) */
-			__nX = __nX + __halfW + 0.5;
-
-			/* inside ? */
-			if (__nX < 0) {
+                    __pY = (double)(__dstY + __minY);
+
+                    __sinPY = __sin * __pY;
+                    __cosPY = __cos * __pY;
+
+                    __dstPtr = __dstRowPtr;
+                    __dstMask = 0x80;
+                    __dstRowPtr += __dstBytesPerRow;
+
+                    for (__dstX = 0; __dstX < __newWidth; __dstX++) {
+                        double __pX, __nX;
+                        OBJ __pix;
+
+                        /* translate X in destination (center to 0/0) */
+                        __pX = (double)(__dstX + __minX);
+                        /* rotate X */
+                        __nX = (__cos * __pX) - __sinPY;
+
+                        /* translate X in source (origin to 0/0) */
+                        __nX = __nX + __halfW + 0.5;
+
+                        /* inside ? */
+                        if (__nX < 0) {
 #ifdef EARLY_OUT
-			    if (didFetchInRow) {
-				break;
-			    }
+                            if (didFetchInRow) {
+                                break;
+                            }
 #endif
-			    __pix = blackPixel;
-			} else {
-			    int __srcX;
-
-			    __srcX = (int)__nX;
-			    /* inside ? */
-			    if (__srcX >= __width) {
+                            __pix = blackPixel;
+                        } else {
+                            int __srcX;
+
+                            __srcX = (int)__nX;
+                            /* inside ? */
+                            if (__srcX >= __width) {
 #ifdef EARLY_OUT
-				if (didFetchInRow) {
-				    break;
-				}
+                                if (didFetchInRow) {
+                                    break;
+                                }
 #endif
-				__pix = blackPixel;
-			    } else {
-				double __nY;
-
-				/* rotate Y */
-				__nY = (__sin * __pX) + __cosPY;
-				/* translate Y in source (origin to 0/0) */
-				__nY = __nY + __halfH + 0.5;
-
-				/* inside ? */
-				if (__nY < 0) {
+                                __pix = blackPixel;
+                            } else {
+                                double __nY;
+
+                                /* rotate Y */
+                                __nY = (__sin * __pX) + __cosPY;
+                                /* translate Y in source (origin to 0/0) */
+                                __nY = __nY + __halfH + 0.5;
+
+                                /* inside ? */
+                                if (__nY < 0) {
 #ifdef EARLY_OUT
-				    if (didFetchInRow) {
-					break;
-				    }
+                                    if (didFetchInRow) {
+                                        break;
+                                    }
 #endif
-				    __pix = blackPixel;
-				} else {
-				    int __srcY;
-
-				    __srcY = (int)__nY;
-				    /* inside ? */
-				    if (__srcY >= __height) {
+                                    __pix = blackPixel;
+                                } else {
+                                    int __srcY;
+
+                                    __srcY = (int)__nY;
+                                    /* inside ? */
+                                    if (__srcY >= __height) {
 #ifdef EARLY_OUT
-					if (didFetchInRow) {
-					    break;
-					}
+                                        if (didFetchInRow) {
+                                            break;
+                                        }
 #endif
-					__pix = blackPixel;
-				    } else {
-					/* fetch source pixel */
-
-					static struct inlineCache valAt = _ILC2;
+                                        __pix = blackPixel;
+                                    } else {
+                                        /* fetch source pixel */
+
+                                        static struct inlineCache valAt = _ILC2;
 #ifdef EARLY_OUT
-					didFetchInRow = 1;
+                                        didFetchInRow = 1;
 #endif
-					__pix = (*valAt.ilc_func)(self,
-							      @symbol(pixelAtX:y:),
-							      nil, &valAt,
-							      __MKSMALLINT(__srcX),
-							      __MKSMALLINT(__srcY));
-				    }
-				}
-			    }
-			}
-
-			/* store pixel */
-			{
-			    static struct inlineCache atPutVal = _ILC3;
-
-			    if (__pix != __MKSMALLINT(0)) {
-				(*atPutVal.ilc_func)(newImage,
-						      @symbol(pixelAtX:y:put:),
-						      nil, &atPutVal,
-						      __MKSMALLINT(__dstX),
-						      __MKSMALLINT(__dstY),
-						      __pix
-						     );
-			    }
-			}
-		    }
-		}
-		break;
-	}
-
-	bad = false;
+                                        __pix = (*valAt.ilc_func)(self,
+                                                              @symbol(pixelAtX:y:),
+                                                              nil, &valAt,
+                                                              __MKSMALLINT(__srcX),
+                                                              __MKSMALLINT(__srcY));
+                                    }
+                                }
+                            }
+                        }
+
+                        /* store pixel */
+                        {
+                            static struct inlineCache atPutVal = _ILC3;
+
+                            if (__pix != __MKSMALLINT(0)) {
+                                (*atPutVal.ilc_func)(newImage,
+                                                      @symbol(pixelAtX:y:put:),
+                                                      nil, &atPutVal,
+                                                      __MKSMALLINT(__dstX),
+                                                      __MKSMALLINT(__dstY),
+                                                      __pix
+                                                     );
+                            }
+                        }
+                    }
+                }
+                break;
+        }
+
+        bad = false;
     }
 %}.
 
     bad ifTrue:[
-	"/ should not happen
-	self primitiveFailed
+        "/ should not happen
+        self primitiveFailed
 
 "/        sinRot := radians negated sin.
 "/        cosRot := radians negated cos.
@@ -11460,9 +11523,9 @@
 
      i := Smalltalk imageFromFileNamed:'bitmaps/gifImages/garfield.gif' inPackage:'stx:goodies'.
      Transcript showCR:(
-	Time millisecondsToRun:[
-	   i rotated:45.
-	]
+        Time millisecondsToRun:[
+           i rotated:45.
+        ]
      ).
     "
     "
@@ -11473,12 +11536,12 @@
      v openAndWait.
      rot := 0.
      [true] whileTrue:[
-	rI := i rotated:rot.
-	rI := rI onDevice:v device.
-	v clear.
-	v displayForm:rI x:(v width-rI width)//2 y:(v height-rI height)//2.
-	rot := rot + 5.
-	rI close.
+        rI := i rotated:rot.
+        rI := rI onDevice:v device.
+        v clear.
+        v displayForm:rI x:(v width-rI width)//2 y:(v height-rI height)//2.
+        rot := rot + 5.
+        rI close.
      ]
     "
     "
@@ -11489,12 +11552,12 @@
      v openAndWait.
      rot := 0.
      [true] whileTrue:[
-	rI := i rotated:rot.
-	rI := rI onDevice:v device.
-	v clear.
-	v displayForm:rI x:(v width-rI width)//2 y:(v height-rI height)//2.
-	rot := rot + 5.
-	rI close.
+        rI := i rotated:rot.
+        rI := rI onDevice:v device.
+        v clear.
+        v displayForm:rI x:(v width-rI width)//2 y:(v height-rI height)//2.
+        rot := rot + 5.
+        rI close.
      ]
     "
     "
@@ -11514,13 +11577,13 @@
      v openAndWait.
      rot := 0.
      [true] whileTrue:[
-	rI := i rotated:rot.
-	rI := rI onDevice:v device.
-	v clear.
-	v displayForm:rI x:(v width-rI width)//2 y:(v height-rI height)//2.
-	rot := rot + 5.
-	rI close.
-	Delay waitForSeconds:0.1.
+        rI := i rotated:rot.
+        rI := rI onDevice:v device.
+        v clear.
+        v displayForm:rI x:(v width-rI width)//2 y:(v height-rI height)//2.
+        rot := rot + 5.
+        rI close.
+        Delay waitForSeconds:0.1.
      ]
     "
     "
@@ -11540,13 +11603,13 @@
      v openAndWait.
      rot := 0.
      [true] whileTrue:[
-	rI := i rotated:rot.
-	rI := rI onDevice:v device.
-	v clear.
-	v displayForm:rI x:(v width-rI width)//2 y:(v height-rI height)//2.
-	rot := rot + 30.
-	rI close.
-	Delay waitForSeconds:0.3.
+        rI := i rotated:rot.
+        rI := rI onDevice:v device.
+        v clear.
+        v displayForm:rI x:(v width-rI width)//2 y:(v height-rI height)//2.
+        rot := rot + 30.
+        rI close.
+        Delay waitForSeconds:0.3.
      ]
     "
 
@@ -11595,7 +11658,7 @@
     ((mX = 1) and:[mY = 1]) ifTrue:[^ self].
 
     ((mX isMemberOf:SmallInteger) and:[mY isMemberOf:SmallInteger]) ifFalse:[
-	^ self hardMagnifiedBy:scalePoint
+        ^ self hardMagnifiedBy:scalePoint
     ].
 
     bytes := self bits.
@@ -11613,60 +11676,60 @@
     newBits := ByteArray uninitializedNew:(newBytesPerRow * newHeight).
 
     mask notNil ifTrue:[
-	newMask := (mask magnifiedBy:scalePoint)
+        newMask := (mask magnifiedBy:scalePoint)
     ].
 
     newImage := self species new.
     newImage
-	width:newWidth
-	height:newHeight
-	photometric:photometric
-	samplesPerPixel:samplesPerPixel
-	bitsPerSample:bitsPerSample
-	colorMap:colorMap copy
-	bits:newBits
-	mask:newMask.
+        width:newWidth
+        height:newHeight
+        photometric:photometric
+        samplesPerPixel:samplesPerPixel
+        bitsPerSample:bitsPerSample
+        colorMap:colorMap copy
+        bits:newBits
+        mask:newMask.
 
     mX = 1 ifTrue:[
-	"expand rows only"
-	srcOffset := 1.
-	dstOffset := 1.
-
-	1 to:h do:[:row |
-	    1 to:magY do:[:i |
-		newBits replaceFrom:dstOffset
-			to:(dstOffset + oldBytesPerRow - 1)
-			with:bytes
-			startingAt:srcOffset.
-		dstOffset := dstOffset + newBytesPerRow
-	    ].
-	    srcOffset := srcOffset + oldBytesPerRow.
-	].
+        "expand rows only"
+        srcOffset := 1.
+        dstOffset := 1.
+
+        1 to:h do:[:row |
+            1 to:magY do:[:i |
+                newBits replaceFrom:dstOffset
+                        to:(dstOffset + oldBytesPerRow - 1)
+                        with:bytes
+                        startingAt:srcOffset.
+                dstOffset := dstOffset + newBytesPerRow
+            ].
+            srcOffset := srcOffset + oldBytesPerRow.
+        ].
     ] ifFalse:[
-	"expand cols"
-	(mX > 1) ifTrue:[
-	    dstOffset := 1.
-	    srcOffset := 1.
-	    1 to:h do:[:row |
-		self magnifyRowFrom:bytes
-		     offset:srcOffset
-		     into:newBits
-		     offset:dstOffset
-		     factor:mX.
-
-		first := dstOffset.
-		dstOffset := dstOffset + newBytesPerRow.
-		" and copy for row expansion "
-		2 to:magY do:[:i |
-		    newBits replaceFrom:dstOffset
-			    to:(dstOffset + newBytesPerRow - 1)
-			    with:newBits
-			    startingAt:first.
-		    dstOffset := dstOffset + newBytesPerRow
-		].
-		srcOffset := srcOffset + oldBytesPerRow.
-	    ].
-	]
+        "expand cols"
+        (mX > 1) ifTrue:[
+            dstOffset := 1.
+            srcOffset := 1.
+            1 to:h do:[:row |
+                self magnifyRowFrom:bytes
+                     offset:srcOffset
+                     into:newBits
+                     offset:dstOffset
+                     factor:mX.
+
+                first := dstOffset.
+                dstOffset := dstOffset + newBytesPerRow.
+                " and copy for row expansion "
+                2 to:magY do:[:i |
+                    newBits replaceFrom:dstOffset
+                            to:(dstOffset + newBytesPerRow - 1)
+                            with:newBits
+                            startingAt:first.
+                    dstOffset := dstOffset + newBytesPerRow
+                ].
+                srcOffset := srcOffset + oldBytesPerRow.
+            ].
+        ]
     ].
     ^ newImage
 
@@ -11725,7 +11788,7 @@
      CAVEAT: Need an argument, which specifies by how much it should be lighter."
 
      ^ self
-	copyWithColorMapProcessing:[:clr | clr mixed:amount with:aColor]
+        copyWithColorMapProcessing:[:clr | clr mixed:amount with:aColor]
 
     "
      (Smalltalk bitmapFromFileNamed:'gifImages/claus.gif' inPackage:'stx:goodies') inspect
@@ -11748,28 +11811,28 @@
     |newImage|
 
     colorMap isNil ifTrue:[
-	photometric == #blackIs0 ifTrue:[
-	    newImage := self copy.
-	    newImage photometric:#whiteIs0.
-	    ^ newImage
-	].
-	photometric == #whiteIs0 ifTrue:[
-	    newImage := self copy.
-	    newImage photometric:#blackIs0.
-	    ^ newImage
-	].
-	^ nil
+        photometric == #blackIs0 ifTrue:[
+            newImage := self copy.
+            newImage photometric:#whiteIs0.
+            ^ newImage
+        ].
+        photometric == #whiteIs0 ifTrue:[
+            newImage := self copy.
+            newImage photometric:#blackIs0.
+            ^ newImage
+        ].
+        ^ nil
     ].
 
      ^ self
-	copyWithColorMapProcessing:[:clr |
-		|newColor|
-
-		newColor := Color
-				redByte:(255 - clr redByte)
-				greenByte:(255 - clr greenByte)
-				blueByte:(255 - clr blueByte)
-	]
+        copyWithColorMapProcessing:[:clr |
+                |newColor|
+
+                newColor := Color
+                                redByte:(255 - clr redByte)
+                                greenByte:(255 - clr greenByte)
+                                blueByte:(255 - clr blueByte)
+        ]
 
     "
      (Image fromFile:'goodies/bitmaps/gifImages/claus.gif') inspect
@@ -11783,7 +11846,7 @@
 rotated:degrees
     "return a new image from the old one, by rotating the image
      degrees clockwise.
-     Notice, that the resulting image has a different extent.
+     Notice that the resulting image has a different extent.
      If rotation is heavily used, the workHorse methods
      (#easyRotateBitsInto:angle: and #hardRotateBitsInto:angle) may
      be redefined in concrete image subclasses."
@@ -11796,15 +11859,15 @@
     d := d truncated.
     d = 0 ifTrue:[^ self].
     ((d ~= 90) and:[(d ~= 270) and:[d ~= 180]]) ifTrue:[
-	^ self hardRotated:d
+        ^ self hardRotated:d
     ].
 
     d = 180 ifTrue:[
-	nW := width.
-	nH := height.
+        nW := width.
+        nH := height.
     ] ifFalse:[
-	nW := height.
-	nH := width.
+        nW := height.
+        nH := width.
     ].
 
     newImage := self species new.
@@ -11816,7 +11879,7 @@
     newImage bitsPerSample:bitsPerSample.
     newImage colorMap:colorMap copy.
     mask notNil ifTrue:[
-	newImage mask:(mask rotated:degrees)
+        newImage mask:(mask rotated:degrees)
     ].
 
     self easyRotateBitsInto:newImage angle:d.
@@ -11826,7 +11889,18 @@
     "
      |i|
 
-     i := Image fromFile:'goodies/bitmaps/gifImages/claus.gif'.
+     i := Image fromFile:'../../goodies/bitmaps/gifImages/claus.gif'.
+     i inspect.
+     (i rotated:45) inspect.
+     (i rotated:90) inspect.
+     (i rotated:180) inspect.
+     (i rotated:270) inspect.
+    "
+    "
+     |i|
+
+     i := Image fromFile:'../../goodies/bitmaps/gifImages/claus.gif'.
+     i := Depth24Image fromImage:i.
      i inspect.
      (i rotated:45) inspect.
      (i rotated:90) inspect.
@@ -11898,36 +11972,36 @@
     newImage colorMap:colorMap copy.
     newImage maskedPixelsAre0:maskedPixelsAre0.
     mask notNil ifTrue:[
-	newImage mask:(mask threeDProjected:fraction1 and:fraction2)
+        newImage mask:(mask threeDProjected:fraction1 and:fraction2)
     ] ifFalse:[
-	self isMask ifFalse:[
-	    self depth ~~ 1 ifTrue:[
-		m := ImageMask width:width height:height.
-		m bits:(maskBits := ByteArray new:(m bytesPerRow * height)).
-		maskBits atAllPut:16rFF.
-		newImage mask:(m threeDProjected:fraction1 and:fraction2)
-	    ]
-	]
+        self isMask ifFalse:[
+            self depth ~~ 1 ifTrue:[
+                m := ImageMask width:width height:height.
+                m bits:(maskBits := ByteArray new:(m bytesPerRow * height)).
+                maskBits atAllPut:16rFF.
+                newImage mask:(m threeDProjected:fraction1 and:fraction2)
+            ]
+        ]
     ].
 
     myDepth := self depth.
     myDepth == 1 ifTrue:[
-	blackPixel := 0.
+        blackPixel := 0.
     ] ifFalse:[
-	maskedPixelsAre0 ifTrue:[
-	    blackPixel := 0.
-	] ifFalse:[
-	    blackPixel := self valueFromColor:Color black.
-	    blackPixel isNil ifTrue:[
-		blackPixel := self valueFromColor:Color white.
-		blackPixel isNil ifTrue:[
-		    blackPixel := 0.
-		]
-	    ]
-	].
-	self isMask ifTrue:[
-	    blackPixel := 0.
-	].
+        maskedPixelsAre0 ifTrue:[
+            blackPixel := 0.
+        ] ifFalse:[
+            blackPixel := self valueFromColor:Color black.
+            blackPixel isNil ifTrue:[
+                blackPixel := self valueFromColor:Color white.
+                blackPixel isNil ifTrue:[
+                    blackPixel := 0.
+                ]
+            ]
+        ].
+        self isMask ifTrue:[
+            blackPixel := 0.
+        ].
     ].
 
     newBits atAllPut:0.
@@ -11968,24 +12042,24 @@
     df := fr-fl.
 
     0 to:width-1 do:[:srcX |
-	fractX := srcX / width.
-	my := ml + (dm * fractX).
-	fy := fl + (df * fractX).
-	o1 := dx1 * fractX.
-	o2 := dx2 * fractX.
-
-	0 to:height-1 do:[:srcY |
-	    srcY < halfH ifTrue:[
-		dstY := o1 + (fy * (srcY / halfH)).
-	    ] ifFalse:[
-		dstY := my + (fy * ((srcY-halfH) / halfH)).
-	    ].
-	    pix := self pixelAtX:srcX y:srcY.
-	    dstY < 0
-		ifTrue:[dstY := 0]
-		ifFalse:[ dstY >= height ifTrue:[dstY := height-1]].
-	    newImage pixelAtX:srcX y:dstY truncated put:pix.
-	].
+        fractX := srcX / width.
+        my := ml + (dm * fractX).
+        fy := fl + (df * fractX).
+        o1 := dx1 * fractX.
+        o2 := dx2 * fractX.
+
+        0 to:height-1 do:[:srcY |
+            srcY < halfH ifTrue:[
+                dstY := o1 + (fy * (srcY / halfH)).
+            ] ifFalse:[
+                dstY := my + (fy * ((srcY-halfH) / halfH)).
+            ].
+            pix := self pixelAtX:srcX y:srcY.
+            dstY < 0
+                ifTrue:[dstY := 0]
+                ifFalse:[ dstY >= height ifTrue:[dstY := height-1]].
+            newImage pixelAtX:srcX y:dstY truncated put:pix.
+        ].
     ].
 
     ^ newImage
@@ -12009,7 +12083,7 @@
      newColors newColorArray newImage extMask extBits newPixelValue|
 
     numBits > 7 ifTrue:[
-	^ nil
+        ^ nil
     ].
     mask := (16rFF bitShift:numBits) bitAnd:16rFF.
     extMask := (1 bitShift:numBits).
@@ -12032,70 +12106,70 @@
     yMax := height - 1.
 
     newPixelValue :=
-	[:image :pixelValue |
-	    |r g b nR nG nB|
-
-	    r := image redBitsOf:pixelValue.
-	    g := image greenBitsOf:pixelValue.
-	    b := image blueBitsOf:pixelValue.
-	    nR := r bitAnd:mask. (nR bitAnd:extMask)~~0 ifTrue:[nR := nR bitOr:extBits].
-	    nG := g bitAnd:mask. (nG bitAnd:extMask)~~0 ifTrue:[nG := nG bitOr:extBits].
-	    nB := b bitAnd:mask. (nB bitAnd:extMask)~~0 ifTrue:[nB := nB bitOr:extBits].
-	    image valueFromRedBits:nR greenBits:nG blueBits:nB.
-	].
+        [:image :pixelValue |
+            |r g b nR nG nB|
+
+            r := image redBitsOf:pixelValue.
+            g := image greenBitsOf:pixelValue.
+            b := image blueBitsOf:pixelValue.
+            nR := r bitAnd:mask. (nR bitAnd:extMask)~~0 ifTrue:[nR := nR bitOr:extBits].
+            nG := g bitAnd:mask. (nG bitAnd:extMask)~~0 ifTrue:[nG := nG bitOr:extBits].
+            nB := b bitAnd:mask. (nB bitAnd:extMask)~~0 ifTrue:[nB := nB bitOr:extBits].
+            image valueFromRedBits:nR greenBits:nG blueBits:nB.
+        ].
 
 
     photometric == #palette ifFalse:[
-	"/ direct manipulation of the pixels
-	0 to:yMax do:[:y |
-	    0 to:xMax do:[:x |
-		pix := self pixelAtX:x y:y.
-		n_pix := newPixelValue value:self value:pix.
-		n_pix ~= pix ifTrue:[
-		    newImage pixelAtX:x y:y put:n_pix.
-		    anyChange := true.
-		]
-	    ]
-	].
-	anyChange ifFalse:[
-	    ^ nil
-	].
+        "/ direct manipulation of the pixels
+        0 to:yMax do:[:y |
+            0 to:xMax do:[:x |
+                pix := self pixelAtX:x y:y.
+                n_pix := newPixelValue value:self value:pix.
+                n_pix ~= pix ifTrue:[
+                    newImage pixelAtX:x y:y put:n_pix.
+                    anyChange := true.
+                ]
+            ]
+        ].
+        anyChange ifFalse:[
+            ^ nil
+        ].
     ] ifTrue:[
-	"/ manipulate the colormap
-	0 to:yMax do:[:y |
-	    0 to:xMax do:[:x |
-		pix := self pixelAtX:x y:y.
-		(n_pix := map at:pix+1) isNil ifTrue:[
-		    clr := self colorAtX:x y:y.
-
-		    r := clr redByte.
-		    g := clr greenByte.
-		    b := clr blueByte.
-		    nR := r bitAnd:mask. (nR bitAnd:extMask)~~0 ifTrue:[nR := nR bitOr:extBits].
-		    nG := g bitAnd:mask. (nR bitAnd:extMask)~~0 ifTrue:[nR := nR bitOr:extBits].
-		    nB := b bitAnd:mask. (nR bitAnd:extMask)~~0 ifTrue:[nR := nR bitOr:extBits].
-		    n_clr := Color redByte:nR greenByte:nG blueByte:nB.
-		    (newColors includes:n_clr) ifFalse:[
-			newColors add:n_clr.
-			newColorArray add:n_clr.
-			revMap add:pix.
-			map at:pix+1 put:(n_pix := revMap size - 1).
-		    ] ifTrue:[
-			"/ mhmh - multiple pixels mapped to the same color
-			n_pix := (newColorArray indexOf:n_clr) - 1.
-			map at:pix+1 put:n_pix.
-		    ]
-		].
-		newImage pixelAtX:x y:y put:n_pix.
-	    ]
-	].
-	revMap size == self colorMap size ifTrue:[
-	    revMap = (0 to:revMap size-1) ifTrue:[
-		^ nil
-	    ]
-	].
-
-	newImage colorMap:(MappedPalette withColors:newColorArray).
+        "/ manipulate the colormap
+        0 to:yMax do:[:y |
+            0 to:xMax do:[:x |
+                pix := self pixelAtX:x y:y.
+                (n_pix := map at:pix+1) isNil ifTrue:[
+                    clr := self colorAtX:x y:y.
+
+                    r := clr redByte.
+                    g := clr greenByte.
+                    b := clr blueByte.
+                    nR := r bitAnd:mask. (nR bitAnd:extMask)~~0 ifTrue:[nR := nR bitOr:extBits].
+                    nG := g bitAnd:mask. (nR bitAnd:extMask)~~0 ifTrue:[nR := nR bitOr:extBits].
+                    nB := b bitAnd:mask. (nR bitAnd:extMask)~~0 ifTrue:[nR := nR bitOr:extBits].
+                    n_clr := Color redByte:nR greenByte:nG blueByte:nB.
+                    (newColors includes:n_clr) ifFalse:[
+                        newColors add:n_clr.
+                        newColorArray add:n_clr.
+                        revMap add:pix.
+                        map at:pix+1 put:(n_pix := revMap size - 1).
+                    ] ifTrue:[
+                        "/ mhmh - multiple pixels mapped to the same color
+                        n_pix := (newColorArray indexOf:n_clr) - 1.
+                        map at:pix+1 put:n_pix.
+                    ]
+                ].
+                newImage pixelAtX:x y:y put:n_pix.
+            ]
+        ].
+        revMap size == self colorMap size ifTrue:[
+            revMap = (0 to:revMap size-1) ifTrue:[
+                ^ nil
+            ]
+        ].
+
+        newImage colorMap:(MappedPalette withColors:newColorArray).
     ].
 
     ^ newImage
@@ -12108,7 +12182,7 @@
      (#withPixelFunctionAppliedToPixels:) or redefine this method in
      a concrete subclass.
      (read `Beyond photography, by Gerard J. Holzmann;
-	   ISBM 0-13-074410-7)
+           ISBM 0-13-074410-7)
      See blurred / oilPointed as examples ...)"
 
     |w  "{Class: SmallInteger }"
@@ -12131,13 +12205,13 @@
     h := height - 1.
 
     0 to:h do:[:y |
-	0 to:w do:[:x |
-	    newImage colorAtX:x y:y put:(pixelFunctionBlock
-						value:self
-						value:(self colorAtX:x y:y)
-						value:x
-						value:y)
-	]
+        0 to:w do:[:x |
+            newImage colorAtX:x y:y put:(pixelFunctionBlock
+                                                value:self
+                                                value:(self colorAtX:x y:y)
+                                                value:x
+                                                value:y)
+        ]
     ].
     ^ newImage
 
@@ -12150,13 +12224,13 @@
 
      black := Color black.
      (i withPixelFunctionApplied:[:oldImage :oldColor :x :y |
-			((x between:100 and:200)
-			and:[y between:100 and:200]) ifTrue:[
-			    oldColor
-			] ifFalse:[
-			    black.
-			]
-		     ]) inspect.
+                        ((x between:100 and:200)
+                        and:[y between:100 and:200]) ifTrue:[
+                            oldColor
+                        ] ifFalse:[
+                            black.
+                        ]
+                     ]) inspect.
     "
     "brighten a frame:
 
@@ -12168,15 +12242,15 @@
      w := i width.
      h := i height.
      (i withPixelFunctionApplied:[:oldImage :oldColor :x :y |
-			((x between:0 and:10)
-			or:[(y between:0 and:10)
-			or:[(x between:w-10 and:w)
-			or:[y between:h-10 and:h]]]) ifTrue:[
-			    oldColor lightened nearestIn:i colorMap
-			] ifFalse:[
-			    oldColor.
-			]
-		     ]) inspect.
+                        ((x between:0 and:10)
+                        or:[(y between:0 and:10)
+                        or:[(x between:w-10 and:w)
+                        or:[y between:h-10 and:h]]]) ifTrue:[
+                            oldColor lightened nearestIn:i colorMap
+                        ] ifFalse:[
+                            oldColor.
+                        ]
+                     ]) inspect.
     "
 
     "Modified: 24.4.1997 / 18:36:59 / cg"
@@ -12186,12 +12260,12 @@
     "return a new image from the old one, by applying a pixel processor
      on the pixel values.
      (read `Beyond photography, by Gerard J. Holzmann;
-	   ISBM 0-13-074410-7)
+           ISBM 0-13-074410-7)
      See blurred / oilPointed as examples ...)"
 
     ^ self
-	withPixelFunctionAppliedToPixels:pixelFunctionBlock
-	in:(0@0 corner:width@height)
+        withPixelFunctionAppliedToPixels:pixelFunctionBlock
+        in:(0@0 corner:width@height)
 
     "oil painting effect:
 
@@ -12202,27 +12276,27 @@
      w := i width - 1.
      h := i height - 1.
      (i withPixelFunctionAppliedToPixels:[:oldImage :oldPixel :x :y |
-			|b p max xMin xMax yMin yMax|
-
-			b := Bag identityNew:10.
-			xMin := x-3 max:0.
-			xMax := x+3 min:w.
-			yMin := y-3 max:0.
-			yMax := y+3 min:h.
-			xMin to:xMax do:[:tx|
-			  yMin to:yMax do:[:ty|
-			    b add:(oldImage pixelAtX:tx y:ty)
-			  ]
-			].
-			max := 0.
-			b contents keysAndValuesDo:[:pixel :n |
-			    n > max ifTrue:[
-				p := pixel.
-				max := n
-			    ]
-			].
-			p
-		     ]) inspect.
+                        |b p max xMin xMax yMin yMax|
+
+                        b := Bag identityNew:10.
+                        xMin := x-3 max:0.
+                        xMax := x+3 min:w.
+                        yMin := y-3 max:0.
+                        yMax := y+3 min:h.
+                        xMin to:xMax do:[:tx|
+                          yMin to:yMax do:[:ty|
+                            b add:(oldImage pixelAtX:tx y:ty)
+                          ]
+                        ].
+                        max := 0.
+                        b contents keysAndValuesDo:[:pixel :n |
+                            n > max ifTrue:[
+                                p := pixel.
+                                max := n
+                            ]
+                        ].
+                        p
+                     ]) inspect.
     "
 
     "fisheye effect:
@@ -12238,25 +12312,25 @@
      R := w2.
      white := i valueFromColor:Color white.
      (i withPixelFunctionAppliedToPixels:[:oldImage :oldPixel :x :y |
-			|p r a nR nP nX nY|
-
-			p := (x-w2)@(y-h2).
-			r := p r.
-			a := p theta.
-			nR := r * r / R.
-			nP := Point r:nR theta:a.
-			nX := ((nP x+w2) rounded max:0) min:w.
-			nY := ((nP y+h2) rounded max:0) min:h.
-			(nX > w or:[nX < 0]) ifTrue:[
-			    white
-			] ifFalse:[
-			    (nY > h or:[nY < 0]) ifTrue:[
-				white
-			    ] ifFalse:[
-				oldImage pixelAtX:nX y:nY
-			    ]
-			]
-		     ]) inspect.
+                        |p r a nR nP nX nY|
+
+                        p := (x-w2)@(y-h2).
+                        r := p r.
+                        a := p theta.
+                        nR := r * r / R.
+                        nP := Point r:nR theta:a.
+                        nX := ((nP x+w2) rounded max:0) min:w.
+                        nY := ((nP y+h2) rounded max:0) min:h.
+                        (nX > w or:[nX < 0]) ifTrue:[
+                            white
+                        ] ifFalse:[
+                            (nY > h or:[nY < 0]) ifTrue:[
+                                white
+                            ] ifFalse:[
+                                oldImage pixelAtX:nX y:nY
+                            ]
+                        ]
+                     ]) inspect.
     "
     "fisheye effect:
 
@@ -12271,25 +12345,25 @@
      R := w2.
      white := i valueFromColor:Color white.
      (i withPixelFunctionAppliedToPixels:[:oldImage :oldPixel :x :y |
-			|p r a nR nP nX nY|
-
-			p := (x-w2)@(y-h2).
-			r := p r.
-			a := p theta.
-			nR := r * r / R.
-			nP := Point r:nR theta:a.
-			nX := (nP x+w2) rounded.
-			nY := (nP y+h2) rounded.
-			(nX > w or:[nX < 0]) ifTrue:[
-			    white
-			] ifFalse:[
-			    (nY > h or:[nY < 0]) ifTrue:[
-				white
-			    ] ifFalse:[
-				oldImage pixelAtX:nX y:nY
-			    ]
-			]
-		     ]) inspect.
+                        |p r a nR nP nX nY|
+
+                        p := (x-w2)@(y-h2).
+                        r := p r.
+                        a := p theta.
+                        nR := r * r / R.
+                        nP := Point r:nR theta:a.
+                        nX := (nP x+w2) rounded.
+                        nY := (nP y+h2) rounded.
+                        (nX > w or:[nX < 0]) ifTrue:[
+                            white
+                        ] ifFalse:[
+                            (nY > h or:[nY < 0]) ifTrue:[
+                                white
+                            ] ifFalse:[
+                                oldImage pixelAtX:nX y:nY
+                            ]
+                        ]
+                     ]) inspect.
     "
 
     "Created: 24.4.1997 / 18:37:17 / cg"
@@ -12300,7 +12374,7 @@
     "return a new image from the old one, by applying a pixel processor
      on the pixel values.
      (read `Beyond photography, by Gerard J. Holzmann;
-	   ISBM 0-13-074410-7)
+           ISBM 0-13-074410-7)
      See blurred / oilPointed as examples ...)"
 
     |newImage "newBits newBytesPerRow"|
@@ -12329,27 +12403,27 @@
      w := i width - 1.
      h := i height - 1.
      (i withPixelFunctionAppliedToPixels:[:oldImage :oldPixel :x :y |
-			|b p max xMin xMax yMin yMax|
-
-			b := Bag identityNew:10.
-			xMin := x-3 max:0.
-			xMax := x+3 min:w.
-			yMin := y-3 max:0.
-			yMax := y+3 min:h.
-			xMin to:xMax do:[:tx|
-			  yMin to:yMax do:[:ty|
-			    b add:(oldImage pixelAtX:tx y:ty)
-			  ]
-			].
-			max := 0.
-			b contents keysAndValuesDo:[:pixel :n |
-			    n > max ifTrue:[
-				p := pixel.
-				max := n
-			    ]
-			].
-			p
-		     ]) inspect.
+                        |b p max xMin xMax yMin yMax|
+
+                        b := Bag identityNew:10.
+                        xMin := x-3 max:0.
+                        xMax := x+3 min:w.
+                        yMin := y-3 max:0.
+                        yMax := y+3 min:h.
+                        xMin to:xMax do:[:tx|
+                          yMin to:yMax do:[:ty|
+                            b add:(oldImage pixelAtX:tx y:ty)
+                          ]
+                        ].
+                        max := 0.
+                        b contents keysAndValuesDo:[:pixel :n |
+                            n > max ifTrue:[
+                                p := pixel.
+                                max := n
+                            ]
+                        ].
+                        p
+                     ]) inspect.
     "
 
     "fisheye effect:
@@ -12365,25 +12439,25 @@
      R := w2.
      white := i valueFromColor:Color white.
      (i withPixelFunctionAppliedToPixels:[:oldImage :oldPixel :x :y |
-			|p r a nR nP nX nY|
-
-			p := (x-w2)@(y-h2).
-			r := p r.
-			a := p theta.
-			nR := r * r / R.
-			nP := Point r:nR theta:a.
-			nX := ((nP x+w2) rounded max:0) min:w.
-			nY := ((nP y+h2) rounded max:0) min:h.
-			(nX > w or:[nX < 0]) ifTrue:[
-			    white
-			] ifFalse:[
-			    (nY > h or:[nY < 0]) ifTrue:[
-				white
-			    ] ifFalse:[
-				oldImage pixelAtX:nX y:nY
-			    ]
-			]
-		     ]) inspect.
+                        |p r a nR nP nX nY|
+
+                        p := (x-w2)@(y-h2).
+                        r := p r.
+                        a := p theta.
+                        nR := r * r / R.
+                        nP := Point r:nR theta:a.
+                        nX := ((nP x+w2) rounded max:0) min:w.
+                        nY := ((nP y+h2) rounded max:0) min:h.
+                        (nX > w or:[nX < 0]) ifTrue:[
+                            white
+                        ] ifFalse:[
+                            (nY > h or:[nY < 0]) ifTrue:[
+                                white
+                            ] ifFalse:[
+                                oldImage pixelAtX:nX y:nY
+                            ]
+                        ]
+                     ]) inspect.
     "
     "fisheye effect:
 
@@ -12398,25 +12472,25 @@
      R := w2.
      white := i valueFromColor:Color white.
      (i withPixelFunctionAppliedToPixels:[:oldImage :oldPixel :x :y |
-			|p r a nR nP nX nY|
-
-			p := (x-w2)@(y-h2).
-			r := p r.
-			a := p theta.
-			nR := r * r / R.
-			nP := Point r:nR theta:a.
-			nX := (nP x+w2) rounded.
-			nY := (nP y+h2) rounded.
-			(nX > w or:[nX < 0]) ifTrue:[
-			    white
-			] ifFalse:[
-			    (nY > h or:[nY < 0]) ifTrue:[
-				white
-			    ] ifFalse:[
-				oldImage pixelAtX:nX y:nY
-			    ]
-			]
-		     ]) inspect.
+                        |p r a nR nP nX nY|
+
+                        p := (x-w2)@(y-h2).
+                        r := p r.
+                        a := p theta.
+                        nR := r * r / R.
+                        nP := Point r:nR theta:a.
+                        nX := (nP x+w2) rounded.
+                        nY := (nP y+h2) rounded.
+                        (nX > w or:[nX < 0]) ifTrue:[
+                            white
+                        ] ifFalse:[
+                            (nY > h or:[nY < 0]) ifTrue:[
+                                white
+                            ] ifFalse:[
+                                oldImage pixelAtX:nX y:nY
+                            ]
+                        ]
+                     ]) inspect.
     "
 
     "Created: 24.4.1997 / 18:37:17 / cg"
@@ -12445,21 +12519,21 @@
     "release device resources; destroy any device-resources"
 
     deviceForm notNil ifTrue:[
-	deviceForm destroy.
-	deviceForm := nil.
+        deviceForm destroy.
+        deviceForm := nil.
     ].
     monoDeviceForm notNil ifTrue:[
-	monoDeviceForm destroy.
-	monoDeviceForm := nil.
+        monoDeviceForm destroy.
+        monoDeviceForm := nil.
     ].
     fullColorDeviceForm notNil ifTrue:[
-	fullColorDeviceForm destroy.
-	fullColorDeviceForm := nil.
+        fullColorDeviceForm destroy.
+        fullColorDeviceForm := nil.
     ].
 
     device := nil.
     mask notNil ifTrue:[
-	mask close.
+        mask close.
     ].
     Lobby unregister:self.
 
@@ -12475,7 +12549,7 @@
     monoDeviceForm := nil.
     fullColorDeviceForm := nil.
     mask notNil ifTrue:[
-	mask release.
+        mask release.
     ].
     Lobby unregister:self.
     super release.
@@ -12545,34 +12619,34 @@
     ((photometric == anImage photometric)
      and:[self bitsPerPixel == anImage bitsPerPixel
      and:[colorMap = anImage colorMap]]) ifTrue:[
-	"/ can loop over values
-	anImage valuesFromX:srcX  y:srcY
-			toX:srcX+w-1 y:srcY+h-1
-			 do:[:x :y :pixelValue |
-	    self pixelAtX:x-dX y:y-dY put:pixelValue.
-	]
+        "/ can loop over values
+        anImage valuesFromX:srcX  y:srcY
+                        toX:srcX+w-1 y:srcY+h-1
+                         do:[:x :y :pixelValue |
+            self pixelAtX:x-dX y:y-dY put:pixelValue.
+        ]
     ] ifFalse:[
-	"/ must loop over colors - horribly slow
-	anImage colorsFromX:srcX  y:srcY
-			toX:srcX+w-1 y:srcY+h-1
-			 do:[:x :y :clr |
-	    self colorAtX:x-dX y:y-dY put:clr.
-	]
+        "/ must loop over colors - horribly slow
+        anImage colorsFromX:srcX  y:srcY
+                        toX:srcX+w-1 y:srcY+h-1
+                         do:[:x :y :clr |
+            self colorAtX:x-dX y:y-dY put:clr.
+        ]
     ].
 
     (mask isNil and:[anImage mask notNil]) ifTrue:[
-	"/ I have no mask; copied image has
-	self createMask.
+        "/ I have no mask; copied image has
+        self createMask.
     ].
 
     mask notNil ifTrue:[
-	anImage mask notNil ifTrue:[
-	    "/ both have a mask
-	    mask copyFrom:anImage mask x:srcX y:srcY toX:dstX y:dstY width:w height:h
-	] ifFalse:[
-	    "/ I have a mask - copied image has not
-	    mask fillRectangleX:dstX y:dstY width:w height:h withValue:1
-	]
+        anImage mask notNil ifTrue:[
+            "/ both have a mask
+            mask copyFrom:anImage mask x:srcX y:srcY toX:dstX y:dstY width:w height:h
+        ] ifFalse:[
+            "/ I have a mask - copied image has not
+            mask fillRectangleX:dstX y:dstY width:w height:h withValue:1
+        ]
 "/    ] ifFalse:[
 "/        anImage mask notNil ifTrue:[
 "/            "/ I have no mask; copied image has (already handled)
@@ -12614,11 +12688,11 @@
        for other cases, rewriting the inner loops as inline C-code."
 
     maskedCopy ifTrue:[
-	self
-	    copyMaskedFrom:anImage x:srcX y:srcY toX:dstX y:dstY width:w height:h
+        self
+            copyMaskedFrom:anImage x:srcX y:srcY toX:dstX y:dstY width:w height:h
     ] ifFalse:[
-	self
-	    copyFrom:anImage x:srcX y:srcY toX:dstX y:dstY width:w height:h
+        self
+            copyFrom:anImage x:srcX y:srcY toX:dstX y:dstY width:w height:h
     ].
 
     "
@@ -12658,23 +12732,23 @@
     ((photometric == anImage photometric)
      and:[self bitsPerPixel == anImage bitsPerPixel
      and:[colorMap = anImage colorMap]]) ifTrue:[
-	"/ can loop over values
-	anImage valuesFromX:srcX  y:srcY
-			toX:srcX+w-1 y:srcY+h-1
-			 do:[:x :y :pixelValue |
-	    (anImage maskAtX:x y:y) ~~ 0 ifTrue:[
-		self pixelAtX:x-dX y:y-dY put:pixelValue.
-	    ]
-	]
+        "/ can loop over values
+        anImage valuesFromX:srcX  y:srcY
+                        toX:srcX+w-1 y:srcY+h-1
+                         do:[:x :y :pixelValue |
+            (anImage maskAtX:x y:y) ~~ 0 ifTrue:[
+                self pixelAtX:x-dX y:y-dY put:pixelValue.
+            ]
+        ]
     ] ifFalse:[
-	"/ must loop over colors - horribly slow
-	anImage colorsFromX:srcX  y:srcY
-			toX:srcX+w-1 y:srcY+h-1
-			 do:[:x :y :clr |
-	    (anImage maskAtX:x y:y) ~~ 0 ifTrue:[
-		self colorAtX:x-dX y:y-dY put:clr.
-	    ]
-	]
+        "/ must loop over colors - horribly slow
+        anImage colorsFromX:srcX  y:srcY
+                        toX:srcX+w-1 y:srcY+h-1
+                         do:[:x :y :clr |
+            (anImage maskAtX:x y:y) ~~ 0 ifTrue:[
+                self colorAtX:x-dX y:y-dY put:clr.
+            ]
+        ]
     ].
 !
 
@@ -12705,9 +12779,9 @@
     bytes := ByteArray new:(bpr * height).
     idx := 1.
     0 to:height-1 do:[:y |
-	0 to:width-1 do:[:x |
-	    self pixelAtX:x y:y put:(pixelFunction value:x value:y).
-	]
+        0 to:width-1 do:[:x |
+            self pixelAtX:x y:y put:(pixelFunction value:x value:y).
+        ]
     ].
 !
 
@@ -12756,9 +12830,9 @@
     tY := yInterval start.
 
     pixelFunction :=
-	[:x :y |
-	    aTwoArgFunction value:(x * sX + tX) value:(y * sY + tY)
-	]
+        [:x :y |
+            aTwoArgFunction value:(x * sX + tX) value:(y * sY + tY)
+        ]
 
     "
      |i|
@@ -12779,17 +12853,17 @@
 
     needSemi := false.
     aStream nextPutAll:('(%1 width:%2 height:%3'
-			    bindWith:self class name
-			    with:width
-			    with:height).
+                            bindWith:self class name
+                            with:width
+                            with:height).
 
     "/ avoiding some unneeded stuff here makes object files with many images a bit smaller.
     "/ no need for the photometric, if it's the default anyway
     photometric ~= self class defaultPhotometric ifTrue:[
-	(colorMap isNil or:[photometric ~~ #palette]) ifTrue:[
-	    aStream nextPutAll:' photometric:('. photometric storeOn:aStream. aStream nextPut:$).
+        (colorMap isNil or:[photometric ~~ #palette]) ifTrue:[
+            aStream nextPutAll:' photometric:('. photometric storeOn:aStream. aStream nextPut:$).
             needSemi := false.
-	].
+        ].
     ].
     aStream nextPut:$).
 
@@ -12797,24 +12871,24 @@
     needBPS := true.
 
     self depth == 1
-	ifTrue:[ needBPS := false ]
-	ifFalse:[
-	    ((photometric == #palette)
-		and:[ (bitsPerSample size == 1)
-		and:[ ((bitsPerSample at:1) == self depth)
-		and:[ samplesPerPixel == 1 ]]])
-	    ifTrue:[
-		needBPS := false.
-	    ].
-	].
+        ifTrue:[ needBPS := false ]
+        ifFalse:[
+            ((photometric == #palette)
+                and:[ (bitsPerSample size == 1)
+                and:[ ((bitsPerSample at:1) == self depth)
+                and:[ samplesPerPixel == 1 ]]])
+            ifTrue:[
+                needBPS := false.
+            ].
+        ].
 
     needBPS ifTrue:[
-	needSemi ifTrue:[aStream nextPutAll:';'].
-	aStream nextPutAll:' bitsPerSample:('. bitsPerSample storeOn:aStream. aStream nextPutAll:')'.
-	samplesPerPixel ~= bitsPerSample size ifTrue:[
-	    aStream nextPutAll:'; samplesPerPixel:('. samplesPerPixel storeOn:aStream. aStream nextPutAll:')'.
-	].
-	needSemi := true.
+        needSemi ifTrue:[aStream nextPutAll:';'].
+        aStream nextPutAll:' bitsPerSample:('. bitsPerSample storeOn:aStream. aStream nextPutAll:')'.
+        samplesPerPixel ~= bitsPerSample size ifTrue:[
+            aStream nextPutAll:'; samplesPerPixel:('. samplesPerPixel storeOn:aStream. aStream nextPutAll:')'.
+        ].
+        needSemi := true.
     ].
 
     "/ assert that all bits are there...
@@ -12826,25 +12900,25 @@
     aStream nextPutAll:')'.
 
     colorMap notNil ifTrue:[
-	self depth <= 8 ifTrue:[
-	    "/ cut off unused colors ...
-	    usedValues := self usedValues.
-	    colors := colorMap copyFrom:1 to:((usedValues max+1) min:colorMap size).
-
-	    colorMapArray := OrderedCollection new.
-	    colors do:[:clr| colorMapArray add:(clr redByte); add:(clr greenByte); add:(clr blueByte)].
-	    aStream cr; spaces:12; nextPutAll:'colorMapFromArray:'.
-	    colorMapArray asByteArray storeOn:aStream.
-	] ifFalse:[
-	    aStream ct; spaces:12; nextPutAll:'colorMap:('.
-	    colorMap storeOn:aStream.
-	    aStream nextPutAll:')'
-	]
+        self depth <= 8 ifTrue:[
+            "/ cut off unused colors ...
+            usedValues := self usedValues.
+            colors := colorMap copyFrom:1 to:((usedValues max+1) min:colorMap size).
+
+            colorMapArray := OrderedCollection new.
+            colors do:[:clr| colorMapArray add:(clr redByte); add:(clr greenByte); add:(clr blueByte)].
+            aStream cr; spaces:12; nextPutAll:'colorMapFromArray:'.
+            colorMapArray asByteArray storeOn:aStream.
+        ] ifFalse:[
+            aStream ct; spaces:12; nextPutAll:'colorMap:('.
+            colorMap storeOn:aStream.
+            aStream nextPutAll:')'
+        ]
     ].
     mask notNil ifTrue:[
-	aStream cr; spaces:12; nextPutAll:'mask:('.
-	mask storeOn:aStream.
-	aStream nextPutAll:')'.
+        aStream cr; spaces:12; nextPutAll:'mask:('.
+        mask storeOn:aStream.
+        aStream nextPutAll:')'.
     ].
     aStream nextPutAll:'; yourself'
 
@@ -12871,64 +12945,64 @@
     maxBitsPerPixel := 0.
 
     aDevice supportedImageFormats do:[:entry |
-	|deviceImageDepth        "{ Class: SmallInteger }"
-	 deviceImageBitsPerPixel "{ Class: SmallInteger }" |
-
-	deviceImageDepth := entry at:#depth.
-	deviceImageBitsPerPixel := entry at:#bitsPerPixel.
-
-	"/ for now, ignore all depth's which are neither 1 nor the
-	"/ devices depth.
-	"/ (actually, many devices can handle other pixMap formats,
-	"/ but I dont know (yet) how to pass the correct color info
-
-	((deviceImageDepth == 1) or:[deviceImageDepth == aDevice depth]) ifTrue:[
-
-	    deviceImageBitsPerPixel > maxBitsPerPixel ifTrue:[
-		maxInfo := entry.
+        |deviceImageDepth        "{ Class: SmallInteger }"
+         deviceImageBitsPerPixel "{ Class: SmallInteger }" |
+
+        deviceImageDepth := entry at:#depth.
+        deviceImageBitsPerPixel := entry at:#bitsPerPixel.
+
+        "/ for now, ignore all depth's which are neither 1 nor the
+        "/ devices depth.
+        "/ (actually, many devices can handle other pixMap formats,
+        "/ but I dont know (yet) how to pass the correct color info
+
+        ((deviceImageDepth == 1) or:[deviceImageDepth == aDevice depth]) ifTrue:[
+
+            deviceImageBitsPerPixel > maxBitsPerPixel ifTrue:[
+                maxInfo := entry.
     "/            maxBitsPerPixel := deviceImageBitsPerPixel.
     "/            maxDepth := deviceImageDepth.
-	    ].
-
-	    deviceImageDepth >= myDepth ifTrue:[
-		deviceImageDepth == myDepth ifTrue:[
-		    "/ take the better one ...
-		    (bestDeviceDepth isNil
-		     or:[(bestDeviceBitsPerPixel ~~ bestDeviceDepth)
-			and:[deviceImageDepth == deviceImageBitsPerPixel]]) ifTrue:[
-			bestInfo := entry.
-			bestDeviceDepth := deviceImageDepth.
-			bestDeviceBitsPerPixel := deviceImageBitsPerPixel.
-		    ]
-		] ifFalse:[
-		    "/ take the next-larger depth
-		    (bestDeviceDepth isNil
-		     or:[deviceImageBitsPerPixel < bestDeviceBitsPerPixel]) ifTrue:[
-			bestInfo := entry.
-			bestDeviceDepth := deviceImageDepth.
-			bestDeviceBitsPerPixel := deviceImageBitsPerPixel.
-		    ]
-		]
-	    ].
-	].
+            ].
+
+            deviceImageDepth >= myDepth ifTrue:[
+                deviceImageDepth == myDepth ifTrue:[
+                    "/ take the better one ...
+                    (bestDeviceDepth isNil
+                     or:[(bestDeviceBitsPerPixel ~~ bestDeviceDepth)
+                        and:[deviceImageDepth == deviceImageBitsPerPixel]]) ifTrue:[
+                        bestInfo := entry.
+                        bestDeviceDepth := deviceImageDepth.
+                        bestDeviceBitsPerPixel := deviceImageBitsPerPixel.
+                    ]
+                ] ifFalse:[
+                    "/ take the next-larger depth
+                    (bestDeviceDepth isNil
+                     or:[deviceImageBitsPerPixel < bestDeviceBitsPerPixel]) ifTrue:[
+                        bestInfo := entry.
+                        bestDeviceDepth := deviceImageDepth.
+                        bestDeviceBitsPerPixel := deviceImageBitsPerPixel.
+                    ]
+                ]
+            ].
+        ].
     ].
 
     bestDeviceDepth isNil ifTrue:[
-	maxBitsPerPixel == 0 ifTrue:[
-	    "/
-	    "/ oops - nothing appropriate
-	    "/
-	    maxInfo notNil ifTrue:[
-		^ maxInfo
-	    ].
-	    bestDeviceDepth := bestDeviceBitsPerPixel := aDevice depth.
-	    bestInfo := IdentityDictionary new.
-	    bestInfo at:#depth put:bestDeviceDepth.
-	    bestInfo at:#bitsPerPixel put:bestDeviceBitsPerPixel.
-	    bestInfo at:#padding put:32.
-	] ifFalse:[
-	    bestInfo := maxInfo.
-	]
+        maxBitsPerPixel == 0 ifTrue:[
+            "/
+            "/ oops - nothing appropriate
+            "/
+            maxInfo notNil ifTrue:[
+                ^ maxInfo
+            ].
+            bestDeviceDepth := bestDeviceBitsPerPixel := aDevice depth.
+            bestInfo := IdentityDictionary new.
+            bestInfo at:#depth put:bestDeviceDepth.
+            bestInfo at:#bitsPerPixel put:bestDeviceBitsPerPixel.
+            bestInfo at:#padding put:32.
+        ] ifFalse:[
+            bestInfo := maxInfo.
+        ]
     ].
     ^ bestInfo
 
@@ -12953,44 +13027,44 @@
     |usedColors|
 
     samplesPerPixel == 3 ifTrue:[
-	photometric := photometricOrNil ? #rgb
+        photometric := photometricOrNil ? #rgb
     ] ifFalse:[
-	photometricOrNil isNil ifTrue:[
-	    photometric := anImage photometric.
-	] ifFalse:[
-	    photometric := photometricOrNil.
-	].
-	photometric == #palette ifTrue:[
-	    self setColorMap:(anImage colorMap copy).
-	    "
-	     must generate/compress the colormap, if source image has higher depth
-	     than myself.
-	    "
-	    (colorMap isNil
-	    or:[anImage bitsPerPixel > self bitsPerPixel]) ifTrue:[
-		"
-		 get used colors are extracted into our colorMap
-		 (the at-put below will set the pixelValue according the
-		 new colorIndex
-		"
-		self setColorMap:(anImage usedColors asArray).
-		colorMap size > (1 bitShift:self bitsPerPixel) ifTrue:[
-		    'Image [warning]: possibly too many colors in image' errorPrintCR
-		]
-	    ]
-	] ifFalse:[
-	    (photometric == #blackIs0
-	    or:[ photometric == #whiteIs0 ]) ifTrue:[
-	    ] ifFalse:[
-		usedColors := anImage usedColors asArray.
-		usedColors size > (1 bitShift:self bitsPerPixel) ifTrue:[
-		    'Image [warning]: possibly too many colors in image' errorPrintCR.
-		    usedColors := usedColors copyTo:(1 bitShift:self bitsPerPixel).
-		].
-		self setColorMap:usedColors.
-		photometric := #palette
-	    ]
-	]
+        photometricOrNil isNil ifTrue:[
+            photometric := anImage photometric.
+        ] ifFalse:[
+            photometric := photometricOrNil.
+        ].
+        photometric == #palette ifTrue:[
+            self setColorMap:(anImage colorMap copy).
+            "
+             must generate/compress the colormap, if source image has higher depth
+             than myself.
+            "
+            (colorMap isNil
+            or:[anImage bitsPerPixel > self bitsPerPixel]) ifTrue:[
+                "
+                 get used colors are extracted into our colorMap
+                 (the at-put below will set the pixelValue according the
+                 new colorIndex
+                "
+                self setColorMap:(anImage usedColors asArray).
+                colorMap size > (1 bitShift:self bitsPerPixel) ifTrue:[
+                    'Image [warning]: possibly too many colors in image' errorPrintCR
+                ]
+            ]
+        ] ifFalse:[
+            (photometric == #blackIs0
+            or:[ photometric == #whiteIs0 ]) ifTrue:[
+            ] ifFalse:[
+                usedColors := anImage usedColors asArray.
+                usedColors size > (1 bitShift:self bitsPerPixel) ifTrue:[
+                    'Image [warning]: possibly too many colors in image' errorPrintCR.
+                    usedColors := usedColors copyTo:(1 bitShift:self bitsPerPixel).
+                ].
+                self setColorMap:usedColors.
+                photometric := #palette
+            ]
+        ]
     ].
 
     "Created: 20.9.1995 / 00:58:42 / claus"
@@ -13008,51 +13082,51 @@
 
     r := range.
     r == 256 ifTrue:[
-	r := 255
+        r := 255
     ].
 
     photometric == #palette ifTrue:[
-	n := colorMap size.
-	greyMap := ByteArray new:n.
-
-	1 to:n do:[:i |
-	    (clr := colorMap at:i) isNil ifTrue:[
-		"/ an unused color
-		val := 0.
-	    ] ifFalse:[
-		val := (r * clr brightness) rounded
-	    ].
-	    greyMap at:i put:val
-	].
+        n := colorMap size.
+        greyMap := ByteArray new:n.
+
+        1 to:n do:[:i |
+            (clr := colorMap at:i) isNil ifTrue:[
+                "/ an unused color
+                val := 0.
+            ] ifFalse:[
+                val := (r * clr brightness) rounded
+            ].
+            greyMap at:i put:val
+        ].
     ] ifFalse:[
-	d := self bitsPerPixel.
-	n := 1 bitShift:d.
-	n >= 4096 ifTrue:[
-	    self error:'size not supported - too large'.
-	    ^ nil
-	].
-	greyMap := ByteArray new:n.
-
-
-	photometric == #rgb ifTrue:[
-	    1 to:n do:[:i |
-		greyMap at:i put:(r * (self colorFromValue:i-1) brightness) rounded
-	    ].
-	] ifFalse:[
-	    1 to:n do:[:i |
-		greyMap at:i put:(r / (n-1) * (i-1)) rounded
-	    ].
-	    photometric == #blackIs0 ifTrue:[
-		"/ we are done
-	    ] ifFalse:[
-		photometric == #whiteIs0 ifTrue:[
-		    greyMap reverse
-		] ifFalse:[
-		    self error:'invalid format'.
-		    ^ nil
-		]
-	    ]
-	].
+        d := self bitsPerPixel.
+        n := 1 bitShift:d.
+        n >= 4096 ifTrue:[
+            self error:'size not supported - too large'.
+            ^ nil
+        ].
+        greyMap := ByteArray new:n.
+
+
+        photometric == #rgb ifTrue:[
+            1 to:n do:[:i |
+                greyMap at:i put:(r * (self colorFromValue:i-1) brightness) rounded
+            ].
+        ] ifFalse:[
+            1 to:n do:[:i |
+                greyMap at:i put:(r / (n-1) * (i-1)) rounded
+            ].
+            photometric == #blackIs0 ifTrue:[
+                "/ we are done
+            ] ifFalse:[
+                photometric == #whiteIs0 ifTrue:[
+                    greyMap reverse
+                ] ifFalse:[
+                    self error:'invalid format'.
+                    ^ nil
+                ]
+            ]
+        ].
     ].
 
     ^ greyMap
@@ -13082,47 +13156,47 @@
     d := self bitsPerPixel.
     n := 1 bitShift:d.
     n >= 4096 ifTrue:[
-	self error:'size not supported - too large'.
-	^ nil
+        self error:'size not supported - too large'.
+        ^ nil
     ].
 
     greyArray := Array new:n.
 
     photometric == #palette ifTrue:[
-	n2 := colorMap size.
-	1 to:n2 do:[:i |
-	    (clr := colorMap at:i) isNil ifTrue:[
-		"/ an unused color
-		val := 0.
-	    ] ifFalse:[
-		val := range * clr brightness
-	    ].
-	    greyArray at:i put:val
-	].
-	n2 < n ifTrue:[
-	    greyArray from:n2+1 to:n put:0
-	]
+        n2 := colorMap size.
+        1 to:n2 do:[:i |
+            (clr := colorMap at:i) isNil ifTrue:[
+                "/ an unused color
+                val := 0.
+            ] ifFalse:[
+                val := range * clr brightness
+            ].
+            greyArray at:i put:val
+        ].
+        n2 < n ifTrue:[
+            greyArray from:n2+1 to:n put:0
+        ]
     ] ifFalse:[
-	photometric == #rgb ifTrue:[
-	    1 to:n do:[:i |
-		greyArray at:i put:(range * (self colorFromValue:(i-1)) brightness)
-	    ]
-	] ifFalse:[
-	    r := range asFloat.
-	    1 to:n do:[:i |
-		greyArray at:i put:(r / (n-1) * (i-1))
-	    ].
-	    photometric == #blackIs0 ifTrue:[
-		"/ we are done
-	    ] ifFalse:[
-		photometric == #whiteIs0 ifTrue:[
-		    greyArray reverse
-		] ifFalse:[
-		    self error:'invalid format'.
-		    ^ nil
-		]
-	    ]
-	]
+        photometric == #rgb ifTrue:[
+            1 to:n do:[:i |
+                greyArray at:i put:(range * (self colorFromValue:(i-1)) brightness)
+            ]
+        ] ifFalse:[
+            r := range asFloat.
+            1 to:n do:[:i |
+                greyArray at:i put:(r / (n-1) * (i-1))
+            ].
+            photometric == #blackIs0 ifTrue:[
+                "/ we are done
+            ] ifFalse:[
+                photometric == #whiteIs0 ifTrue:[
+                    greyArray reverse
+                ] ifFalse:[
+                    self error:'invalid format'.
+                    ^ nil
+                ]
+            ]
+        ]
     ].
     ^ greyArray
 
@@ -13139,7 +13213,7 @@
 !
 
 magnifyRowFrom:srcBytes offset:srcStart
-	  into:dstBytes offset:dstStart factor:mX
+          into:dstBytes offset:dstStart factor:mX
 
     "magnify a single pixel row - can only magnify by integer factors,
      can only magnify 1,2,4,8 and 24 bit-per-pixel images. But this is done fast."
@@ -13161,19 +13235,19 @@
     f initGC.
 
     (aDevice blackpixel ~~ 0) ifTrue:[
-	"/ have to invert bits
-	f function:#copyInverted
+        "/ have to invert bits
+        f function:#copyInverted
     ].
     aDevice
-	drawBits:bits
-	depth:depth
-	padding:8
-	width:width height:height
-	x:0 y:0
-	into:(f id)
-	x:0 y:0
-	width:width height:height
-	with:(f gcId).
+        drawBits:bits
+        depth:depth
+        padding:8
+        width:width height:height
+        x:0 y:0
+        into:(f id)
+        x:0 y:0
+        width:width height:height
+        with:(f gcId).
     ^ f
 
     "Created: 10.6.1996 / 20:10:31 / cg"
@@ -13185,7 +13259,7 @@
 
 "/    monoBits invert.
     ^ (Form width:width height:height fromArray:monoBits onDevice:aDevice)
-	colorMap:(Array with:Color black with:Color white).
+        colorMap:(Array with:Color black with:Color white).
 
     "Created: 10.6.1996 / 20:18:09 / cg"
     "Modified: 17.4.1997 / 01:07:38 / cg"
@@ -13205,15 +13279,15 @@
     f initGC.
 
     aDevice
-	drawBits:bits
-	depth:depth
-	padding:8
-	width:width height:height
-	x:0 y:0
-	into:(f id)
-	x:0 y:0
-	width:width height:height
-	with:(f gcId).
+        drawBits:bits
+        depth:depth
+        padding:8
+        width:width height:height
+        x:0 y:0
+        into:(f id)
+        x:0 y:0
+        width:width height:height
+        with:(f gcId).
     ^ f
 
     "Created: 10.6.1996 / 17:56:08 / cg"
@@ -13223,9 +13297,9 @@
 repairPhotometric
     "/ kludge: repair a 'should not happen' situation...
     photometric isNil ifTrue:[
-	(self depth == 24 and:[ bitsPerSample size == 3 ]) ifTrue:[
-	    photometric := #rgb
-	].
+        (self depth == 24 and:[ bitsPerSample size == 3 ]) ifTrue:[
+            photometric := #rgb
+        ].
     ].
 ! !
 
@@ -13241,13 +13315,13 @@
     |redBits greenBits blueBits alphaBits|
 
     samplesPerPixel >= 4 ifTrue:[
-	redBits := bitsPerSample at:1.
-	greenBits := bitsPerSample at:2.
-	blueBits := bitsPerSample at:3.
-	alphaBits := bitsPerSample at:4.
-
-	^ (pixel bitShift:(redBits + greenBits + blueBits) negated)
-	   bitAnd:(1 bitShift:alphaBits)-1
+        redBits := bitsPerSample at:1.
+        greenBits := bitsPerSample at:2.
+        blueBits := bitsPerSample at:3.
+        alphaBits := bitsPerSample at:4.
+
+        ^ (pixel bitShift:(redBits + greenBits + blueBits) negated)
+           bitAnd:(1 bitShift:alphaBits)-1
     ].
 
     self subclassResponsibility
@@ -13262,8 +13336,8 @@
     |alphaBits|
 
     samplesPerPixel >= 4 ifTrue:[
-	alphaBits := bitsPerSample at:4.
-	^ (1 bitShift:alphaBits)-1
+        alphaBits := bitsPerSample at:4.
+        ^ (1 bitShift:alphaBits)-1
     ].
 
     self subclassResponsibility
@@ -13275,11 +13349,11 @@
     |redBits greenBits blueBits|
 
     samplesPerPixel >= 3 ifTrue:[
-	redBits := bitsPerSample at:1.
-	greenBits := bitsPerSample at:2.
-	blueBits := bitsPerSample at:3.
-
-	^ (greenBits + blueBits + redBits) negated
+        redBits := bitsPerSample at:1.
+        greenBits := bitsPerSample at:2.
+        blueBits := bitsPerSample at:3.
+
+        ^ (greenBits + blueBits + redBits) negated
     ].
 
     self subclassResponsibility
@@ -13295,7 +13369,7 @@
     "return the average color of the image.
      This usually only makes sense for textures and patterns
      (i.e. to compute shadow & light colors for viewBackgrounds).
-     Notice, that for the above purpose, it is usually ok to process
+     Notice that for the above purpose, it is usually ok to process
      a subImage - i.e. use Image>>averageColorIn: on a smaller rectangle"
 
     ^ self averageColorIn:(0@0 corner:(width-1)@(height-1))
@@ -13322,26 +13396,26 @@
 
     n := (x1 - x0 + 1) * (y1 - y0 + 1).
     mask isNil ifTrue:[
-	self colorsFromX:x0 y:y0 toX:x1 y:y1 do:[:x :y :colorAtXY |
-	    sumRed := sumRed + colorAtXY red.
-	    sumGreen := sumGreen + colorAtXY green.
-	    sumBlue := sumBlue + colorAtXY blue.
-	].
+        self colorsFromX:x0 y:y0 toX:x1 y:y1 do:[:x :y :colorAtXY |
+            sumRed := sumRed + colorAtXY red.
+            sumGreen := sumGreen + colorAtXY green.
+            sumBlue := sumBlue + colorAtXY blue.
+        ].
     ] ifFalse:[
-	"/ masked pixels are not counted.
-	self colorsFromX:x0 y:y0 toX:x1 y:y1 do:[:x :y :colorAtXY |
-	    (mask pixelAtX:x y:y) == 0 ifTrue:[
-		n := n - 1.
-	    ] ifFalse:[
-		sumRed := sumRed + colorAtXY red.
-		sumGreen := sumGreen + colorAtXY green.
-		sumBlue := sumBlue + colorAtXY blue.
-	    ].
-	].
+        "/ masked pixels are not counted.
+        self colorsFromX:x0 y:y0 toX:x1 y:y1 do:[:x :y :colorAtXY |
+            (mask pixelAtX:x y:y) == 0 ifTrue:[
+                n := n - 1.
+            ] ifFalse:[
+                sumRed := sumRed + colorAtXY red.
+                sumGreen := sumGreen + colorAtXY green.
+                sumBlue := sumBlue + colorAtXY blue.
+            ].
+        ].
     ].
     n == 0 ifTrue:[
-	"/ all masked
-	^ Color black
+        "/ all masked
+        ^ Color black
     ].
     ^ Color red:(sumRed / n) green:(sumGreen / n) blue:(sumBlue / n)
 !
@@ -13363,11 +13437,11 @@
      return the black component scaled to a percentage (0 .. 100) of a pixelValue."
 
     samplesPerPixel == 4 ifTrue:[
-	"/ assume that the cyan bits are the leftMost bits (cmyk)
-
-	bitsPerSample = #(8 8 8 8) ifTrue:[
-	    ^ 100.0 / 255 * (pixel bitAnd:16rFF)
-	]
+        "/ assume that the cyan bits are the leftMost bits (cmyk)
+
+        bitsPerSample = #(8 8 8 8) ifTrue:[
+            ^ 100.0 / 255 * (pixel bitAnd:16rFF)
+        ]
     ].
 
     self subclassResponsibility
@@ -13384,8 +13458,8 @@
     |blueBits|
 
     samplesPerPixel >= 3 ifTrue:[
-	blueBits := bitsPerSample at:3.
-	^ pixel bitAnd:(1 bitShift:blueBits)-1
+        blueBits := bitsPerSample at:3.
+        ^ pixel bitAnd:(1 bitShift:blueBits)-1
     ].
 
     self subclassResponsibility
@@ -13403,14 +13477,14 @@
      s         "{ Class: SmallInteger }"|
 
     samplesPerPixel >= 3 ifTrue:[
-	"/ assume that the red bits are the leftMost bits
-
-	blueBits := bitsPerSample at:3.
-	blueBits == 0 ifTrue:[^ 0].
-
-	s := (1 bitShift:blueBits) - 1.
-
-	^ 100.0 / s * (pixel bitAnd:(1 bitShift:blueBits)-1)
+        "/ assume that the red bits are the leftMost bits
+
+        blueBits := bitsPerSample at:3.
+        blueBits == 0 ifTrue:[^ 0].
+
+        s := (1 bitShift:blueBits) - 1.
+
+        ^ 100.0 / s * (pixel bitAnd:(1 bitShift:blueBits)-1)
     ].
 
     self subclassResponsibility
@@ -13425,8 +13499,8 @@
     |blueBits|
 
     samplesPerPixel >= 3 ifTrue:[
-	blueBits := bitsPerSample at:3.
-	^ (1 bitShift:blueBits)-1
+        blueBits := bitsPerSample at:3.
+        ^ (1 bitShift:blueBits)-1
     ].
 
     self subclassResponsibility
@@ -13436,7 +13510,7 @@
     "return the shift amount used with translation from pixelValues to blueBits"
 
     samplesPerPixel >= 3 ifTrue:[
-	^ 0
+        ^ 0
     ].
 
     self subclassResponsibility
@@ -13454,7 +13528,7 @@
     "return the (average) brightness of the image as number in 0..1.
      This usually only makes sense for textures and patterns
      (i.e. to compute shadow & light colors for viewBackgrounds).
-     Notice, that for the above purpose, only a subimage is inspected here"
+     Notice that for the above purpose, only a subimage is inspected here"
 
     ^ (self averageColorIn:(0@0 corner:7@7)) brightness
 
@@ -13469,7 +13543,7 @@
     bitsPerRow := width * (self bitsPerPixel).
     bytesPerRow := bitsPerRow // 8.
     ((bitsPerRow \\ 8) ~~ 0) ifTrue:[
-	bytesPerRow := bytesPerRow + 1
+        bytesPerRow := bytesPerRow + 1
     ].
     ^ bytesPerRow
 !
@@ -13479,7 +13553,7 @@
      if scanlines are to be padded to padding-bits."
 
     ^ self class
-	bytesPerRowForWidth:width depth:(self bitsPerPixel) padding:padding
+        bytesPerRowForWidth:width depth:(self bitsPerPixel) padding:padding
 !
 
 center
@@ -13501,79 +13575,79 @@
 
     p := photometric.
     p isNil ifTrue:[
-	colorMap notNil ifTrue:[
-	    p := #palette
-	] ifFalse:[
-	    "/ 'Image [warning]: no photometric - assume greyscale' infoPrintCR
-	    p := #blackIs0
-	]
+        colorMap notNil ifTrue:[
+            p := #palette
+        ] ifFalse:[
+            "/ 'Image [warning]: no photometric - assume greyscale' infoPrintCR
+            p := #blackIs0
+        ]
     ].
 
     p == #blackIs0 ifTrue:[
-	maxPixel := (1 bitShift:self bitsPerPixel) - 1.
-	^ Color gray:(pixelValue * (100 / maxPixel)).
+        maxPixel := (1 bitShift:self bitsPerPixel) - 1.
+        ^ Color gray:(pixelValue * (100 / maxPixel)).
     ].
 
     p == #whiteIs0 ifTrue:[
-	maxPixel := (1 bitShift:self bitsPerPixel) - 1.
-	^ Color gray:100 - (pixelValue * (100 / maxPixel)).
+        maxPixel := (1 bitShift:self bitsPerPixel) - 1.
+        ^ Color gray:100 - (pixelValue * (100 / maxPixel)).
     ].
 
     p == #palette ifTrue:[
-	pixelValue >= colorMap size ifTrue:[
-	    ^ Color black
-	].
-	clr := colorMap at:(pixelValue + 1).
-	clr isNil ifTrue:[
-	    ^ Color black.
-	].
-	^ clr.
+        pixelValue >= colorMap size ifTrue:[
+            ^ Color black
+        ].
+        clr := colorMap at:(pixelValue + 1).
+        clr isNil ifTrue:[
+            ^ Color black.
+        ].
+        ^ clr.
     ].
 
     p == #rgb ifTrue:[
-	r := self redBitsOf:pixelValue.
-	g := self greenBitsOf:pixelValue.
-	b := self blueBitsOf:pixelValue.
-	"/ scale...
-	numRedBits := bitsPerSample at:1.
-	numGreenBits := bitsPerSample at:2.
-	numBlueBits := bitsPerSample at:3.
-	(r == 0) ifFalse:[ r := (100 / ((1 bitShift:numRedBits)-1) * r)].
-	(g == 0) ifFalse:[ g := (100 / ((1 bitShift:numGreenBits)-1) * g)].
-	(b == 0) ifFalse:[ b := (100 / ((1 bitShift:numBlueBits)-1) * b)].
-	^ Color redPercent:r greenPercent:g bluePercent:b
+        r := self redBitsOf:pixelValue.
+        g := self greenBitsOf:pixelValue.
+        b := self blueBitsOf:pixelValue.
+        "/ scale...
+        numRedBits := bitsPerSample at:1.
+        numGreenBits := bitsPerSample at:2.
+        numBlueBits := bitsPerSample at:3.
+        (r == 0) ifFalse:[ r := (100 / ((1 bitShift:numRedBits)-1) * r)].
+        (g == 0) ifFalse:[ g := (100 / ((1 bitShift:numGreenBits)-1) * g)].
+        (b == 0) ifFalse:[ b := (100 / ((1 bitShift:numBlueBits)-1) * b)].
+        ^ Color redPercent:r greenPercent:g bluePercent:b
     ].
 
     ((p == #rgba) or:[p == #argb]) ifTrue:[
-	r := self redBitsOf:pixelValue.
-	g := self greenBitsOf:pixelValue.
-	b := self blueBitsOf:pixelValue.
-	a := self alphaBitsOf:pixelValue.
-	"/ scale...
-	numRedBits := bitsPerSample at:1.
-	numGreenBits := bitsPerSample at:2.
-	numBlueBits := bitsPerSample at:3.
-	numAlphaBits := bitsPerSample at:4.
-	(r == 0) ifFalse:[ r := (100 / ((1 bitShift:numRedBits)-1) * r)].
-	(g == 0) ifFalse:[ g := (100 / ((1 bitShift:numGreenBits)-1) * g)].
-	(b == 0) ifFalse:[ b := (100 / ((1 bitShift:numBlueBits)-1) * b)].
-	(a == 0) ifFalse:[ a := (100 / ((1 bitShift:numAlphaBits)-1) * a)].
-	^ Color redPercent:r greenPercent:g bluePercent:b alphaPercent:a
+        r := self redBitsOf:pixelValue.
+        g := self greenBitsOf:pixelValue.
+        b := self blueBitsOf:pixelValue.
+        a := self alphaBitsOf:pixelValue.
+        "/ scale...
+        numRedBits := bitsPerSample at:1.
+        numGreenBits := bitsPerSample at:2.
+        numBlueBits := bitsPerSample at:3.
+        numAlphaBits := bitsPerSample at:4.
+        (r == 0) ifFalse:[ r := (100 / ((1 bitShift:numRedBits)-1) * r)].
+        (g == 0) ifFalse:[ g := (100 / ((1 bitShift:numGreenBits)-1) * g)].
+        (b == 0) ifFalse:[ b := (100 / ((1 bitShift:numBlueBits)-1) * b)].
+        (a == 0) ifFalse:[ a := (100 / ((1 bitShift:numAlphaBits)-1) * a)].
+        ^ Color redPercent:r greenPercent:g bluePercent:b alphaPercent:a
     ].
 
     p == #cmyk ifTrue:[
-	c := self cyanComponentOfCMYK:pixelValue.
-	m := self magentaComponentOfCMYK:pixelValue.
-	y := self yellowComponentOfCMYK:pixelValue.
-	k := self blackComponentOfCMYK:pixelValue.
-	^ Color cyan:c magenta:m yellow:y black:k.
+        c := self cyanComponentOfCMYK:pixelValue.
+        m := self magentaComponentOfCMYK:pixelValue.
+        y := self yellowComponentOfCMYK:pixelValue.
+        k := self blackComponentOfCMYK:pixelValue.
+        ^ Color cyan:c magenta:m yellow:y black:k.
     ].
 
     p == #cmy ifTrue:[
-	c := self cyanComponentOfCMY:pixelValue.
-	m := self magentaComponentOfCMY:pixelValue.
-	y := self yellowComponentOfCMY:pixelValue.
-	^ Color cyan:c magenta:m yellow:y.
+        c := self cyanComponentOfCMY:pixelValue.
+        m := self magentaComponentOfCMY:pixelValue.
+        y := self yellowComponentOfCMY:pixelValue.
+        ^ Color cyan:c magenta:m yellow:y.
     ].
 
     self error:'invalid (unsupported) photometric'
@@ -13587,11 +13661,11 @@
      return the cyan component scaled to a percentage (0 .. 100) of a pixelValue."
 
     samplesPerPixel == 3 ifTrue:[
-	"/ assume that the cyan bits are the leftMost bits (cmy)
-
-	bitsPerSample = #(8 8 8) ifTrue:[
-	    ^ 100.0 / 255 * ((pixel bitShift:-16) bitAnd:16rFF)
-	]
+        "/ assume that the cyan bits are the leftMost bits (cmy)
+
+        bitsPerSample = #(8 8 8) ifTrue:[
+            ^ 100.0 / 255 * ((pixel bitShift:-16) bitAnd:16rFF)
+        ]
     ].
 
     self subclassResponsibility
@@ -13603,11 +13677,11 @@
      return the cyan component scaled to a percentage (0 .. 100) of a pixelValue."
 
     samplesPerPixel == 4 ifTrue:[
-	"/ assume that the cyan bits are the leftMost bits (cmyk)
-
-	bitsPerSample = #(8 8 8 8) ifTrue:[
-	    ^ 100.0 / 255 * ((pixel bitShift:-24) bitAnd:16rFF)
-	]
+        "/ assume that the cyan bits are the leftMost bits (cmyk)
+
+        bitsPerSample = #(8 8 8 8) ifTrue:[
+            ^ 100.0 / 255 * ((pixel bitShift:-24) bitAnd:16rFF)
+        ]
     ].
 
     self subclassResponsibility
@@ -13624,10 +13698,10 @@
     |blueBits greenBits|
 
     samplesPerPixel >= 3 ifTrue:[
-	greenBits := bitsPerSample at:2.
-	blueBits := bitsPerSample at:3.
-
-	^ (pixel bitShift:blueBits negated) bitAnd:(1 bitShift:greenBits)-1
+        greenBits := bitsPerSample at:2.
+        blueBits := bitsPerSample at:3.
+
+        ^ (pixel bitShift:blueBits negated) bitAnd:(1 bitShift:greenBits)-1
     ].
 
     self subclassResponsibility
@@ -13646,15 +13720,15 @@
      s         "{ Class: SmallInteger }"|
 
     samplesPerPixel >= 3 ifTrue:[
-	"/ assume that the red bits are the leftMost bits
-
-	greenBits := bitsPerSample at:2.
-	greenBits == 0 ifTrue:[^ 0].
-	blueBits := bitsPerSample at:3.
-
-	s := (1 bitShift:greenBits) - 1.
-
-	^ 100.0 / s * ((pixel bitShift:blueBits negated) bitAnd:(1 bitShift:greenBits)-1)
+        "/ assume that the red bits are the leftMost bits
+
+        greenBits := bitsPerSample at:2.
+        greenBits == 0 ifTrue:[^ 0].
+        blueBits := bitsPerSample at:3.
+
+        s := (1 bitShift:greenBits) - 1.
+
+        ^ 100.0 / s * ((pixel bitShift:blueBits negated) bitAnd:(1 bitShift:greenBits)-1)
     ].
 
     self subclassResponsibility
@@ -13669,8 +13743,8 @@
     |greenBits|
 
     samplesPerPixel >= 3 ifTrue:[
-	greenBits := bitsPerSample at:2.
-	^ (1 bitShift:greenBits)-1
+        greenBits := bitsPerSample at:2.
+        ^ (1 bitShift:greenBits)-1
     ].
 
     self subclassResponsibility
@@ -13682,8 +13756,8 @@
     |greenBits|
 
     samplesPerPixel >= 3 ifTrue:[
-	greenBits := bitsPerSample at:3.
-	^ greenBits negated
+        greenBits := bitsPerSample at:3.
+        ^ greenBits negated
     ].
 
     self subclassResponsibility
@@ -13739,11 +13813,11 @@
      return the magenta component scaled to a percentage (0 .. 100) of a pixelValue."
 
     samplesPerPixel == 3 ifTrue:[
-	"/ assume that the cyan bits are the leftMost bits (cmy)
-
-	bitsPerSample = #(8 8 8) ifTrue:[
-	    ^ 100.0 / 255 * ((pixel bitShift:-8) bitAnd:16rFF)
-	]
+        "/ assume that the cyan bits are the leftMost bits (cmy)
+
+        bitsPerSample = #(8 8 8) ifTrue:[
+            ^ 100.0 / 255 * ((pixel bitShift:-8) bitAnd:16rFF)
+        ]
     ].
 
     self subclassResponsibility
@@ -13755,11 +13829,11 @@
      return the magenta component scaled to a percentage (0 .. 100) of a pixelValue."
 
     samplesPerPixel == 4 ifTrue:[
-	"/ assume that the cyan bits are the leftMost bits (cmyk)
-
-	bitsPerSample = #(8 8 8 8) ifTrue:[
-	    ^ 100.0 / 255 * ((pixel bitShift:-16) bitAnd:16rFF)
-	]
+        "/ assume that the cyan bits are the leftMost bits (cmyk)
+
+        bitsPerSample = #(8 8 8 8) ifTrue:[
+            ^ 100.0 / 255 * ((pixel bitShift:-16) bitAnd:16rFF)
+        ]
     ].
 
     self subclassResponsibility
@@ -13787,20 +13861,20 @@
      colorArray|
 
     photometric == #palette ifTrue:[
-	^ colorMap asArray
+        ^ colorMap asArray
     ].
 
     d := self depth.
     d > 12 ifTrue:[
-	self error:'deep palette images not supported'.
-	^ nil.
+        self error:'deep palette images not supported'.
+        ^ nil.
     ].
 
     nEntries := 1 bitShift:d.
 
     colorArray := Array new:nEntries.
     1 to:nEntries do:[:idx |
-	colorArray at:idx put:(self colorFromValue:(idx-1)).
+        colorArray at:idx put:(self colorFromValue:(idx-1)).
     ].
 
     ^ colorArray
@@ -13819,7 +13893,7 @@
 
 realUsedValues
     "return a collection of color values used in the receiver.
-     Notice, that the interpretation of the pixels depends on the photometric
+     Notice that the interpretation of the pixels depends on the photometric
      of the image.
      This is a general and therefore slow implementation; subclasses
      may want to redefine this method for more performance.
@@ -13830,10 +13904,10 @@
 
     set := IdentitySet new.
     self valuesFromX:0 y:0 toX:(self width-1) y:(self height-1) do:[:x :y :pixel |
-	pixel ~~ last ifTrue:[
-	    set add:pixel.
-	    last := pixel.
-	]
+        pixel ~~ last ifTrue:[
+            set add:pixel.
+            last := pixel.
+        ]
     ].
     ^ set
 
@@ -13855,12 +13929,12 @@
     |redBits greenBits blueBits|
 
     samplesPerPixel >= 3 ifTrue:[
-	redBits := bitsPerSample at:1.
-	greenBits := bitsPerSample at:2.
-	blueBits := bitsPerSample at:3.
-
-	^ (pixel bitShift:(greenBits + blueBits) negated)
-	   bitAnd:(1 bitShift:redBits)-1
+        redBits := bitsPerSample at:1.
+        greenBits := bitsPerSample at:2.
+        blueBits := bitsPerSample at:3.
+
+        ^ (pixel bitShift:(greenBits + blueBits) negated)
+           bitAnd:(1 bitShift:redBits)-1
     ].
 
     self subclassResponsibility
@@ -13880,19 +13954,19 @@
      s         "{ Class: SmallInteger }"|
 
     samplesPerPixel >= 3 ifTrue:[
-	"/ assume that the red bits are the leftMost bits
-
-	redBits := bitsPerSample at:1.
-	redBits == 0 ifTrue:[^ 0].
-
-	greenBits := bitsPerSample at:2.
-	blueBits := bitsPerSample at:3.
-
-	s := (1 bitShift:redBits) - 1.
-
-	^ 100.0 / s *
-	  ((pixel bitShift:(greenBits + blueBits) negated)
-	   bitAnd:(1 bitShift:redBits)-1)
+        "/ assume that the red bits are the leftMost bits
+
+        redBits := bitsPerSample at:1.
+        redBits == 0 ifTrue:[^ 0].
+
+        greenBits := bitsPerSample at:2.
+        blueBits := bitsPerSample at:3.
+
+        s := (1 bitShift:redBits) - 1.
+
+        ^ 100.0 / s *
+          ((pixel bitShift:(greenBits + blueBits) negated)
+           bitAnd:(1 bitShift:redBits)-1)
     ].
 
     self subclassResponsibility
@@ -13907,8 +13981,8 @@
     |redBits|
 
     samplesPerPixel >= 3 ifTrue:[
-	redBits := bitsPerSample at:1.
-	^ (1 bitShift:redBits)-1
+        redBits := bitsPerSample at:1.
+        ^ (1 bitShift:redBits)-1
     ].
 
     self subclassResponsibility
@@ -13923,10 +13997,10 @@
     |greenBits blueBits|
 
     samplesPerPixel >= 3 ifTrue:[
-	greenBits := bitsPerSample at:2.
-	blueBits := bitsPerSample at:3.
-
-	^ (greenBits + blueBits) negated
+        greenBits := bitsPerSample at:2.
+        blueBits := bitsPerSample at:3.
+
+        ^ (greenBits + blueBits) negated
     ].
 
     self subclassResponsibility
@@ -13942,61 +14016,61 @@
 
     p := photometric.
     p isNil ifTrue:[
-	colorMap notNil ifTrue:[
-	    p := #palette
-	] ifFalse:[
+        colorMap notNil ifTrue:[
+            p := #palette
+        ] ifFalse:[
 "/            'Image [warning]: no photometric - assume greyscale' infoPrintCR
-	    p := #blackIs0
-	]
+            p := #blackIs0
+        ]
     ].
 
     p == #blackIs0 ifTrue:[
-	maxPixel := (1 bitShift:self bitsPerPixel) - 1.
-	b := pixelValue * 255 // maxPixel.
-	^ (((b bitShift:8) bitOr:b) bitShift:8) bitOr:b
+        maxPixel := (1 bitShift:self bitsPerPixel) - 1.
+        b := pixelValue * 255 // maxPixel.
+        ^ (((b bitShift:8) bitOr:b) bitShift:8) bitOr:b
     ].
 
     p == #whiteIs0 ifTrue:[
-	maxPixel := (1 bitShift:self bitsPerPixel) - 1.
-	b := 255 - (pixelValue * 255 // maxPixel).
-	^ (((b bitShift:8) bitOr:b) bitShift:8) bitOr:b
+        maxPixel := (1 bitShift:self bitsPerPixel) - 1.
+        b := 255 - (pixelValue * 255 // maxPixel).
+        ^ (((b bitShift:8) bitOr:b) bitShift:8) bitOr:b
     ].
 
     p == #palette ifTrue:[
-	pixelValue >= colorMap size ifTrue:[
-	    ^ 0 "/ black
-	].
-	clr := colorMap at:(pixelValue + 1).
-	clr isNil ifTrue:[
-	    ^ 0 "/ black
-	].
-	^ clr rgbValue.
+        pixelValue >= colorMap size ifTrue:[
+            ^ 0 "/ black
+        ].
+        clr := colorMap at:(pixelValue + 1).
+        clr isNil ifTrue:[
+            ^ 0 "/ black
+        ].
+        ^ clr rgbValue.
     ].
 
     p == #rgb ifTrue:[
-	r := self redBitsOf:pixelValue.
-	g := self greenBitsOf:pixelValue.
-	b := self blueBitsOf:pixelValue.
-	"/ must scale to byte value...
-	r := r bitShift:(8 - (bitsPerSample at:1)).
-	g := g bitShift:(8 - (bitsPerSample at:2)).
-	b := b bitShift:(8 - (bitsPerSample at:3)).
-	^ (((r bitShift:8) bitOr:g) bitShift:8) bitOr:b
+        r := self redBitsOf:pixelValue.
+        g := self greenBitsOf:pixelValue.
+        b := self blueBitsOf:pixelValue.
+        "/ must scale to byte value...
+        r := r bitShift:(8 - (bitsPerSample at:1)).
+        g := g bitShift:(8 - (bitsPerSample at:2)).
+        b := b bitShift:(8 - (bitsPerSample at:3)).
+        ^ (((r bitShift:8) bitOr:g) bitShift:8) bitOr:b
     ].
 
     p == #cmyk ifTrue:[
-	c := self cyanComponentOfCMYK:pixelValue.
-	m := self magentaComponentOfCMYK:pixelValue.
-	y := self yellowComponentOfCMYK:pixelValue.
-	k := self blackComponentOfCMYK:pixelValue.
-	^ (Color cyan:c magenta:m yellow:y black:k) rgbValue.
+        c := self cyanComponentOfCMYK:pixelValue.
+        m := self magentaComponentOfCMYK:pixelValue.
+        y := self yellowComponentOfCMYK:pixelValue.
+        k := self blackComponentOfCMYK:pixelValue.
+        ^ (Color cyan:c magenta:m yellow:y black:k) rgbValue.
     ].
 
     p == #cmy ifTrue:[
-	c := self cyanComponentOfCMY:pixelValue.
-	m := self magentaComponentOfCMY:pixelValue.
-	y := self yellowComponentOfCMY:pixelValue.
-	^ (Color cyan:c magenta:m yellow:y) rgbValue.
+        c := self cyanComponentOfCMY:pixelValue.
+        m := self magentaComponentOfCMY:pixelValue.
+        y := self yellowComponentOfCMY:pixelValue.
+        ^ (Color cyan:c magenta:m yellow:y) rgbValue.
     ].
 
     self error:'invalid (unsupported) photometric'
@@ -14011,7 +14085,7 @@
 
     colors := self usedColorsMax:4096.
     colors isNil ifTrue:[
-	self error:'too many colors in image'.
+        self error:'too many colors in image'.
     ].
     ^ colors
 
@@ -14033,39 +14107,39 @@
     |usedValues max colors|
 
     photometric == #rgb ifTrue:[
-	usedValues := IdentitySet new.
-	self valuesFromX:0 y:0 toX:(width-1) y:(height-1)
-	  do:[:x :y :pixel |
-	    usedValues add:pixel.
-	    usedValues size > nMax ifTrue:[
-		"/ too many to be returned here (think of the mass of
-		"/ data to be returned by a 24bit image ... ;-)
-		^ nil
-	    ]
-	].
-	"/ code below is slightly faster ...
-	"/ colors := usedValues collect:[:pixel | self colorFromValue:pixel].
-	colors := usedValues collect:[:pixel | |r g b|
-					r := self redBitsOf:pixel.
-					g := self greenBitsOf:pixel.
-					b := self blueBitsOf:pixel.
-					"/ must scale to byte value...
-					r := r bitShift:(8 - (bitsPerSample at:1)).
-					g := g bitShift:(8 - (bitsPerSample at:2)).
-					b := b bitShift:(8 - (bitsPerSample at:3)).
-					Color redByte:r greenByte:g blueByte:b
-				     ].
-	^ colors.
+        usedValues := IdentitySet new.
+        self valuesFromX:0 y:0 toX:(width-1) y:(height-1)
+          do:[:x :y :pixel |
+            usedValues add:pixel.
+            usedValues size > nMax ifTrue:[
+                "/ too many to be returned here (think of the mass of
+                "/ data to be returned by a 24bit image ... ;-)
+                ^ nil
+            ]
+        ].
+        "/ code below is slightly faster ...
+        "/ colors := usedValues collect:[:pixel | self colorFromValue:pixel].
+        colors := usedValues collect:[:pixel | |r g b|
+                                        r := self redBitsOf:pixel.
+                                        g := self greenBitsOf:pixel.
+                                        b := self blueBitsOf:pixel.
+                                        "/ must scale to byte value...
+                                        r := r bitShift:(8 - (bitsPerSample at:1)).
+                                        g := g bitShift:(8 - (bitsPerSample at:2)).
+                                        b := b bitShift:(8 - (bitsPerSample at:3)).
+                                        Color redByte:r greenByte:g blueByte:b
+                                     ].
+        ^ colors.
     ].
 
     usedValues := self usedValues asArray.
     photometric == #palette ifTrue:[
-	colors := usedValues collect:[:val | (colorMap at:val+1 ifAbsent:[Color black])] as:Set.
+        colors := usedValues collect:[:val | (colorMap at:val+1 ifAbsent:[Color black])] as:Set.
     ] ifFalse:[
-	"/ (photometric == #blackIs0 or:[photometric == #whiteIs0])
-
-	max := (1 bitShift:self depth) - 1.
-	colors :=  usedValues collect:[:val | (Color gray:(100 * val / max ))] as:Set.
+        "/ (photometric == #blackIs0 or:[photometric == #whiteIs0])
+
+        max := (1 bitShift:self depth) - 1.
+        colors :=  usedValues collect:[:val | (Color gray:(100 * val / max ))] as:Set.
     ].
     ^ colors
 
@@ -14080,7 +14154,7 @@
 
 usedValues
     "return a collection of color values used in the receiver.
-     Notice, that the interpretation of the pixels depends on the photometric
+     Notice that the interpretation of the pixels depends on the photometric
      of the image.
      This is a general and therefore slow implementation; subclasses
      may want to redefine this method for more performance."
@@ -14102,71 +14176,71 @@
     |pixel maxPixel redBits greenBits blueBits alphaBits r g b a|
 
     color colorId notNil ifTrue:[
-	color == Color noColor ifTrue:[
-	    ^ nil "/ mask
-	].
-	color device isNil ifTrue:[
-	    ^ color colorId
-	]
+        color == Color noColor ifTrue:[
+            ^ nil "/ mask
+        ].
+        color device isNil ifTrue:[
+            ^ color colorId
+        ]
     ].
 
     photometric == #whiteIs0 ifTrue:[
-	maxPixel := (1 bitShift:self bitsPerPixel) - 1.
-	^ maxPixel - (color brightness * maxPixel) rounded.
+        maxPixel := (1 bitShift:self bitsPerPixel) - 1.
+        ^ maxPixel - (color brightness * maxPixel) rounded.
     ].
 
     photometric == #blackIs0 ifTrue:[
-	maxPixel := (1 bitShift:self bitsPerPixel) - 1.
-	^ (color brightness * maxPixel) rounded.
+        maxPixel := (1 bitShift:self bitsPerPixel) - 1.
+        ^ (color brightness * maxPixel) rounded.
     ].
 
     photometric == #palette ifTrue:[
-	colorMap isNil ifTrue:[
-	    "/ same as blackIs0
-	    maxPixel := (1 bitShift:self bitsPerPixel) - 1.
-	    ^ (color brightness * maxPixel) rounded.
-	].
-
-	pixel := colorMap indexOf:color.
-	pixel == 0 ifTrue:[
-	    "
-	     the color is not in the images colormap
-	    "
-	    ^ nil
-	].
-	^ pixel - 1
+        colorMap isNil ifTrue:[
+            "/ same as blackIs0
+            maxPixel := (1 bitShift:self bitsPerPixel) - 1.
+            ^ (color brightness * maxPixel) rounded.
+        ].
+
+        pixel := colorMap indexOf:color.
+        pixel == 0 ifTrue:[
+            "
+             the color is not in the images colormap
+            "
+            ^ nil
+        ].
+        ^ pixel - 1
     ].
 
     photometric == #rgb ifTrue:[
-	samplesPerPixel >= 3 ifTrue:[
-	    redBits := bitsPerSample at:1.
-	    greenBits := bitsPerSample at:2.
-	    blueBits := bitsPerSample at:3.
-
-	    "/ map r/g/b to 0..255
-	    r := (color red / 100.0 * ((1 bitShift:redBits)-1)) rounded.
-	    g := (color green / 100.0 * ((1 bitShift:greenBits)-1)) rounded.
-	    b := (color blue / 100.0 * ((1 bitShift:blueBits)-1)) rounded.
-	    pixel := (((r bitShift:greenBits) + g) bitShift:blueBits) + b.
-	    ^ pixel
-	]
+        samplesPerPixel >= 3 ifTrue:[
+            redBits := bitsPerSample at:1.
+            greenBits := bitsPerSample at:2.
+            blueBits := bitsPerSample at:3.
+
+            "/ map r/g/b to 0..255
+            r := (color red / 100.0 * ((1 bitShift:redBits)-1)) rounded.
+            g := (color green / 100.0 * ((1 bitShift:greenBits)-1)) rounded.
+            b := (color blue / 100.0 * ((1 bitShift:blueBits)-1)) rounded.
+            pixel := (((r bitShift:greenBits) + g) bitShift:blueBits) + b.
+            ^ pixel
+        ]
     ].
 
     photometric == #rgba ifTrue:[
-	samplesPerPixel >= 4 ifTrue:[
-	    redBits := bitsPerSample at:1.
-	    greenBits := bitsPerSample at:2.
-	    blueBits := bitsPerSample at:3.
-	    alphaBits := bitsPerSample at:4.
-
-	    "/ map r/g/b/a to 0..255
-	    r := (color red / 100.0 * ((1 bitShift:redBits)-1)) rounded.
-	    g := (color green / 100.0 * ((1 bitShift:greenBits)-1)) rounded.
-	    b := (color blue / 100.0 * ((1 bitShift:blueBits)-1)) rounded.
-	    a := (color alpha * ((1 bitShift:alphaBits)-1)) rounded.
-	    pixel := (((((a bitShift:redBits) + r) bitShift:greenBits) + g) bitShift:blueBits) + b.
-	    ^ pixel
-	]
+        samplesPerPixel >= 4 ifTrue:[
+            redBits := bitsPerSample at:1.
+            greenBits := bitsPerSample at:2.
+            blueBits := bitsPerSample at:3.
+            alphaBits := bitsPerSample at:4.
+
+            "/ map r/g/b/a to 0..255
+            r := (color red / 100.0 * ((1 bitShift:redBits)-1)) rounded.
+            g := (color green / 100.0 * ((1 bitShift:greenBits)-1)) rounded.
+            b := (color blue / 100.0 * ((1 bitShift:blueBits)-1)) rounded.
+            a := (color alpha * ((1 bitShift:alphaBits)-1)) rounded.
+            pixel := (((((a bitShift:redBits) + r) bitShift:greenBits) + g) bitShift:blueBits) + b.
+            ^ pixel
+        ]
     ].
     ImageErrorSignal raiseErrorString:'format not supported'.
     ^ nil
@@ -14213,26 +14287,26 @@
 "/    ].
 
     photometric == #rgb ifTrue:[
-	samplesPerPixel >= 3 ifTrue:[
-	    "/ r,g,b  b at low end
-	    redBits := bitsPerSample at:1.
-	    greenBits := bitsPerSample at:2.
-	    blueBits := bitsPerSample at:3.
-	    pixel := (((r bitShift:greenBits) + g) bitShift:blueBits) + b.
-	    ^ pixel
-	]
+        samplesPerPixel >= 3 ifTrue:[
+            "/ r,g,b  b at low end
+            redBits := bitsPerSample at:1.
+            greenBits := bitsPerSample at:2.
+            blueBits := bitsPerSample at:3.
+            pixel := (((r bitShift:greenBits) + g) bitShift:blueBits) + b.
+            ^ pixel
+        ]
     ].
 
     photometric == #rgba ifTrue:[
-	samplesPerPixel >= 4 ifTrue:[
-	    "/ a,r,g,b  b at low end
-	    redBits := bitsPerSample at:1.
-	    greenBits := bitsPerSample at:2.
-	    blueBits := bitsPerSample at:3.
-	    alphaBits := bitsPerSample at:4.
-	    pixel := (((((a bitShift:redBits) + r) bitShift:greenBits) + g) bitShift:blueBits) + b.
-	    ^ pixel
-	]
+        samplesPerPixel >= 4 ifTrue:[
+            "/ a,r,g,b  b at low end
+            redBits := bitsPerSample at:1.
+            greenBits := bitsPerSample at:2.
+            blueBits := bitsPerSample at:3.
+            alphaBits := bitsPerSample at:4.
+            pixel := (((((a bitShift:redBits) + r) bitShift:greenBits) + g) bitShift:blueBits) + b.
+            ^ pixel
+        ]
     ].
     ImageErrorSignal raiseErrorString:'format not supported'.
     ^ nil
@@ -14248,13 +14322,13 @@
     |pixel numGreenBits numBlueBits|
 
     photometric == #rgb ifTrue:[
-	samplesPerPixel >= 3 ifTrue:[
-	    numGreenBits := bitsPerSample at:2.
-	    numBlueBits := bitsPerSample at:3.
-
-	    pixel := (((redBits bitShift:numGreenBits) + greenBits) bitShift:numBlueBits) + blueBits.
-	    ^ pixel
-	]
+        samplesPerPixel >= 3 ifTrue:[
+            numGreenBits := bitsPerSample at:2.
+            numBlueBits := bitsPerSample at:3.
+
+            pixel := (((redBits bitShift:numGreenBits) + greenBits) bitShift:numBlueBits) + blueBits.
+            ^ pixel
+        ]
     ].
 
     ImageErrorSignal raiseErrorString:'format not supported'.
@@ -14279,11 +14353,11 @@
      return the yellow component scaled to a percentage (0 .. 100) of a pixelValue."
 
     samplesPerPixel == 3 ifTrue:[
-	"/ assume that the cyan bits are the leftMost bits (cmy)
-
-	bitsPerSample = #(8 8 8) ifTrue:[
-	    ^ 100.0 / 255 * (pixel bitAnd:16rFF)
-	]
+        "/ assume that the cyan bits are the leftMost bits (cmy)
+
+        bitsPerSample = #(8 8 8) ifTrue:[
+            ^ 100.0 / 255 * (pixel bitAnd:16rFF)
+        ]
     ].
 
 
@@ -14296,11 +14370,11 @@
      return the yellow component scaled to a percentage (0 .. 100) of a pixelValue."
 
     samplesPerPixel == 4 ifTrue:[
-	"/ assume that the cyan bits are the leftMost bits (cmyk)
-
-	bitsPerSample = #(8 8 8 8) ifTrue:[
-	    ^ 100.0 / 255 * ((pixel bitShift:-8) bitAnd:16rFF)
-	]
+        "/ assume that the cyan bits are the leftMost bits (cmyk)
+
+        bitsPerSample = #(8 8 8 8) ifTrue:[
+            ^ 100.0 / 255 * ((pixel bitShift:-8) bitAnd:16rFF)
+        ]
     ].
 
     self subclassResponsibility
@@ -14345,12 +14419,12 @@
     suffix := aFileName asFilename suffix.
     readerClass := MIMETypes imageReaderForSuffix:suffix.
     readerClass isNil ifTrue:[
-	"/
-	"/ no known extension - could ask user for the format here.
-	"/ currently default to tiff format.
-	"/
-	readerClass := self class defaultImageFileWriter.
-	'Image [warning]: unknown extension - cannot figure out format - using default (',readerClass name,')' errorPrintCR.
+        "/
+        "/ no known extension - could ask user for the format here.
+        "/ currently default to tiff format.
+        "/
+        readerClass := self class defaultImageFileWriter.
+        'Image [warning]: unknown extension - cannot figure out format - using default (',readerClass name,')' errorPrintCR.
     ].
     ^ self saveOn:aFileName quality:qualityPercentOrNil using:readerClass
 
@@ -14394,9 +14468,9 @@
 
      anImage := Image fromFile:'goodies/bitmaps/gifImages/garfield.gif'.
      Image cannotRepresentImageSignal handle:[:ex |
-	self warn:'cannot save the image in this format'
+        self warn:'cannot save the image in this format'
      ] do:[
-	anImage saveOn:'myImage.xbm' using:XBMReader.
+        anImage saveOn:'myImage.xbm' using:XBMReader.
      ]
     "
 
@@ -14446,9 +14520,9 @@
 
      anImage := Image fromFile:'goodies/bitmaps/gifImages/garfield.gif'.
      Image cannotRepresentImageSignal handle:[:ex |
-	self warn:'cannot save the image in this format'
+        self warn:'cannot save the image in this format'
      ] do:[
-	anImage saveOn:'myImage.xbm' using:XBMReader.
+        anImage saveOn:'myImage.xbm' using:XBMReader.
      ]
     "
 
@@ -14517,63 +14591,63 @@
     device := aDrawable graphicsDevice.
 
     (aDrawable isForm and:[aDrawable depth == 1]) ifTrue:[
-	"/ a monochrome bitmap ?
-	visType := #StaticGray.
-	ddepth := 1.
+        "/ a monochrome bitmap ?
+        visType := #StaticGray.
+        ddepth := 1.
     ] ifFalse:[
-	(aDrawable isForm) ifFalse:[
-	    "
-	     get some attributes of the display device
-	    "
-	    visType := device visualType.
-	    ddepth := device depth.
-	] ifTrue:[
-	    visType := aDrawable photometric.
-	    ddepth := aDrawable depth.
-	].
+        (aDrawable isForm) ifFalse:[
+            "
+             get some attributes of the display device
+            "
+            visType := device visualType.
+            ddepth := device depth.
+        ] ifTrue:[
+            visType := aDrawable photometric.
+            ddepth := aDrawable depth.
+        ].
     ].
 
     "/ kludge for 15bit XFree server
     ddepth == 15 ifTrue:[
-	ddepth := 16
+        ddepth := 16
     ].
 
     aDrawable isForm ifTrue:[
-	photometric := aDrawable photometric.
-	samplesPerPixel := ddepth == 24 ifTrue:3 ifFalse:1.
-	bitsPerSample := ddepth == 24 ifTrue:#[8 8 8 ] ifFalse:[ByteArray with:bpp].
+        photometric := aDrawable photometric.
+        samplesPerPixel := ddepth == 24 ifTrue:3 ifFalse:1.
+        bitsPerSample := ddepth == 24 ifTrue:#[8 8 8 ] ifFalse:[ByteArray with:bpp].
     ] ifFalse:[
-	(visType == #StaticGray) ifTrue:[
-	    (device blackpixel == 0) ifTrue:[
-		photometric := #blackIs0
-	    ] ifFalse:[
-		photometric := #whiteIs0
-	    ].
-	    samplesPerPixel := 1.
-	    bpp := "bitsPerPixel :=" ddepth.
-	    bitsPerSample := ByteArray with:bpp.
-	] ifFalse:[
-	    ((visType == #PseudoColor) or:[(visType == #StaticColor) or:[visType == #GrayScale]]) ifTrue:[
-		photometric := #palette.
-		samplesPerPixel := 1.
-		bpp := "bitsPerPixel :=" ddepth.
-		bitsPerSample := ByteArray with:bpp.
-	    ] ifFalse:[
-		((visType == #TrueColor) or:[visType == #DirectColor]) ifTrue:[
-		    photometric := #rgb.
-		    samplesPerPixel := 3.
+        (visType == #StaticGray) ifTrue:[
+            (device blackpixel == 0) ifTrue:[
+                photometric := #blackIs0
+            ] ifFalse:[
+                photometric := #whiteIs0
+            ].
+            samplesPerPixel := 1.
+            bpp := "bitsPerPixel :=" ddepth.
+            bitsPerSample := ByteArray with:bpp.
+        ] ifFalse:[
+            ((visType == #PseudoColor) or:[(visType == #StaticColor) or:[visType == #GrayScale]]) ifTrue:[
+                photometric := #palette.
+                samplesPerPixel := 1.
+                bpp := "bitsPerPixel :=" ddepth.
+                bitsPerSample := ByteArray with:bpp.
+            ] ifFalse:[
+                ((visType == #TrueColor) or:[visType == #DirectColor]) ifTrue:[
+                    photometric := #rgb.
+                    samplesPerPixel := 3.
     "/                bpp := "bitsPerPixel :=" depth.
     "/                bitsPerSample := ByteArray with:device bitsRed
     "/                                       with:device bitsGreen
     "/                                       with:device bitsBlue
-		    bpp := "bitsPerPixel :=" 24.
-		    bitsPerSample := #(8 8 8).
-		] ifFalse:[
-		    self error:'screen visual not supported'.
-		    ^ nil
-		]
-	    ]
-	].
+                    bpp := "bitsPerPixel :=" 24.
+                    bitsPerSample := #(8 8 8).
+                ] ifFalse:[
+                    self error:'screen visual not supported'.
+                    ^ nil
+                ]
+            ]
+        ].
     ].
 
     "
@@ -14591,13 +14665,13 @@
     "
     spaceBitsPerPixel := bpp.
     (bpp > 8) ifTrue:[
-	spaceBitsPerPixel := 16.
-	(bpp > 16) ifTrue:[
-	    spaceBitsPerPixel := 32.
-	    (bpp > 32) ifTrue:[
-		spaceBitsPerPixel := bpp.
-	    ]
-	]
+        spaceBitsPerPixel := 16.
+        (bpp > 16) ifTrue:[
+            spaceBitsPerPixel := 32.
+            (bpp > 32) ifTrue:[
+                spaceBitsPerPixel := bpp.
+            ]
+        ]
     ].
 
     bytesPerLine := (w * spaceBitsPerPixel + 31) // 32 * 4.
@@ -14608,19 +14682,19 @@
      get the pixels
     "
     aDrawable isForm ifTrue:[
-	(aDrawable id isNil and:[aDrawable bits notNil]) ifTrue:[
-	    info := Dictionary new
-			at:#bitsPerPixel put:(aDrawable depth);
-			at:#byteOrder put:#msbFirst;
-			at:#bitOrder put:#msbFirst;
-			at:#bytesPerLine put:(aDrawable width * aDrawable depth + 7)//8;
-			yourself.
-	    inData := aDrawable bits.
-	] ifFalse:[
-	    info := device getBitsFromPixmapId:aDrawable id x:x y:y width:w height:h into:inData.
-	]
+        (aDrawable id isNil and:[aDrawable bits notNil]) ifTrue:[
+            info := Dictionary new
+                        at:#bitsPerPixel put:(aDrawable depth);
+                        at:#byteOrder put:#msbFirst;
+                        at:#bitOrder put:#msbFirst;
+                        at:#bytesPerLine put:(aDrawable width * aDrawable depth + 7)//8;
+                        yourself.
+            inData := aDrawable bits.
+        ] ifFalse:[
+            info := device getBitsFromPixmapId:aDrawable id x:x y:y width:w height:h into:inData.
+        ]
     ] ifFalse:[
-	info := device getBitsFromViewId:aDrawable id x:x y:y width:w height:h into:inData.
+        info := device getBitsFromViewId:aDrawable id x:x y:y width:w height:h into:inData.
     ].
 
     bitsPerPixelIn := info at:#bitsPerPixel.
@@ -14633,15 +14707,15 @@
     "/ mhmh - that's not needed
 
     bitsPerPixelIn < 8 ifTrue:[
-	bitOrder := info at:#bitOrder.
-	bitOrder ~~ #msbFirst ifTrue:[
-	    inData
-		expandPixels:8
-		width:(inData size)
-		height:1
-		into:inData
-		mapping:(ImageReader reverseBits "TODO: reverseBitsForDepth:bitsPerPixelIn").
-	].
+        bitOrder := info at:#bitOrder.
+        bitOrder ~~ #msbFirst ifTrue:[
+            inData
+                expandPixels:8
+                width:(inData size)
+                height:1
+                into:inData
+                mapping:(ImageReader reverseBits "TODO: reverseBitsForDepth:bitsPerPixelIn").
+        ].
     ].
 
     "
@@ -14657,108 +14731,108 @@
 
     ((bytesPerLine ~~ bytesPerLineIn)
     or:[bitsPerPixelIn ~~ bpp]) ifTrue:[
-	tmpData := inData.
-	inData := ByteArray uninitializedNew:(bytesPerLine * height).
-
-	srcRow := 1.
-	dstRow := 1.
-
-	bitsPerPixelIn ~~ bpp ifTrue:[
-	    "/ for now, only 32 -> 24 is supported
-
-	    maskR == 0 ifTrue:[
-		bitsR := device bitsRed.
-		bitsG := device bitsGreen.
-		bitsB := device bitsBlue.
-		maskR := (1 bitShift:bitsR) - 1.
-		maskG := (1 bitShift:bitsG) - 1.
-		maskB := (1 bitShift:bitsB) - 1.
-		shR := device shiftRed negated.
-		shG := device shiftGreen negated.
-		shB := device shiftBlue negated.
-	    ] ifFalse:[
-		shR := (maskR lowBit - 1) negated.
-		bitsR := maskR highBit - maskR lowBit + 1.
-		maskR := maskR bitShift:shR.
-		shG := (maskG lowBit - 1) negated.
-		bitsG := maskG highBit - maskG lowBit + 1.
-		maskG := maskG bitShift:shG.
-		shB := (maskB lowBit - 1) negated.
-		bitsB := maskB highBit - maskB lowBit + 1.
-		maskB := maskB bitShift:shB.
-	    ].
-	    shR2 := (8 - bitsR).
-	    shG2 := (8 - bitsG).
-	    shB2 := (8 - bitsB).
-
-	    ((bitsPerPixelIn == 32) and:[bpp == 24]) ifTrue:[
-		"/ 'reformatting 32->24...' printNL.
-		1 to:h do:[:hi |
-		    srcIndex := srcRow.
-		    dstIndex := dstRow.
-
-		    1 to:w do:[:wi |
-			lword := tmpData unsignedInt32At:srcIndex MSB:isMSB.
-			r := (lword bitShift:shR) bitAnd:maskR.
-			g := (lword bitShift:shG) bitAnd:maskG.
-			b := (lword bitShift:shB) bitAnd:maskB.
-
-			inData at:dstIndex   put:r.
-			inData at:dstIndex+1 put:g.
-			inData at:dstIndex+2 put:b.
-			srcIndex := srcIndex + 4.
-			dstIndex := dstIndex + 3.
-		    ].
-		    dstRow := dstRow + bytesPerLine.
-		    srcRow := srcRow + bytesPerLineIn
-		]
-	    ] ifFalse:[
-		((bitsPerPixelIn == 16) and:[bpp == 24]) ifTrue:[
-		    "/ 'reformatting 16->24...' printNL.
-		    1 to:h do:[:hi |
-			srcIndex := srcRow.
-			dstIndex := dstRow.
-
-			1 to:w do:[:wi |
-			    word := tmpData unsignedInt16At:srcIndex MSB:isMSB.
-			    r := (word bitShift:shR) bitAnd:maskR.
-			    g := (word bitShift:shG) bitAnd:maskG.
-			    b := (word bitShift:shB) bitAnd:maskB.
-
-			    inData at:dstIndex   put:(r bitShift:shR2).
-			    inData at:dstIndex+1 put:(g bitShift:shG2).
-			    inData at:dstIndex+2 put:(b bitShift:shB2).
-
-			    srcIndex := srcIndex + 2.
-			    dstIndex := dstIndex + 3.
-			].
-			dstRow := dstRow + bytesPerLine.
-			srcRow := srcRow + bytesPerLineIn
-		    ]
-		] ifFalse:[
-		    ('Image [warning]: unsupported depth combination: ' , bitsPerPixelIn printString , ' -> ' ,
-							bpp printString) errorPrintCR.
-		    self shouldImplement.
-		    ^ nil
-		]
-	    ].
-	] ifFalse:[
-	    "/
-	    "/ repad in the buffer
-	    "/
-	    1 to:h do:[:hi |
-		inData replaceFrom:dstRow to:(dstRow + bytesPerLine - 1)
-			      with:tmpData startingAt:srcRow.
-		dstRow := dstRow + bytesPerLine.
-		srcRow := srcRow + bytesPerLineIn
-	    ]
-	]
+        tmpData := inData.
+        inData := ByteArray uninitializedNew:(bytesPerLine * height).
+
+        srcRow := 1.
+        dstRow := 1.
+
+        bitsPerPixelIn ~~ bpp ifTrue:[
+            "/ for now, only 32 -> 24 is supported
+
+            maskR == 0 ifTrue:[
+                bitsR := device bitsRed.
+                bitsG := device bitsGreen.
+                bitsB := device bitsBlue.
+                maskR := (1 bitShift:bitsR) - 1.
+                maskG := (1 bitShift:bitsG) - 1.
+                maskB := (1 bitShift:bitsB) - 1.
+                shR := device shiftRed negated.
+                shG := device shiftGreen negated.
+                shB := device shiftBlue negated.
+            ] ifFalse:[
+                shR := (maskR lowBit - 1) negated.
+                bitsR := maskR highBit - maskR lowBit + 1.
+                maskR := maskR bitShift:shR.
+                shG := (maskG lowBit - 1) negated.
+                bitsG := maskG highBit - maskG lowBit + 1.
+                maskG := maskG bitShift:shG.
+                shB := (maskB lowBit - 1) negated.
+                bitsB := maskB highBit - maskB lowBit + 1.
+                maskB := maskB bitShift:shB.
+            ].
+            shR2 := (8 - bitsR).
+            shG2 := (8 - bitsG).
+            shB2 := (8 - bitsB).
+
+            ((bitsPerPixelIn == 32) and:[bpp == 24]) ifTrue:[
+                "/ 'reformatting 32->24...' printNL.
+                1 to:h do:[:hi |
+                    srcIndex := srcRow.
+                    dstIndex := dstRow.
+
+                    1 to:w do:[:wi |
+                        lword := tmpData unsignedInt32At:srcIndex MSB:isMSB.
+                        r := (lword bitShift:shR) bitAnd:maskR.
+                        g := (lword bitShift:shG) bitAnd:maskG.
+                        b := (lword bitShift:shB) bitAnd:maskB.
+
+                        inData at:dstIndex   put:r.
+                        inData at:dstIndex+1 put:g.
+                        inData at:dstIndex+2 put:b.
+                        srcIndex := srcIndex + 4.
+                        dstIndex := dstIndex + 3.
+                    ].
+                    dstRow := dstRow + bytesPerLine.
+                    srcRow := srcRow + bytesPerLineIn
+                ]
+            ] ifFalse:[
+                ((bitsPerPixelIn == 16) and:[bpp == 24]) ifTrue:[
+                    "/ 'reformatting 16->24...' printNL.
+                    1 to:h do:[:hi |
+                        srcIndex := srcRow.
+                        dstIndex := dstRow.
+
+                        1 to:w do:[:wi |
+                            word := tmpData unsignedInt16At:srcIndex MSB:isMSB.
+                            r := (word bitShift:shR) bitAnd:maskR.
+                            g := (word bitShift:shG) bitAnd:maskG.
+                            b := (word bitShift:shB) bitAnd:maskB.
+
+                            inData at:dstIndex   put:(r bitShift:shR2).
+                            inData at:dstIndex+1 put:(g bitShift:shG2).
+                            inData at:dstIndex+2 put:(b bitShift:shB2).
+
+                            srcIndex := srcIndex + 2.
+                            dstIndex := dstIndex + 3.
+                        ].
+                        dstRow := dstRow + bytesPerLine.
+                        srcRow := srcRow + bytesPerLineIn
+                    ]
+                ] ifFalse:[
+                    ('Image [warning]: unsupported depth combination: ' , bitsPerPixelIn printString , ' -> ' ,
+                                                        bpp printString) errorPrintCR.
+                    self shouldImplement.
+                    ^ nil
+                ]
+            ].
+        ] ifFalse:[
+            "/
+            "/ repad in the buffer
+            "/
+            1 to:h do:[:hi |
+                inData replaceFrom:dstRow to:(dstRow + bytesPerLine - 1)
+                              with:tmpData startingAt:srcRow.
+                dstRow := dstRow + bytesPerLine.
+                srcRow := srcRow + bytesPerLineIn
+            ]
+        ]
     ] ifFalse:[
-	(bytesPerLine * height) ~~ inData size ifTrue:[
-	    tmpData := inData.
-	    inData := ByteArray uninitializedNew:(bytesPerLine * height).
-	    inData replaceFrom:1 to:bytesPerLine * height with:tmpData startingAt:1
-	]
+        (bytesPerLine * height) ~~ inData size ifTrue:[
+            tmpData := inData.
+            inData := ByteArray uninitializedNew:(bytesPerLine * height).
+            inData replaceFrom:1 to:bytesPerLine * height with:tmpData startingAt:1
+        ]
     ].
     self bits:inData.
 
@@ -14766,26 +14840,26 @@
     "/  if not #palette we are done, the pixel values are the rgb/grey values
     "/
     photometric == #palette ifTrue:[
-	"/
-	"/ what we now have are the color numbers - still need the r/g/b values.
-	"/ find out, which colors are in the picture
-	"/
-	usedPixels := inData usedValues.
-	mapSize := usedPixels max + 1.
-
-	"get the palette"
-	map := Array new:mapSize.
-	usedPixels do:[:colorIndex |
-	    |i|
-
-	    i := colorIndex + 1.
-	    device
-		getRGBFrom:colorIndex
-		into:[:r :g :b |
-		    map at:i put:(Color red:r green:g blue:b)
-		]
-	].
-	self setColorMap:map.
+        "/
+        "/ what we now have are the color numbers - still need the r/g/b values.
+        "/ find out, which colors are in the picture
+        "/
+        usedPixels := inData usedValues.
+        mapSize := usedPixels max + 1.
+
+        "get the palette"
+        map := Array new:mapSize.
+        usedPixels do:[:colorIndex |
+            |i|
+
+            i := colorIndex + 1.
+            device
+                getRGBFrom:colorIndex
+                into:[:r :g :b |
+                    map at:i put:(Color red:r green:g blue:b)
+                ]
+        ].
+        self setColorMap:map.
     ].
 
     "Modified: / 9.1.1998 / 21:32:36 / stefan"
@@ -14795,13 +14869,13 @@
 fromScreen:aRectangle
     "read an image from the display screen.
      WARNING: this temporarily grabs the display
-	      it may not work from within a buttonMotion
-	      (use #fromScreen:on:grab: with a false grabArg then)."
+              it may not work from within a buttonMotion
+              (use #fromScreen:on:grab: with a false grabArg then)."
 
     ^ self
-	fromScreen:aRectangle
-	on:Screen current
-	grab:true
+        fromScreen:aRectangle
+        on:Screen current
+        grab:true
 
     "Modified: 26.3.1997 / 10:43:34 / cg"
 !
@@ -14813,13 +14887,13 @@
      (especially True- and DirectColor may be wrong).
      Late note: 24bit rgb now also works.
      WARNING: this temporarily grabs the display
-	      it may not work from within a buttonMotion
-	      (use #fromScreen:on:grab: with a false grabArg then)."
+              it may not work from within a buttonMotion
+              (use #fromScreen:on:grab: with a false grabArg then)."
 
     ^ self
-	fromScreen:aRectangle
-	on:aDevice
-	grab:true
+        fromScreen:aRectangle
+        on:aDevice
+        grab:true
 
     "
      Image fromScreen:((0 @ 0) corner:(100 @ 100)) on:Display
@@ -14839,8 +14913,8 @@
      (especially True- and DirectColor may be wrong).
      Late note: 24bit rgb now also works.
      WARNING: with doGrab true, this temporarily grabs the display
-	      and it may not work from within a buttonMotion
-	      (use with a false grabArg then)."
+              and it may not work from within a buttonMotion
+              (use with a false grabArg then)."
 
     |curs rootView prevGrab|
 
@@ -14859,22 +14933,22 @@
     "
     rootView := aDevice rootView.
     doGrab ifTrue:[
-	prevGrab := aDevice activePointerGrab.
-	aDevice grabPointerInView:rootView withCursor:curs.
+        prevGrab := aDevice activePointerGrab.
+        aDevice grabPointerInView:rootView withCursor:curs.
     ].
 
     "
      get the pixels
     "
     [
-	self from:rootView in:aRectangle.
+        self from:rootView in:aRectangle.
     ] ensure:[
-	doGrab ifTrue:[
-	    aDevice ungrabPointer.
-	    prevGrab notNil ifTrue:[
-		 aDevice grabPointerInView:prevGrab.
-	    ]
-	]
+        doGrab ifTrue:[
+            aDevice ungrabPointer.
+            prevGrab notNil ifTrue:[
+                 aDevice grabPointerInView:prevGrab.
+            ]
+        ]
     ]
 
     "
@@ -14898,49 +14972,49 @@
 
     "/ kludge for 15bit XFree server
     depth == 15 ifTrue:[
-	depth := 16
+        depth := 16
     ].
 
     (visType == #StaticGray) ifTrue:[
-	(aDevice blackpixel == 0) ifTrue:[
-	    photometric := #blackIs0
-	] ifFalse:[
-	    photometric := #whiteIs0
-	].
-	samplesPerPixel := 1.
-	bitsPerPixel := depth.
-	bitsPerSample := ByteArray with:bitsPerPixel.
-	"
-	 were done, the pixel values are the grey values
-	"
-	^ self
+        (aDevice blackpixel == 0) ifTrue:[
+            photometric := #blackIs0
+        ] ifFalse:[
+            photometric := #whiteIs0
+        ].
+        samplesPerPixel := 1.
+        bitsPerPixel := depth.
+        bitsPerSample := ByteArray with:bitsPerPixel.
+        "
+         were done, the pixel values are the grey values
+        "
+        ^ self
     ].
 
     ((visType == #TrueColor) or:[visType == #DirectColor]) ifTrue:[
-	photometric := #rgb.
-	samplesPerPixel := 3.
-
-	"/ for now - only support 24bit TrueColor
-	depth ~~ 24 ifTrue:[
-	    'IMAGE: unsupported display depth' errorPrintCR.
-	].
+        photometric := #rgb.
+        samplesPerPixel := 3.
+
+        "/ for now - only support 24bit TrueColor
+        depth ~~ 24 ifTrue:[
+            'IMAGE: unsupported display depth' errorPrintCR.
+        ].
 "/                bitsPerPixel := depth.
 "/                bitsPerSample := ByteArray with:aDevice bitsRed
 "/                                       with:aDevice bitsGreen
 "/                                       with:aDevice bitsBlue
-	bitsPerPixel := 24.
-	bitsPerSample := #[8 8 8].
-	"
-	 were done, the pixel values are the rgb values
-	"
-	^ self
+        bitsPerPixel := 24.
+        bitsPerSample := #[8 8 8].
+        "
+         were done, the pixel values are the rgb values
+        "
+        ^ self
     ].
 
     ((visType ~~ #PseudoColor)
     and:[(visType ~~ #StaticColor)
     and:[visType ~~ #GrayScale]]) ifTrue:[
-	self error:'screen visual not supported'.
-	^ nil
+        self error:'screen visual not supported'.
+        ^ nil
     ].
 
     photometric := #palette.