...

Package color

import "image/color"
概览
索引
子目录

概览 ▾

color 包实现了基本的颜色库。

变量

var (
    Black       = Gray16{0}
    White       = Gray16{0xffff}
    Transparent = Alpha16{0}
    Opaque      = Alpha16{0xffff}
)

标准颜色。

func CMYKToRGB

func CMYKToRGB(c, m, y, k uint8) (uint8, uint8, uint8)

CMYKToRGB converts a CMYK quadruple to an RGB triple.

func RGBToCMYK

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

RGBToCMYK converts an RGB triple to a CMYK quadruple.

func RGBToYCbCr

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

RGBToYCbCr将RGB的三重色转换为Y'CbCr模型的三重色。

func YCbCrToRGB

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

YCbCrToRGB将Y'CbCr上的三重色转变成RGB的三重色。

type Alpha

type Alpha struct {
    A uint8
}

Alpha代表一个8-bit的透明度。

func (Alpha) RGBA

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

type Alpha16

type Alpha16 struct {
    A uint16
}

Alpha16代表一个16位的透明度。

func (Alpha16) RGBA

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

type CMYK

type CMYK struct {
    C, M, Y, K uint8
}

CMYK represents a fully opaque CMYK color, having 8 bits for each of cyan, magenta, yellow and black.

It is not associated with any particular color profile.

func (CMYK) RGBA

func (c CMYK) RGBA() (uint32, uint32, uint32, uint32)

type Color

type Color interface {
    // RGBA returns the alpha-premultiplied red, green, blue and alpha values
    // for the color. Each value ranges within [0, 0xffff], but is represented
    // by a uint32 so that multiplying by a blend factor up to 0xffff will not
    // overflow.
    //
    // An alpha-premultiplied color component c has been scaled by alpha (a),
    // so has valid values 0 <= c <= a.
    //
    // RGBA返回预乘透明度的红,绿,蓝和颜色的透明度。每个值都在[0, 0xFFFF]范围内,
    // 但是每个值都被uint32代表,这样可以乘以一个综合值来保证不会达到0xFFFF而溢出。
    //
    // 一个预乘透明度的颜色成分 c 由透明度 alpha (a) 所调整,因此有效值为 0 <= c <= a。
    RGBA() (r, g, b, a uint32)
}

Color可以将它自己转化成每个RGBA通道都预乘透明度。 这种转化可能是有损的。

type Gray

type Gray struct {
    Y uint8
}

Gray代表一个8-bit的灰度。

func (Gray) RGBA

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

type Gray16

type Gray16 struct {
    Y uint16
}

Gray16代表了一个16-bit的灰度。

func (Gray16) RGBA

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

type Model

type Model interface {
    Convert(c Color) Color
}

Model可以在它自己的颜色模型中将一种颜色转化到另一种。 这种转换可能是有损的。

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)
)

基本的颜色模型。

var CMYKModel Model = ModelFunc(cmykModel)

CMYKModel is the Model for CMYK colors.

var YCbCrModel Model = ModelFunc(yCbCrModel)

YCbCrModel是Y'CbCr颜色的模型。

func ModelFunc

func ModelFunc(f func(Color) Color) Model

ModelFunc返回一个Model,它可以调用f来实现转换。

type NRGBA

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

NRGBA代表一个没有32位透明度加乘的颜色。

func (NRGBA) RGBA

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

type NRGBA64

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

NRGBA64代表无透明度加乘的64-bit的颜色, 它的每个红,绿,蓝,和透明度都是个16bit的数值。

func (NRGBA64) RGBA

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

type Palette

type Palette []Color

Palette是颜色的调色板。

func (Palette) Convert

func (p Palette) Convert(c Color) Color

Convert在Euclidean R,G,B空间中找到最接近c的调色板。

func (Palette) Index

func (p Palette) Index(c Color) int

Index 在欧几里得 R,G,B,A 色彩空间中找到最接近 c 的调色板对应的索引。

type RGBA

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

RGBA 表示一般的 32 位预乘透明度的颜色,其中红,绿,蓝和透明度各占 8 位数值。

一个预乘透明度的颜色成分 C 由透明度 alpha (A) 所调整,因此有效值为 0 <= C <= A。

func (RGBA) RGBA

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

type RGBA64

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

RGBA64 表示一般的 64 位预乘透明度的颜色,其中红,绿,蓝和透明度各占 16 位数值。

一个预乘透明度的颜色成分 C 由透明度 alpha (A) 所调整,因此有效值为 0 <= C <= A。

func (RGBA64) RGBA

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

type YCbCr

type YCbCr struct {
    Y, Cb, Cr uint8
}

YCbCr代表了完全不透明的24-bit的Y'CbCr的颜色,它的每个亮度和每两个色度分量是8位的。

JPEG,VP8,MPEG家族和其他一些解码器使用这个颜色模式。每个解码器经常将YUV和Y'CbCr同等使用, 但是严格来说,YUV只是用于分析视频信号,Y' (luma)是Y (luminance)伽玛校正之后的结果。

RGB和Y'CbCr之间的转换是有损的,并且转换的时候有许多细微的不同。这个包是遵循JFIF的说明: http://www.w3.org/Graphics/JPEG/jfif3.pdf

func (YCbCr) RGBA

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

子目录

名称      摘要
..
palette      Package palette provides standard color palettes.