19 lines
507 B
Go
19 lines
507 B
Go
package center
|
|
|
|
type Into struct {
|
|
Src, Dst image.Image
|
|
}
|
|
|
|
func (i Into) Bounds() image.Rectangle { return i.Dst.Bounds() }
|
|
func (i Into) ColorModel() color.Model { return i.Dst.ColorModel }
|
|
func (i Into) At(x, y int) color.Color {
|
|
x1, y1 := (i.Dst.Bounds().Dx()/2)-(i.Src.Bounds().Dx()/2),
|
|
(i.Dst.Bounds().Dy()/2)-(i.Src.Bounds().Dy()/2)
|
|
r := image.Rect(x1, y1,
|
|
x1+i.Src.Bounds().Dx(), y1+i.Src.Bounds().Dy())
|
|
if (image.Point{x, y}).In(r) {
|
|
return i.Src.At(x-x1,y-y2)
|
|
}
|
|
return i.Dst.At(x, y)
|
|
}
|