ImageEditView.st
changeset 5483 87e33f13ffe2
parent 5481 3ed986b5812d
child 5484 6b12e0653062
--- a/ImageEditView.st	Thu Feb 16 19:02:53 2017 +0100
+++ b/ImageEditView.st	Fri Feb 17 15:36:04 2017 +0100
@@ -19,7 +19,8 @@
 		editMode lastPastePoint imageInfoHolder activityInfoHolder
 		pickedColorHolder drawingColors drawingPixels drawingColorHolders
 		drawingPixelHolders clickInfoCallBack penWidth sprayProcess
-		sprayPosition spraySpot drawingAlpha'
+		sprayPosition spraySpot drawingAlpha floodFillMaxHueError
+		floodFillMaxLightError'
 	classVariableNames:'Clipboard ClipboardMagnified LastMagnification
 		GridMagnificationLimit MaxUndos LastSaveDirectory LastSaveClass
 		EditModePoint EditModeBox EditModeFilledBox EditModeFill
@@ -209,6 +210,18 @@
     (drawingColorHolders at:2) value:(anArrayTwoColors at:2).
 !
 
+floodFillMaxHueError:aFraction
+    floodFillMaxHueError := aFraction.
+
+    "Modified (format): / 17-02-2017 / 15:26:59 / cg"
+!
+
+floodFillMaxLightError:aFraction
+    floodFillMaxLightError := aFraction.
+
+    "Modified (format): / 17-02-2017 / 15:27:03 / cg"
+!
+
 image:anImage scroll:doScroll
     self image:anImage scroll:doScroll invalidate:true
 !
@@ -352,11 +365,16 @@
 !
 
 selectMaskForDrawing
-    self selectedColor:(Color black).
-    self selectedColorIndex:nil.
-    self changed:#selectedColor with:(Color black).
+    image mask isNil ifTrue:[ 
+        Logger warning:'image has no mask'.
+        ^ self.    
+    ].
+"/    self selectedColor:(Color black).
+    self selectedColorIndex:1.
+    "/ self changed:#selectedColor with:(Color black).
 
     "Created: / 16-02-2017 / 09:57:40 / cg"
+    "Modified: / 17-02-2017 / 14:54:15 / cg"
 !
 
 selectedColor
@@ -1168,12 +1186,14 @@
                 |pix|
 
                 (clr := self drawingColorOrNil) notNil ifTrue:[
-                    image floodFillAt: aPoint//magnification withColor:clr.
+                    pix := image valueFromColor:clr.
                 ] ifFalse:[
-                    (pix := self drawingPixelOrNil) notNil ifTrue:[
-                        image floodFillAt:aPoint//magnification withValue:pix.
-                    ].
+                    pix := self drawingPixelOrNil.
                 ].
+                image floodFillAt:aPoint//magnification withValue:pix 
+                      maxDeviationInLight:floodFillMaxLightError 
+                      maxDeviationInHue:floodFillMaxHueError.
+
                 image restored.
 
                 self invalidate.
@@ -1187,7 +1207,7 @@
         self updateActivity:''
     ]
 
-    "Modified (comment): / 16-02-2017 / 11:14:55 / cg"
+    "Modified: / 17-02-2017 / 15:30:38 / cg"
 !
 
 filledBoxAt: aPoint
@@ -2669,10 +2689,11 @@
 
     spraySpot := 8.
     penWidth := 1.
-
+    floodFillMaxHueError := floodFillMaxLightError := 0.
+    
     self editMode:EditModePoint.
 
-    "Modified: / 15-02-2012 / 22:39:22 / cg"
+    "Modified: / 17-02-2017 / 15:27:19 / cg"
 ! !
 
 !ImageEditView methodsFor:'loading & saving'!