ImageEditor.st
changeset 1938 99d611caf3bd
parent 1937 73fb270a4da9
child 1939 1ea7c8639468
--- a/ImageEditor.st	Fri Aug 05 16:26:02 2005 +0200
+++ b/ImageEditor.st	Fri Aug 05 16:44:27 2005 +0200
@@ -4356,13 +4356,26 @@
 !
 
 reduceNumberOfColors2
-    |s rnd usedColors image newImage|
-
-    s := Dialog request:'Rounding Interval (2..) ?' initialAnswer:2.
+    |s rndR rndG rndB usedColors image newImage|
+
+    s := Dialog request:'Rounding Interval red (2..) ?' initialAnswer:4.
     s size == 0 ifTrue:[^ self].
-
-    rnd := Integer readFrom:s onError:0.
-    (rnd > 1) ifFalse:[
+    rndR := Integer readFrom:s onError:0.
+    (rndR > 1) ifFalse:[
+        Dialog warn:'Image unchanged'.
+        ^ self
+    ].
+    s := Dialog request:'Rounding Interval green (2..) ?' initialAnswer:2.
+    s size == 0 ifTrue:[^ self].
+    rndG := Integer readFrom:s onError:0.
+    (rndG > 1) ifFalse:[
+        Dialog warn:'Image unchanged'.
+        ^ self
+    ].
+    s := Dialog request:'Rounding Interval blue (2..) ?' initialAnswer:10.
+    s size == 0 ifTrue:[^ self].
+    rndB := Integer readFrom:s onError:0.
+    (rndB > 1) ifFalse:[
         Dialog warn:'Image unchanged'.
         ^ self
     ].
@@ -4381,9 +4394,9 @@
                 r := clr redByte.
                 g := clr greenByte.
                 b := clr blueByte. 
-                nr := (r roundTo:rnd) min:255.
-                ng := (g roundTo:rnd) min:255.
-                nb := (b roundTo:rnd) min:255. 
+                nr := (r roundTo:rndR) min:255.
+                ng := (g roundTo:rndG) min:255.
+                nb := (b roundTo:rndB) min:255. 
 
                 newClr := Color redByte:nr greenByte:ng blueByte:nb.
                 newImage colorAtX:x y:y put:newClr