Mike Schwörer
133aeb8374
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 3m44s
36 lines
736 B
Go
36 lines
736 B
Go
package imageext
|
|
|
|
import "image"
|
|
|
|
type Rectangle struct {
|
|
X float64
|
|
Y float64
|
|
W float64
|
|
H float64
|
|
}
|
|
|
|
type PercentageRectangle struct {
|
|
X float64 // [0..1]
|
|
Y float64 // [0..1]
|
|
W float64 // [0..1]
|
|
H float64 // [0..1]
|
|
}
|
|
|
|
func (r PercentageRectangle) Of(ref Rectangle) Rectangle {
|
|
return Rectangle{
|
|
X: ref.X + r.X*ref.W,
|
|
Y: ref.Y + r.Y*ref.H,
|
|
W: r.W * ref.W,
|
|
H: r.H * ref.H,
|
|
}
|
|
}
|
|
|
|
func calcRelativeRect(inner image.Rectangle, outer image.Rectangle) PercentageRectangle {
|
|
return PercentageRectangle{
|
|
X: float64(inner.Min.X-outer.Min.X) / float64(outer.Dx()),
|
|
Y: float64(inner.Min.Y-outer.Min.Y) / float64(outer.Dy()),
|
|
W: float64(inner.Dx()) / float64(outer.Dx()),
|
|
H: float64(inner.Dy()) / float64(outer.Dy()),
|
|
}
|
|
}
|