Go 语言

Go 语言教程 Go 语言环境安装 Go 语言结构 Go 语言基础语法 Go 语言数据类型 Go 语言变量 Go 语言常量 Go 语言运算符 Go 语言条件语句 Go 语言 if 语句 Go 语言 if...else 语句 Go 语言 if 语句嵌套 Go 语言 switch 语句 Go 语言 select 语句 Go 语言循环语句 Go 语言 for 循环 Go 语言循环嵌套 Go 语言 break 语句 Go 语言 continue 语句 Go 语言 goto 语句 Go 语言函数 Go 语言函数值传递值 Go 语言函数引用传递值 Go 语言函数作为值 Go 语言函数闭包 Go 语言函数方法 Go 语言变量作用域 Go 语言数组 Go 语言多维数组 Go 语言向函数传递数组 Go 语言指针 Go 语言指针数组 Go 语言指向指针的指针 Go 语言指针作为函数参数 Go 语言结构体 Go 语言切片(Slice) Go 语言范围(Range) Go 语言Map(集合) Go 语言递归函数 Go 语言类型转换 Go 语言接口 Go 错误处理 Go 语言开发工具Go 语言标准库

Go 语言标准库


package draw

import "image/draw"

draw包提供了图像合成函数。参见:http://golang.org/doc/articles/image_draw.html

Go语言标准库 >>


  • type Quantizer
  • type Image
  • type Drawer
  • type Op
  • func Draw(dst Image, r image.Rectangle, src image.Image, sp image.Point, op Op)
  • func DrawMask(dst Image, r image.Rectangle, src image.Image, sp image.Point, mask image.Image, mp image.Point, op Op)
  • type Quantizer

    type Quantizer interface {
        // Quantize方法向p中最多增加cap(p)-len(p)个色彩并返回修正后的调色板
        // 返回值更适合(可以更少失真的)将m转换为一个调色板类型的图像
        Quantize(p color.Palette, m image.Image) color.Palette
    }

    Quantizer接口为一个图像生成调色板。

    type Image

    type Image interface {
        image.Image
        Set(x, y int, c color.Color)
    }

    Image接口比image.Image接口多了Set方法,该方法用于修改单个像素的色彩。

    type Drawer

    type Drawer interface {
        // 对齐图像dst的r.Min和src的sp点,然后将src绘制到dst上的结果来替换矩形范围内的图像
        Draw(dst Image, r image.Rectangle, src image.Image, sp image.Point)
    }

    Drawer包含Draw方法。

    var FloydSteinberg Drawer = floydSteinberg{}

    FloydSteinberg是采用Src操作并实现了Floyd-Steinberg误差扩散算法的Drawer。

    type Op

    type Op int

    Op是Porter-Duff合成的操作符。

    const (
        // 源图像透过遮罩后,覆盖在目标图像上(类似图层)
        Over Op  = iota
        // 源图像透过遮罩后,替换掉目标图像
        Src
    )

    func (Op) Draw

    func (op Op) Draw(dst Image, r image.Rectangle, src image.Image, sp image.Point)

    Draw方法通过使用Op参数调用包的Draw函数实现了Drawer接口。

    func Draw

    func Draw(dst Image, r image.Rectangle, src image.Image, sp image.Point, op Op)

    Draw函数使用nil的mask参数调用DrawMask函数。

    func DrawMask

    func DrawMask(dst Image, r image.Rectangle, src image.Image, sp image.Point, mask image.Image, mp image.Point, op Op)

    对齐目标图像dst的矩形r左上角、源图像src的sp点、遮罩mask的mp点,根据op修改dst的r矩形区域内的内容,mask如果为nil则视为完全透明。