image/draw 包仅仅定义了一个操作:通过可选的蒙版图(mask image),把一个原始图片绘制到目标图片上,这个操作是出奇的灵活,可以优雅和高效的执行很多常见的图像处理任务。
1: // Draw calls DrawMask with a nil mask.
2: func Draw(dst Image, r image.Rectangle, src image.Image, sp image.Point, op Op)
3: func DrawMask(dst Image, r image.Rectangle, src image.Image, sp image.Point,
4: mask image.Image, mp image.Point, op Op)
第一个函数Draw是没有使用蒙版mask的调用方法,它内部其实就是调用的mask为 nil的方法。
它的参数描述如下:
dst 绘图的背景图。
r 是背景图的绘图区域
src 是要绘制的图
sp 是 src 对应的绘图开始点(绘制的大小 r变量定义了)
mask 是绘图时用的蒙版,控制替换图片的方式。
mp 是绘图时蒙版开始点(绘制的大小 r变量定义了)
下图就是几个相关的例子:
mask 蒙版是渐变
给一个矩形填充颜色
使用 Draw方法的逻辑效果图:
代码:
1: m := image.NewRGBA(image.Rect(0, 0, 640, 480))