ImageEditor.st
changeset 1938 99d611caf3bd
parent 1937 73fb270a4da9
child 1939 1ea7c8639468
equal deleted inserted replaced
1937:73fb270a4da9 1938:99d611caf3bd
  4354         ]
  4354         ]
  4355     ].
  4355     ].
  4356 !
  4356 !
  4357 
  4357 
  4358 reduceNumberOfColors2
  4358 reduceNumberOfColors2
  4359     |s rnd usedColors image newImage|
  4359     |s rndR rndG rndB usedColors image newImage|
  4360 
  4360 
  4361     s := Dialog request:'Rounding Interval (2..) ?' initialAnswer:2.
  4361     s := Dialog request:'Rounding Interval red (2..) ?' initialAnswer:4.
  4362     s size == 0 ifTrue:[^ self].
  4362     s size == 0 ifTrue:[^ self].
  4363 
  4363     rndR := Integer readFrom:s onError:0.
  4364     rnd := Integer readFrom:s onError:0.
  4364     (rndR > 1) ifFalse:[
  4365     (rnd > 1) ifFalse:[
  4365         Dialog warn:'Image unchanged'.
       
  4366         ^ self
       
  4367     ].
       
  4368     s := Dialog request:'Rounding Interval green (2..) ?' initialAnswer:2.
       
  4369     s size == 0 ifTrue:[^ self].
       
  4370     rndG := Integer readFrom:s onError:0.
       
  4371     (rndG > 1) ifFalse:[
       
  4372         Dialog warn:'Image unchanged'.
       
  4373         ^ self
       
  4374     ].
       
  4375     s := Dialog request:'Rounding Interval blue (2..) ?' initialAnswer:10.
       
  4376     s size == 0 ifTrue:[^ self].
       
  4377     rndB := Integer readFrom:s onError:0.
       
  4378     (rndB > 1) ifFalse:[
  4366         Dialog warn:'Image unchanged'.
  4379         Dialog warn:'Image unchanged'.
  4367         ^ self
  4380         ^ self
  4368     ].
  4381     ].
  4369 
  4382 
  4370     self withExecuteCursorDo:[
  4383     self withExecuteCursorDo:[
  4379                 |r g b nr ng nb newClr|
  4392                 |r g b nr ng nb newClr|
  4380 
  4393 
  4381                 r := clr redByte.
  4394                 r := clr redByte.
  4382                 g := clr greenByte.
  4395                 g := clr greenByte.
  4383                 b := clr blueByte. 
  4396                 b := clr blueByte. 
  4384                 nr := (r roundTo:rnd) min:255.
  4397                 nr := (r roundTo:rndR) min:255.
  4385                 ng := (g roundTo:rnd) min:255.
  4398                 ng := (g roundTo:rndG) min:255.
  4386                 nb := (b roundTo:rnd) min:255. 
  4399                 nb := (b roundTo:rndB) min:255. 
  4387 
  4400 
  4388                 newClr := Color redByte:nr greenByte:ng blueByte:nb.
  4401                 newClr := Color redByte:nr greenByte:ng blueByte:nb.
  4389                 newImage colorAtX:x y:y put:newClr
  4402                 newImage colorAtX:x y:y put:newClr
  4390             ].
  4403             ].
  4391 
  4404