--- 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