github.com/jmigpin/editor@v1.6.0/util/drawutil/misc.go (about) 1 package drawutil 2 3 import ( 4 "image" 5 ) 6 7 //---------- 8 9 // Differs from image.Rectangle.Inset in that it accepts x and y args. 10 func RectInset(r image.Rectangle, xn, yn int) image.Rectangle { 11 if r.Dx() < 2*xn { 12 r.Min.X = (r.Min.X + r.Max.X) / 2 13 r.Max.X = r.Min.X 14 } else { 15 r.Min.X += xn 16 r.Max.X -= xn 17 } 18 if r.Dy() < 2*yn { 19 r.Min.Y = (r.Min.Y + r.Max.Y) / 2 20 r.Max.Y = r.Min.Y 21 } else { 22 r.Min.Y += yn 23 r.Max.Y -= yn 24 } 25 return r 26 } 27 28 //---------- 29 30 // Differs from image.Rectangle.Intersect in that it return {r.Min,r.Min} on empty. 31 func Intersect(r, s image.Rectangle) image.Rectangle { 32 u := r.Intersect(s) 33 if u.Empty() { 34 return image.Rectangle{r.Min, r.Min} 35 } 36 return u 37 }