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 color

import "image/color"

color包实现了基本色彩库。

Go语言标准库 >>


  • Variables
  • type Color
  • type Model
  • type Alpha
  • type Alpha16
  • type Gray
  • type Gray16
  • type RGBA
  • type RGBA64
  • type NRGBA
  • type NRGBA64
  • type YCbCr
  • type Palette
  • func RGBToYCbCr(r, g, b uint8) (uint8, uint8, uint8)
  • func YCbCrToRGB(y, cb, cr uint8) (uint8, uint8, uint8)
  • Variables

    var (
        Black       = Gray16{0}       // 黑色
        White       = Gray16{0xffff}  // 白色
        Transparent = Alpha16{0}      // 完全透明
        Opaque      = Alpha16{0xffff} // 完全不透明
    )

    标准色彩。

    type Color

    type Color interface {
        // 方法返回预乘了alpha的红、绿、蓝色彩值和alpha通道值,范围都在[0, 0xFFFF]。
        // 返回值类型为uint32,这样当乘以接近0xFFFF的混合参数时,不会溢出。
        RGBA() (r, g, b, a uint32)
    }

    实现了Color接口的类型可以将自身转化为预乘了alpha的16位通道的RGBA,转换可能会丢失色彩信息。

    type Model

    type Model interface {
        Convert(c Color) Color
    }

    Model接口可以将任意Color接口转换为采用自身色彩模型的Color接口。转换可能会丢失色彩信息。

    var (
        RGBAModel    Model = ModelFunc(rgbaModel)
        RGBA64Model  Model = ModelFunc(rgba64Model)
        NRGBAModel   Model = ModelFunc(nrgbaModel)
        NRGBA64Model Model = ModelFunc(nrgba64Model)
        AlphaModel   Model = ModelFunc(alphaModel)
        Alpha16Model Model = ModelFunc(alpha16Model)
        GrayModel    Model = ModelFunc(grayModel)
        Gray16Model  Model = ModelFunc(gray16Model)
    )

    Models接口返回标准的Color接口类型。

    var YCbCrModel Model = ModelFunc(yCbCrModel)

    包变量YcbCrModel是Y'cbCr色彩模型的Model接口。

    func ModelFunc

    func ModelFunc(f func(Color) Color) Model

    函数ModelFunc返回一个调用函数f实现色彩转换的Model接口。

    type Alpha

    type Alpha struct {
        A uint8
    }

    Alpha类型代表一个8位的alpha通道(alpha通道表示透明度)。

    func (Alpha) RGBA

    func (c Alpha) RGBA() (r, g, b, a uint32)

    type Alpha16

    type Alpha16 struct {
        A uint16
    }

    Alpha16类型代表一个16位的alpha通道。

    func (Alpha16) RGBA

    func (c Alpha16) RGBA() (r, g, b, a uint32)

    type Gray

    type Gray struct {
        Y uint8
    }

    Gray类型代表一个8位的灰度色彩。

    func (Gray) RGBA

    func (c Gray) RGBA() (r, g, b, a uint32)

    type Gray16

    type Gray16 struct {
        Y uint16
    }

    Gray16类型代表一个16位的灰度色彩。

    func (Gray16) RGBA

    func (c Gray16) RGBA() (r, g, b, a uint32)

    type RGBA

    type RGBA struct {
        R, G, B, A uint8
    }

    RGBA类型代表传统的预乘了alpha通道的32位RGB色彩,Red、Green、Blue、Alpha各8位。

    func (RGBA) RGBA

    func (c RGBA) RGBA() (r, g, b, a uint32)

    type RGBA64

    type RGBA64 struct {
        R, G, B, A uint16
    }

    RGBA64类型代表预乘了alpha通道的64位RGB色彩,Red、Green、Blue、Alpha各16位。

    func (RGBA64) RGBA

    func (c RGBA64) RGBA() (r, g, b, a uint32)

    type NRGBA

    type NRGBA struct {
        R, G, B, A uint8
    }

    NRGBA类型代表没有预乘alpha通道的32位RGB色彩,Red、Green、Blue、Alpha各8位。

    func (NRGBA) RGBA

    func (c NRGBA) RGBA() (r, g, b, a uint32)

    type NRGBA64

    type NRGBA64 struct {
        R, G, B, A uint16
    }

    NRGBA64类型代表没有预乘alpha通道的64位RGB色彩,Red、Green、Blue、Alpha各16位。

    func (NRGBA64) RGBA

    func (c NRGBA64) RGBA() (r, g, b, a uint32)

    type YCbCr

    type YCbCr struct {
        Y, Cb, Cr uint8
    }

    YcbCr代表完全不透明的24位Y'CbCr色彩;每个色彩都有1个亮度成分和2个色度成分,分别用8位字节表示。

    JPEG、VP8、MPEG家族和其他编码方式使用本色彩模型。这些编码通常将Y'CbCr 和YUV两个色彩模型等同使用(Y=Y'=黄、U=Cb=青、V=Cr=品红)。但严格来说,YUV模只用于模拟视频信号,Y'是经过伽玛校正的Y。RGB和Y'CbCr色彩模型之间的转换会丢失色彩信息。两个色彩模型之间的转换有多个存在细微区别的算法。本包采用JFIF算法,参见http://www.w3.org/Graphics/JPEG/jfif3.pdf

    func (YCbCr) RGBA

    func (c YCbCr) RGBA() (uint32, uint32, uint32, uint32)

    type Palette

    type Palette []Color

    Palette类型代表一个色彩的调色板。

    func (Palette) Convert

    func (p Palette) Convert(c Color) Color

    返回调色板中与色彩c在欧几里德RGB色彩空间最接近的色彩。(实现了Model接口)

    func (Palette) Index

    func (p Palette) Index(c Color) int

    返回调色板中与色彩c在欧几里德RGB色彩空间最接近的色彩的索引。

    func RGBToYCbCr

    func RGBToYCbCr(r, g, b uint8) (uint8, uint8, uint8)

    函数将RGB三原色转换为Y'CbCr三原色。

    func YCbCrToRGB

    func YCbCrToRGB(y, cb, cr uint8) (uint8, uint8, uint8)

    函数将Y'CbCr三原色转换为RGB三原色。