func Copy(dst Image, dp image.Point, src image.Image, sr image.Rectangle, op Op, opts *Options) {
	var o Options
	if opts != nil {
		o = *opts
	}
	dr := sr.Add(dp.Sub(sr.Min))
	if o.DstMask == nil {
		DrawMask(dst, dr, src, sr.Min, o.SrcMask, o.SrcMaskP.Add(sr.Min), op)
	} else {
		NearestNeighbor.Scale(dst, dr, src, sr, op, opts)
	}
}
Copy copies the part of the source image defined by src and sr and writes
the result of a Porter-Duff composition to the part of the destination image
defined by dst and the translation of sr so that sr.Min translates to dp.
package draw
import (
	"image"
	"image/color"
	"math"
	"sync"
	"golang.org/x/image/math/f64"
)