©
本文檔使用 php中文網手册 發布
import "image"
概述
索引
示例
子目录
图像包实现了一个基本的二维图像库。
基本界面被称为图像。图像包含图像/颜色包中描述的颜色。
Image 接口的值可以通过调用诸如 NewRGBA 和 NewPaletted 之类的函数来创建,也可以通过在包含 GIF,JPEG或PNG等格式的图像数据的 io.Reader 上调用 Decode 来创建。解码任何特定的图像格式需要预先注册解码器功能。注册通常是自动的,作为初始化格式包的副作用,因此,要解码 PNG 图像,只需要
import _ "image/png"
在一个程序的主要包装中。意味着纯粹为了初始化副作用导入一个包。
有关更多详细信息,请参阅“Go图像包”:https://golang.org/doc/articles/image_package.html
// 此示例演示如何解码JPEG图像并检查其像素。package mainimport ("encoding/base64""fmt""image""log""strings"// image/jpeg包未在下面的代码中明确使用,// 但导入的初始化副作用允许// image.Decode以了解JPEG格式的图像。 取消注释这// 两行也能理解GIF和PNG图像:// _ "image/gif"// _ "image/png" _ "image/jpeg")func main() {// 解码JPEG数据。 如果从文件中读取,请创建一个阅读器// reader, err := os.Open("testdata/video-001.q50.420.jpeg")// if err != nil {// log.Fatal(err)// }// defer reader.Close() reader := base64.NewDecoder(base64.StdEncoding, strings.NewReader(data)) m, _, err := image.Decode(reader)if err != nil { log.Fatal(err)} bounds := m.Bounds()// 计算m的红色,绿色,蓝色和alpha分量的16-bin直方图。//// 图像的边界不一定从(0,0)开始,因此两个循环开始// 在bounds.Min.Y和bounds.Min.X。 首先循环Y和X秒更多// 可能导致比X first和Y second更好的内存访问模式。var histogram [16][4]intfor y := bounds.Min.Y; y < bounds.Max.Y; y++ {for x := bounds.Min.X; x < bounds.Max.X; x++ { r, g, b, a := m.At(x, y).RGBA()// 颜色的RGBA方法返回[0,65535]范围内的值。// 移位12将其减小到[0,15] .g的范围 histogram[r>>12][0]++ histogram[g>>12][1]++ histogram[b>>12][2]++ histogram[a>>12][3]++}}// 打印结果。 fmt.Printf("%-14s %6s %6s %6s %6s\n", "bin", "red", "green", "blue", "alpha")for i, x := range histogram { fmt.Printf("0x%04x-0x%04x: %6d %6d %6d %6d\n", i<<12, (i+1)<<12-1, x[0], x[1], x[2], x[3])}}const data = ` /9j/4AAQSkZJRgABAQIAHAAcAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdA SFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2Nj Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAARCABnAJYDASIAAhEBAxEB/8QA HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW V1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQF BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq 8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDlwKMD0pwzSiuK57QzGDxS7D6in8Y5ximnAPUfSlcq4m3ilUYp 2OKXHvRcVxnTtS7c07HNFK4DQPakC4PNOA+tOx70XAjK/So5gBGP94fzqfvUVx/qxx/EP51UXqRP4WSE cmgjilP3jSEZqS0IO/NGDnpUiocDg/McDjvV6HTPOdVWYgsM5KcfzzQ2JySM2jp6VYu7SWzmMUwG4cgj kMPUVBjjtTGtRu0Zopw+lFFxhinrGzuqqMsxAA9yaXFSRv5cqSEcIwYj6GpuZ30O30fSLKzhUpbpNMv3 5XGTn29BV28jt7pPLuIVljPBBFVreYx+VbqAjycgt3x14zRcNOxGyVFHQkIc/wA61exyKLbuzjdZ046d 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 `
变量
func RegisterFormat(name, magic string, decode func(io.Reader) (Image, error), decodeConfig func(io.Reader) (Config, error))
type Alpha
func NewAlpha(r Rectangle) *Alpha
func (p *Alpha) AlphaAt(x, y int) color.Alpha
func (p *Alpha) At(x, y int) color.Color
func (p *Alpha) Bounds() Rectangle
func (p *Alpha) ColorModel() color.Model
func (p *Alpha) Opaque() bool
func (p *Alpha) PixOffset(x, y int) int
func (p *Alpha) Set(x, y int, c color.Color)
func (p *Alpha) SetAlpha(x, y int, c color.Alpha)
func (p *Alpha) SubImage(r Rectangle) Image
type Alpha16
func NewAlpha16(r Rectangle) *Alpha16
func (p *Alpha16) Alpha16At(x, y int) color.Alpha16
func (p *Alpha16) At(x, y int) color.Color
func (p *Alpha16) Bounds() Rectangle
func (p *Alpha16) ColorModel() color.Model
func (p *Alpha16) Opaque() bool
func (p *Alpha16) PixOffset(x, y int) int
func (p *Alpha16) Set(x, y int, c color.Color)
func (p *Alpha16) SetAlpha16(x, y int, c color.Alpha16)
func (p *Alpha16) SubImage(r Rectangle) Image
type CMYK
func NewCMYK(r Rectangle) *CMYK
func (p *CMYK) At(x, y int) color.Color
func (p *CMYK) Bounds() Rectangle
func (p *CMYK) CMYKAt(x, y int) color.CMYK
func (p *CMYK) ColorModel() color.Model
func (p *CMYK) Opaque() bool
func (p *CMYK) PixOffset(x, y int) int
func (p *CMYK) Set(x, y int, c color.Color)
func (p *CMYK) SetCMYK(x, y int, c color.CMYK)
func (p *CMYK) SubImage(r Rectangle) Image
type Config
func DecodeConfig(r io.Reader) (Config, string, error)
type Gray
func NewGray(r Rectangle) *Gray
func (p *Gray) At(x, y int) color.Color
func (p *Gray) Bounds() Rectangle
func (p *Gray) ColorModel() color.Model
func (p *Gray) GrayAt(x, y int) color.Gray
func (p *Gray) Opaque() bool
func (p *Gray) PixOffset(x, y int) int
func (p *Gray) Set(x, y int, c color.Color)
func (p *Gray) SetGray(x, y int, c color.Gray)
func (p *Gray) SubImage(r Rectangle) Image
type Gray16
func NewGray16(r Rectangle) *Gray16
func (p *Gray16) At(x, y int) color.Color
func (p *Gray16) Bounds() Rectangle
func (p *Gray16) ColorModel() color.Model
func (p *Gray16) Gray16At(x, y int) color.Gray16
func (p *Gray16) Opaque() bool
func (p *Gray16) PixOffset(x, y int) int
func (p *Gray16) Set(x, y int, c color.Color)
func (p *Gray16) SetGray16(x, y int, c color.Gray16)
func (p *Gray16) SubImage(r Rectangle) Image
type Image
func Decode(r io.Reader) (Image, string, error)
type NRGBA
func NewNRGBA(r Rectangle) *NRGBA
func (p *NRGBA) At(x, y int) color.Color
func (p *NRGBA) Bounds() Rectangle
func (p *NRGBA) ColorModel() color.Model
func (p *NRGBA) NRGBAAt(x, y int) color.NRGBA
func (p *NRGBA) Opaque() bool
func (p *NRGBA) PixOffset(x, y int) int
func (p *NRGBA) Set(x, y int, c color.Color)
func (p *NRGBA) SetNRGBA(x, y int, c color.NRGBA)
func (p *NRGBA) SubImage(r Rectangle) Image
type NRGBA64
func NewNRGBA64(r Rectangle) *NRGBA64
func (p *NRGBA64) At(x, y int) color.Color
func (p *NRGBA64) Bounds() Rectangle
func (p *NRGBA64) ColorModel() color.Model
func (p *NRGBA64) NRGBA64At(x, y int) color.NRGBA64
func (p *NRGBA64) Opaque() bool
func (p *NRGBA64) PixOffset(x, y int) int
func (p *NRGBA64) Set(x, y int, c color.Color)
func (p *NRGBA64) SetNRGBA64(x, y int, c color.NRGBA64)
func (p *NRGBA64) SubImage(r Rectangle) Image
type NYCbCrA
func NewNYCbCrA(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *NYCbCrA
func (p *NYCbCrA) AOffset(x, y int) int
func (p *NYCbCrA) At(x, y int) color.Color
func (p *NYCbCrA) ColorModel() color.Model
func (p *NYCbCrA) NYCbCrAAt(x, y int) color.NYCbCrA
func (p *NYCbCrA) Opaque() bool
func (p *NYCbCrA) SubImage(r Rectangle) Image
type Paletted
func NewPaletted(r Rectangle, p color.Palette) *Paletted
func (p *Paletted) At(x, y int) color.Color
func (p *Paletted) Bounds() Rectangle
func (p *Paletted) ColorIndexAt(x, y int) uint8
func (p *Paletted) ColorModel() color.Model
func (p *Paletted) Opaque() bool
func (p *Paletted) PixOffset(x, y int) int
func (p *Paletted) Set(x, y int, c color.Color)
func (p *Paletted) SetColorIndex(x, y int, index uint8)
func (p *Paletted) SubImage(r Rectangle) Image
type PalettedImage
type Point
func Pt(X, Y int) Point
func (p Point) Add(q Point) Point
func (p Point) Div(k int) Point
func (p Point) Eq(q Point) bool
func (p Point) In(r Rectangle) bool
func (p Point) Mod(r Rectangle) Point
func (p Point) Mul(k int) Point
func (p Point) String() string
func (p Point) Sub(q Point) Point
type RGBA
func NewRGBA(r Rectangle) *RGBA
func (p *RGBA) At(x, y int) color.Color
func (p *RGBA) Bounds() Rectangle
func (p *RGBA) ColorModel() color.Model
func (p *RGBA) Opaque() bool
func (p *RGBA) PixOffset(x, y int) int
func (p *RGBA) RGBAAt(x, y int) color.RGBA
func (p *RGBA) Set(x, y int, c color.Color)
func (p *RGBA) SetRGBA(x, y int, c color.RGBA)
func (p *RGBA) SubImage(r Rectangle) Image
type RGBA64
func NewRGBA64(r Rectangle) *RGBA64
func (p *RGBA64) At(x, y int) color.Color
func (p *RGBA64) Bounds() Rectangle
func (p *RGBA64) ColorModel() color.Model
func (p *RGBA64) Opaque() bool
func (p *RGBA64) PixOffset(x, y int) int
func (p *RGBA64) RGBA64At(x, y int) color.RGBA64
func (p *RGBA64) Set(x, y int, c color.Color)
func (p *RGBA64) SetRGBA64(x, y int, c color.RGBA64)
func (p *RGBA64) SubImage(r Rectangle) Image
type Rectangle
func Rect(x0, y0, x1, y1 int) Rectangle
func (r Rectangle) Add(p Point) Rectangle
func (r Rectangle) At(x, y int) color.Color
func (r Rectangle) Bounds() Rectangle
func (r Rectangle) Canon() Rectangle
func (r Rectangle) ColorModel() color.Model
func (r Rectangle) Dx() int
func (r Rectangle) Dy() int
func (r Rectangle) Empty() bool
func (r Rectangle) Eq(s Rectangle) bool
func (r Rectangle) In(s Rectangle) bool
func (r Rectangle) Inset(n int) Rectangle
func (r Rectangle) Intersect(s Rectangle) Rectangle
func (r Rectangle) Overlaps(s Rectangle) bool
func (r Rectangle) Size() Point
func (r Rectangle) String() string
func (r Rectangle) Sub(p Point) Rectangle
func (r Rectangle) Union(s Rectangle) Rectangle
type Uniform
func NewUniform(c color.Color) *Uniform
func (c *Uniform) At(x, y int) color.Color
func (c *Uniform) Bounds() Rectangle
func (c *Uniform) ColorModel() color.Model
func (c *Uniform) Convert(color.Color) color.Color
func (c *Uniform) Opaque() bool
func (c *Uniform) RGBA() (r, g, b, a uint32)
type YCbCr
func NewYCbCr(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *YCbCr
func (p *YCbCr) At(x, y int) color.Color
func (p *YCbCr) Bounds() Rectangle
func (p *YCbCr) COffset(x, y int) int
func (p *YCbCr) ColorModel() color.Model
func (p *YCbCr) Opaque() bool
func (p *YCbCr) SubImage(r Rectangle) Image
func (p *YCbCr) YCbCrAt(x, y int) color.YCbCr
func (p *YCbCr) YOffset(x, y int) int
type YCbCrSubsampleRatio
func (s YCbCrSubsampleRatio) String() string
打包
format.go geom.go image.go names.go ycbcr.go
var ( // Black is an opaque black uniform image. Black = NewUniform(color.Black) // White is an opaque white uniform image. White = NewUniform(color.White) // Transparent is a fully transparent uniform image. Transparent = NewUniform(color.Transparent) // Opaque is a fully opaque uniform image. Opaque = NewUniform(color.Opaque))
ErrFormat 表示解码遇到未知格式。
var ErrFormat = errors.New("image: unknown format")
func RegisterFormat(name, magic string, decode func(io.Reader) (Image, error), decodeConfig func(io.Reader) (Config, error))
RegisterFormat 注册一个图像格式供 Decode 使用。名称是格式的名称,如“jpeg”或“png”。魔术是识别格式编码的魔术前缀。魔术串可以包含“?” 通配符,每个匹配任何一个字节。解码是解码编码图像的功能。DecodeConfig 是只解码其配置的功能。
Alpha 是一个内存中的图像,其 At 方法返回 color.Alpha 值。
type Alpha struct { // Pix holds the image's pixels, as alpha values. The pixel at // (x, y) starts at Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*1]. Pix []uint8 // Stride is the Pix stride (in bytes) between vertically adjacent pixels. Stride int // Rect is the image's bounds. Rect Rectangle}
func NewAlpha(r Rectangle) *Alpha
NewAlpha 返回具有给定边界的新 Alpha 图像。
func (p *Alpha) AlphaAt(x, y int) color.Alpha
func (p *Alpha) At(x, y int) color.Color
func (p *Alpha) Bounds() Rectangle
func (p *Alpha) ColorModel() color.Model
func (p *Alpha) Opaque() bool
不透明扫描整个图像并报告它是否完全不透明。
func (p *Alpha) PixOffset(x, y int) int
PixOffset 返回对应于 (x, y) 处像素的 Pix 的第一个元素的索引。
func (p *Alpha) Set(x, y int, c color.Color)
func (p *Alpha) SetAlpha(x, y int, c color.Alpha)
func (p *Alpha) SubImage(r Rectangle) Image
SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。
Alpha16 是一个内存中的图像,其 At 方法返回 color.Alpha16 值。
type Alpha16 struct { // Pix holds the image's pixels, as alpha values in big-endian format. The pixel at // (x, y) starts at Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*2]. Pix []uint8 // Stride is the Pix stride (in bytes) between vertically adjacent pixels. Stride int // Rect is the image's bounds. Rect Rectangle}
func NewAlpha16(r Rectangle) *Alpha16
NewAlpha16 返回具有给定边界的新 Alpha16 图像。
func (p *Alpha16) Alpha16At(x, y int) color.Alpha16
func (p *Alpha16) At(x, y int) color.Color
func (p *Alpha16) Bounds() Rectangle
func (p *Alpha16) ColorModel() color.Model
func (p *Alpha16) Opaque() bool
不透明扫描整个图像并报告它是否完全不透明。
func (p *Alpha16) PixOffset(x, y int) int
PixOffset 返回对应于(x, y) 处像素的 Pix 的第一个元素的索引。
func (p *Alpha16) Set(x, y int, c color.Color)
func (p *Alpha16) SetAlpha16(x, y int, c color.Alpha16)
func (p *Alpha16) SubImage(r Rectangle) Image
SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。
CMYK 是一个内存中的图像,其 At 方法返回 color.CMYK 值。
type CMYK struct { // Pix holds the image's pixels, in C, M, Y, K order. The pixel at // (x, y) starts at Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*4]. Pix []uint8 // Stride is the Pix stride (in bytes) between vertically adjacent pixels. Stride int // Rect is the image's bounds. Rect Rectangle}
func NewCMYK(r Rectangle) *CMYK
NewCMYK 返回具有给定边界的新 CMYK 图像。
func (p *CMYK) At(x, y int) color.Color
func (p *CMYK) Bounds() Rectangle
func (p *CMYK) CMYKAt(x, y int) color.CMYK
func (p *CMYK) ColorModel() color.Model
func (p *CMYK) Opaque() bool
不透明扫描整个图像并报告它是否完全不透明。
func (p *CMYK) PixOffset(x, y int) int
PixOffset 返回对应于 (x, y) 处像素的 Pix 的第一个元素的索引。
func (p *CMYK) Set(x, y int, c color.Color)
func (p *CMYK) SetCMYK(x, y int, c color.CMYK)
func (p *CMYK) SubImage(r Rectangle) Image
SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。
配置保存图像的颜色模型和尺寸。
type Config struct { ColorModel color.Model Width, Height int}
func DecodeConfig(r io.Reader) (Config, string, error)
DecodeConfig 解码以注册格式编码的图像的颜色模型和尺寸。返回的字符串是格式注册时使用的格式名称。格式注册通常由编解码器专用包中的 init 函数完成。
Gray 是一个内存中的图像,其 At 方法返回 color.Gray 值。
type Gray struct { // Pix holds the image's pixels, as gray values. The pixel at // (x, y) starts at Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*1]. Pix []uint8 // Stride is the Pix stride (in bytes) between vertically adjacent pixels. Stride int // Rect is the image's bounds. Rect Rectangle}
func NewGray(r Rectangle) *Gray
NewGray 返回给定范围的新灰度图像。
func (p *Gray) At(x, y int) color.Color
func (p *Gray) Bounds() Rectangle
func (p *Gray) ColorModel() color.Model
func (p *Gray) GrayAt(x, y int) color.Gray
func (p *Gray) Opaque() bool
不透明扫描整个图像并报告它是否完全不透明。
func (p *Gray) PixOffset(x, y int) int
PixOffset 返回对应于 (x, y) 处像素的 Pix 的第一个元素的索引。
func (p *Gray) Set(x, y int, c color.Color)
func (p *Gray) SetGray(x, y int, c color.Gray)
func (p *Gray) SubImage(r Rectangle) Image
SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。
Gray16 是一个内存中的图像,其 At 方法返回 color.Gray16 值。
type Gray16 struct { // Pix holds the image's pixels, as gray values in big-endian format. The pixel at // (x, y) starts at Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*2]. Pix []uint8 // Stride is the Pix stride (in bytes) between vertically adjacent pixels. Stride int // Rect is the image's bounds. Rect Rectangle}
func NewGray16(r Rectangle) *Gray16
NewGray16 返回一个具有给定边界的新的 Gray16 图像。
func (p *Gray16) At(x, y int) color.Color
func (p *Gray16) Bounds() Rectangle
func (p *Gray16) ColorModel() color.Model
func (p *Gray16) Gray16At(x, y int) color.Gray16
func (p *Gray16) Opaque() bool
不透明扫描整个图像并报告它是否完全不透明。
func (p *Gray16) PixOffset(x, y int) int
PixOffset 返回对应于 (x, y) 处像素的 Pix 的第一个元素的索引。
func (p *Gray16) Set(x, y int, c color.Color)
func (p *Gray16) SetGray16(x, y int, c color.Gray16)
func (p *Gray16) SubImage(r Rectangle) Image
SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。
图像是颜色的有限长方形网格。颜色值取自颜色模型。
type Image interface { // ColorModel returns the Image's color model. ColorModel() color.Model // Bounds returns the domain for which At can return non-zero color. // The bounds do not necessarily contain the point (0, 0). Bounds() Rectangle // At returns the color of the pixel at (x, y). // At(Bounds().Min.X, Bounds().Min.Y) returns the upper-left pixel of the grid. // At(Bounds().Max.X-1, Bounds().Max.Y-1) returns the lower-right one. At(x, y int) color.Color}
func Decode(r io.Reader) (Image, string, error)
Decode 解码已经以注册格式编码的图像。返回的字符串是格式注册时使用的格式名称。格式注册通常由代码专用包中的初始化函数完成。
NRGBA 是一个内存中的图像,其 At 方法返回 color.NRGBA 值。
type NRGBA struct { // Pix holds the image's pixels, in R, G, B, A order. The pixel at // (x, y) starts at Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*4]. Pix []uint8 // Stride is the Pix stride (in bytes) between vertically adjacent pixels. Stride int // Rect is the image's bounds. Rect Rectangle}
func NewNRGBA(r Rectangle) *NRGBA
NewNRGBA 返回具有给定范围的新 NRGBA 图像。
func (p *NRGBA) At(x, y int) color.Color
func (p *NRGBA) Bounds() Rectangle
func (p *NRGBA) ColorModel() color.Model
func (p *NRGBA) NRGBAAt(x, y int) color.NRGBA
func (p *NRGBA) Opaque() bool
不透明扫描整个图像并报告它是否完全不透明。
func (p *NRGBA) PixOffset(x, y int) int
PixOffset 返回对应于 (x, y) 处像素的 Pix 的第一个元素的索引。
func (p *NRGBA) Set(x, y int, c color.Color)
func (p *NRGBA) SetNRGBA(x, y int, c color.NRGBA)
func (p *NRGBA) SubImage(r Rectangle) Image
SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。
NRGBA64 是一个内存中的图像,其 At 方法返回 color.NRGBA64 值。
type NRGBA64 struct { // Pix holds the image's pixels, in R, G, B, A order and big-endian format. The pixel at // (x, y) starts at Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*8]. Pix []uint8 // Stride is the Pix stride (in bytes) between vertically adjacent pixels. Stride int // Rect is the image's bounds. Rect Rectangle}
func NewNRGBA64(r Rectangle) *NRGBA64
NewNRGBA64 返回具有给定边界的新 NRGBA64 图像。
func (p *NRGBA64) At(x, y int) color.Color
func (p *NRGBA64) Bounds() Rectangle
func (p *NRGBA64) ColorModel() color.Model
func (p *NRGBA64) NRGBA64At(x, y int) color.NRGBA64
func (p *NRGBA64) Opaque() bool
Opaque scans the entire image and reports whether it is fully opaque.
func (p *NRGBA64) PixOffset(x, y int) int
PixOffset returns the index of the first element of Pix that corresponds to the pixel at (x, y).
func (p *NRGBA64) Set(x, y int, c color.Color)
func (p *NRGBA64) SetNRGBA64(x, y int, c color.NRGBA64)
func (p *NRGBA64) SubImage(r Rectangle) Image
SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。
NYCbCrA 是非 alpha 预乘 Y'CbCr-alpha 颜色的内存映像。A 和 AStride 类似于嵌入式 YCbCr 的 Y 和 YStride 字段。
type NYCbCrA struct { YCbCr A []uint8 AStride int}
func NewNYCbCrA(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *NYCbCrA
NewNYCbCrA 返回具有给定边界和子采样比率的新 NYCbCrA 图像。
func (p *NYCbCrA) AOffset(x, y int) int
AOffset 返回对应于 (x, y) 处像素的 A 的第一个元素的索引。
func (p *NYCbCrA) At(x, y int) color.Color
func (p *NYCbCrA) ColorModel() color.Model
func (p *NYCbCrA) NYCbCrAAt(x, y int) color.NYCbCrA
func (p *NYCbCrA) Opaque() bool
不透明扫描整个图像并报告它是否完全不透明。
func (p *NYCbCrA) SubImage(r Rectangle) Image
SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。
Paletted 是指定调色板中 uint8 索引的内存映像。
type Paletted struct { // Pix holds the image's pixels, as palette indices. The pixel at // (x, y) starts at Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*1]. Pix []uint8 // Stride is the Pix stride (in bytes) between vertically adjacent pixels. Stride int // Rect is the image's bounds. Rect Rectangle // Palette is the image's palette. Palette color.Palette}
func NewPaletted(r Rectangle, p color.Palette) *Paletted
NewPaletted 用给定的宽度,高度和调色板返回一个新的 Paletted 图像。
func (p *Paletted) At(x, y int) color.Color
func (p *Paletted) Bounds() Rectangle
func (p *Paletted) ColorIndexAt(x, y int) uint8
func (p *Paletted) ColorModel() color.Model
func (p *Paletted) Opaque() bool
不透明扫描整个图像并报告它是否完全不透明。
func (p *Paletted) PixOffset(x, y int) int
PixOffset 返回对应于 (x, y) 处像素的 Pix 的第一个元素的索引。
func (p *Paletted) Set(x, y int, c color.Color)
func (p *Paletted) SetColorIndex(x, y int, index uint8)
func (p *Paletted) SubImage(r Rectangle) Image
SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。
PalettedImage 是一种图像,其颜色可能来自有限的调色板。如果 m 是 PalettedImage并且 m.ColorModel() 返回一个 color.Palette p,则 m.At(x,y) 应该等于 pm.ColorIndexAt(x,y) 。如果 m 的颜色模型不是 color.Palette,那么 ColorIndexAt 的行为是未定义的。
type PalettedImage interface { // ColorIndexAt返回(x,y)处像素的调色板索引。 ColorIndexAt(x, y int) uint8 Image}
一个点是一个 X,Y 坐标对。轴向右和向下增加。
type Point struct { X, Y int}
ZP is the zero Point.
var ZP Point
func Pt(X, Y int) Point
Pt is shorthand for Point{X, Y}.
func (p Point) Add(q Point) Point
Add returns the vector p+q.
func (p Point) Div(k int) Point
Div返回向量 p/k。
func (p Point) Eq(q Point) bool
Eq 报告 p 和 q 是否相等。
func (p Point) In(r Rectangle) bool
在报告中p是否在r中。
func (p Point) Mod(r Rectangle) Point
Mod返回r中的点q,使得pX-qX是r的宽度的倍数,并且pY-qY是r的高度的倍数。
func (p Point) Mul(k int) Point
Mul 返回向量 p*k。
func (p Point) String() string
String返回p的字符串表示形式,如“(3,4)”。
func (p Point) Sub(q Point) Point
Sub 返回向量 pq。
RGBA是一个内存中的图像,其At方法返回color.RGBA值。
type RGBA struct { // Pix holds the image's pixels, in R, G, B, A order. The pixel at // (x, y) starts at Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*4]. Pix []uint8 // Stride is the Pix stride (in bytes) between vertically adjacent pixels. Stride int // Rect is the image's bounds. Rect Rectangle}
func NewRGBA(r Rectangle) *RGBA
NewRGBA返回具有给定边界的新RGBA图像。
func (p *RGBA) At(x, y int) color.Color
func (p *RGBA) Bounds() Rectangle
func (p *RGBA) ColorModel() color.Model
func (p *RGBA) Opaque() bool
不透明扫描整个图像并报告它是否完全不透明。
func (p *RGBA) PixOffset(x, y int) int
PixOffset 返回对应于(x,y)处像素的 Pix 的第一个元素的索引。
func (p *RGBA) RGBAAt(x, y int) color.RGBA
func (p *RGBA) Set(x, y int, c color.Color)
func (p *RGBA) SetRGBA(x, y int, c color.RGBA)
func (p *RGBA) SubImage(r Rectangle) Image
SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。
RGBA64 是一个内存中的图像,其 At 方法返回 color.RGBA64 值。
type RGBA64 struct { // Pix holds the image's pixels, in R, G, B, A order and big-endian format. The pixel at // (x, y) starts at Pix[(y-Rect.Min.Y)*Stride + (x-Rect.Min.X)*8]. Pix []uint8 // Stride is the Pix stride (in bytes) between vertically adjacent pixels. Stride int // Rect is the image's bounds. Rect Rectangle}
func NewRGBA64(r Rectangle) *RGBA64
NewRGBA64 返回具有给定边界的新 RGBA64 图像。
func (p *RGBA64) At(x, y int) color.Color
func (p *RGBA64) Bounds() Rectangle
func (p *RGBA64) ColorModel() color.Model
func (p *RGBA64) Opaque() bool
不透明扫描整个图像并报告它是否完全不透明。
func (p *RGBA64) PixOffset(x, y int) int
PixOffset 返回对应于 (x,y) 处像素的 Pix 的第一个元素的索引。
func (p *RGBA64) RGBA64At(x, y int) color.RGBA64
func (p *RGBA64) Set(x, y int, c color.Color)
func (p *RGBA64) SetRGBA64(x, y int, c color.RGBA64)
func (p *RGBA64) SubImage(r Rectangle) Image
SubImage 返回一个图像,表示图像 p 通过 r 可见的部分。返回的值与原始图像共享像素。
矩形包含 Min.X <= X <Max.X,Min.Y <= Y <Max.Y 的点。如果 Min.X <= Max.X,并且对于 Y 也是一样,那么它是良构的。点总是良构的。矩形的方法总是为格式良好的输入返回格式良好的输出。
矩形也是一个图像,其边界是矩形本身。返回 color.Opaque 矩形和颜色中的点,否则返回透明。
type Rectangle struct { Min, Max Point}
ZR是零矩形。
var ZR Rectangle
func Rect(x0, y0, x1, y1 int) Rectangle
Rect 是矩形 {Pt(x0, y0), Pt(x1, y1)} 的简写。如果需要,返回的矩形将交换最小和最大坐标,以使其格式良好。
func (r Rectangle) Add(p Point) Rectangle
Add 返回由 p 翻译的矩形 r。
func (r Rectangle) At(x, y int) color.Color
At 实现 Image 界面。
func (r Rectangle) Bounds() Rectangle
Bounds实现了图像界面。
func (r Rectangle) Canon() Rectangle
Canon返回r的规范版本。如果需要,返回的矩形将交换最小和最大坐标,以使其格式良好。
func (r Rectangle) ColorModel() color.Model
ColorModel 实现了 Image 界面。
func (r Rectangle) Dx() int
Dx 返回 r 的宽度。
func (r Rectangle) Dy() int
Dy 返回 r 的高度。
func (r Rectangle) Empty() bool
空报告矩形是否不包含点。
func (r Rectangle) Eq(s Rectangle) bool
Eq 报告 r 和 s 是否包含相同的一组点。所有空矩形都被认为是相等的。
In 报告 r 中的每个点是否在s中。
func (r Rectangle) Inset(n int) Rectangle
Inset 返回 n 的矩形 r,这可能是负数。如果 r的任何一个维度小于2 * n,则 r 中心附近的空矩形将被返回。
func (r Rectangle) Intersect(s Rectangle) Rectangle
Intersect 返回 r 和 s 所包含的最大矩形。如果两个矩形不重叠,则返回零矩形。
func (r Rectangle) Overlaps(s Rectangle) bool
Overlaps 报告 r 和 s 是否有非空的相交。
func (r Rectangle) Size() Point
Size 返回 r 的宽度和高度。
func (r Rectangle) String() string
字符串返回r的字符串表示形式,如“(3,4)-(6,5)”。
func (r Rectangle) Sub(p Point) Rectangle
Sub 返回由 -p 转换的矩形 r。
func (r Rectangle) Union(s Rectangle) Rectangle
Union 返回包含 r 和 s 的最小矩形。
Uniform 是统一颜色的无限大小的图像。它实现了 color.Color,color.Model 和 Image接口。
type Uniform struct { C color.Color}
func NewUniform(c color.Color) *Uniform
func (c *Uniform) At(x, y int) color.Color
func (c *Uniform) Bounds() Rectangle
func (c *Uniform) ColorModel() color.Model
func (c *Uniform) Convert(color.Color) color.Color
func (c *Uniform) Opaque() bool
Opaque扫描整个图像并报告它是否完全不透明。
func (c *Uniform) RGBA() (r, g, b, a uint32)
YCbCr是Y'CbCr颜色的内存映像。每像素有一个Y采样,但每个Cb和Cr采样可以跨越一个或多个像素。YStride是垂直相邻像素之间的Y切片索引增量。CStride是映射到分离色度样本的垂直相邻像素之间的Cb和Cr切片索引增量。这不是绝对的要求,但YStride和len(Y)通常是8的倍数,并且:
For 4:4:4, CStride == YStride/1 && len(Cb) == len(Cr) == len(Y)/1.For 4:2:2, CStride == YStride/2 && len(Cb) == len(Cr) == len(Y)/2.For 4:2:0, CStride == YStride/2 && len(Cb) == len(Cr) == len(Y)/4.For 4:4:0, CStride == YStride/1 && len(Cb) == len(Cr) == len(Y)/2.For 4:1:1, CStride == YStride/4 && len(Cb) == len(Cr) == len(Y)/4.For 4:1:0, CStride == YStride/4 && len(Cb) == len(Cr) == len(Y)/8.
type YCbCr struct { Y, Cb, Cr []uint8 YStride int CStride int SubsampleRatio YCbCrSubsampleRatio Rect Rectangle}
func NewYCbCr(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *YCbCr
NewYCbCr返回具有给定边界和子采样比率的新YCbCr图像。
func (p *YCbCr) At(x, y int) color.Color
func (p *YCbCr) Bounds() Rectangle
func (p *YCbCr) COffset(x, y int) int
COffset返回对应于(x,y)处像素的Cb或Cr的第一个元素的索引。
func (p *YCbCr) ColorModel() color.Model
func (p *YCbCr) Opaque() bool
func (p *YCbCr) SubImage(r Rectangle) Image
SubImage返回一个图像,表示图像p通过r可见的部分。返回的值与原始图像共享像素。
func (p *YCbCr) YCbCrAt(x, y int) color.YCbCr
func (p *YCbCr) YOffset(x, y int) int
YOffset返回对应于(x,y)处像素的Y的第一个元素的索引。
YCbCrSubsampleRatio是YCbCr图像中使用的色度子采样比率。
type YCbCrSubsampleRatio int
const ( YCbCrSubsampleRatio444 YCbCrSubsampleRatio = iota YCbCrSubsampleRatio422 YCbCrSubsampleRatio420 YCbCrSubsampleRatio440 YCbCrSubsampleRatio411 YCbCrSubsampleRatio410)
func (s YCbCrSubsampleRatio) String() string
Name | Synopsis |
---|---|
color | 包装颜色实现了一个基本的颜色库。 |
palette | 包调色板提供标准调色板。 |
draw | 包提取提供图像合成功能。 |
gif | 包gif实现了一个GIF图像解码器和编码器。 |
jpeg | 包jpeg实现了一个JPEG图像解码器和编码器。 |
png | 包png实现了一个PNG图像解码器和编码器。 |