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  }