?
This document uses PHP Chinese website manual Release
import "image"
概述
索引
示例
子目錄
圖像包實(shí)現(xiàn)了一個(gè)基本的二維圖像庫。
基本界面被稱為圖像。圖像包含圖像/顏色包中描述的顏色。
Image 接口的值可以通過調(diào)用諸如 NewRGBA 和 NewPaletted 之類的函數(shù)來創(chuàng)建,也可以通過在包含 GIF,JPEG或PNG等格式的圖像數(shù)據(jù)的 io.Reader 上調(diào)用 Decode 來創(chuàng)建。解碼任何特定的圖像格式需要預(yù)先注冊(cè)解碼器功能。注冊(cè)通常是自動(dòng)的,作為初始化格式包的副作用,因此,要解碼 PNG 圖像,只需要
import _ "image/png"
在一個(gè)程序的主要包裝中。意味著純粹為了初始化副作用導(dǎo)入一個(gè)包。
有關(guān)更多詳細(xì)信息,請(qǐng)參閱“Go圖像包”:https://golang.org/doc/articles/image_package.html
// 此示例演示如何解碼JPEG圖像并檢查其像素。package mainimport ("encoding/base64""fmt""image""log""strings"// image/jpeg包未在下面的代碼中明確使用,// 但導(dǎo)入的初始化副作用允許// image.Decode以了解JPEG格式的圖像。 取消注釋這// 兩行也能理解GIF和PNG圖像:// _ "image/gif"// _ "image/png" _ "image/jpeg")func main() {// 解碼JPEG數(shù)據(jù)。 如果從文件中讀取,請(qǐng)創(chuàng)建一個(gè)閱讀器// 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()// 計(jì)算m的紅色,綠色,藍(lán)色和alpha分量的16-bin直方圖。//// 圖像的邊界不一定從(0,0)開始,因此兩個(gè)循環(huán)開始// 在bounds.Min.Y和bounds.Min.X。 首先循環(huán)Y和X秒更多// 可能導(dǎo)致比X first和Y second更好的內(nèi)存訪問模式。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]范圍內(nèi)的值。// 移位12將其減小到[0,15] .g的范圍 histogram[r>>12][0]++ histogram[g>>12][1]++ histogram[b>>12][2]++ histogram[a>>12][3]++}}// 打印結(jié)果。 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 注冊(cè)一個(gè)圖像格式供 Decode 使用。名稱是格式的名稱,如“jpeg”或“png”。魔術(shù)是識(shí)別格式編碼的魔術(shù)前綴。魔術(shù)串可以包含“?” 通配符,每個(gè)匹配任何一個(gè)字節(jié)。解碼是解碼編碼圖像的功能。DecodeConfig 是只解碼其配置的功能。
Alpha 是一個(gè)內(nèi)存中的圖像,其 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
不透明掃描整個(gè)圖像并報(bào)告它是否完全不透明。
func (p *Alpha) PixOffset(x, y int) int
PixOffset 返回對(duì)應(yīng)于 (x, y) 處像素的 Pix 的第一個(gè)元素的索引。
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 返回一個(gè)圖像,表示圖像 p 通過 r 可見的部分。返回的值與原始圖像共享像素。
Alpha16 是一個(gè)內(nèi)存中的圖像,其 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
不透明掃描整個(gè)圖像并報(bào)告它是否完全不透明。
func (p *Alpha16) PixOffset(x, y int) int
PixOffset 返回對(duì)應(yīng)于(x, y) 處像素的 Pix 的第一個(gè)元素的索引。
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 返回一個(gè)圖像,表示圖像 p 通過 r 可見的部分。返回的值與原始圖像共享像素。
CMYK 是一個(gè)內(nèi)存中的圖像,其 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
不透明掃描整個(gè)圖像并報(bào)告它是否完全不透明。
func (p *CMYK) PixOffset(x, y int) int
PixOffset 返回對(duì)應(yīng)于 (x, y) 處像素的 Pix 的第一個(gè)元素的索引。
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 返回一個(gè)圖像,表示圖像 p 通過 r 可見的部分。返回的值與原始圖像共享像素。
配置保存圖像的顏色模型和尺寸。
type Config struct { ColorModel color.Model Width, Height int}
func DecodeConfig(r io.Reader) (Config, string, error)
DecodeConfig 解碼以注冊(cè)格式編碼的圖像的顏色模型和尺寸。返回的字符串是格式注冊(cè)時(shí)使用的格式名稱。格式注冊(cè)通常由編解碼器專用包中的 init 函數(shù)完成。
Gray 是一個(gè)內(nèi)存中的圖像,其 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
不透明掃描整個(gè)圖像并報(bào)告它是否完全不透明。
func (p *Gray) PixOffset(x, y int) int
PixOffset 返回對(duì)應(yīng)于 (x, y) 處像素的 Pix 的第一個(gè)元素的索引。
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 返回一個(gè)圖像,表示圖像 p 通過 r 可見的部分。返回的值與原始圖像共享像素。
Gray16 是一個(gè)內(nèi)存中的圖像,其 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 返回一個(gè)具有給定邊界的新的 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
不透明掃描整個(gè)圖像并報(bào)告它是否完全不透明。
func (p *Gray16) PixOffset(x, y int) int
PixOffset 返回對(duì)應(yīng)于 (x, y) 處像素的 Pix 的第一個(gè)元素的索引。
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 返回一個(gè)圖像,表示圖像 p 通過 r 可見的部分。返回的值與原始圖像共享像素。
圖像是顏色的有限長方形網(wǎng)格。顏色值取自顏色模型。
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 解碼已經(jīng)以注冊(cè)格式編碼的圖像。返回的字符串是格式注冊(cè)時(shí)使用的格式名稱。格式注冊(cè)通常由代碼專用包中的初始化函數(shù)完成。
NRGBA 是一個(gè)內(nèi)存中的圖像,其 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
不透明掃描整個(gè)圖像并報(bào)告它是否完全不透明。
func (p *NRGBA) PixOffset(x, y int) int
PixOffset 返回對(duì)應(yīng)于 (x, y) 處像素的 Pix 的第一個(gè)元素的索引。
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 返回一個(gè)圖像,表示圖像 p 通過 r 可見的部分。返回的值與原始圖像共享像素。
NRGBA64 是一個(gè)內(nèi)存中的圖像,其 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 返回一個(gè)圖像,表示圖像 p 通過 r 可見的部分。返回的值與原始圖像共享像素。
NYCbCrA 是非 alpha 預(yù)乘 Y'CbCr-alpha 顏色的內(nèi)存映像。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 返回對(duì)應(yīng)于 (x, y) 處像素的 A 的第一個(gè)元素的索引。
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
不透明掃描整個(gè)圖像并報(bào)告它是否完全不透明。
func (p *NYCbCrA) SubImage(r Rectangle) Image
SubImage 返回一個(gè)圖像,表示圖像 p 通過 r 可見的部分。返回的值與原始圖像共享像素。
Paletted 是指定調(diào)色板中 uint8 索引的內(nèi)存映像。
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 用給定的寬度,高度和調(diào)色板返回一個(gè)新的 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
不透明掃描整個(gè)圖像并報(bào)告它是否完全不透明。
func (p *Paletted) PixOffset(x, y int) int
PixOffset 返回對(duì)應(yīng)于 (x, y) 處像素的 Pix 的第一個(gè)元素的索引。
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 返回一個(gè)圖像,表示圖像 p 通過 r 可見的部分。返回的值與原始圖像共享像素。
PalettedImage 是一種圖像,其顏色可能來自有限的調(diào)色板。如果 m 是 PalettedImage并且 m.ColorModel() 返回一個(gè) color.Palette p,則 m.At(x,y) 應(yīng)該等于 pm.ColorIndexAt(x,y) 。如果 m 的顏色模型不是 color.Palette,那么 ColorIndexAt 的行為是未定義的。
type PalettedImage interface { // ColorIndexAt返回(x,y)處像素的調(diào)色板索引。 ColorIndexAt(x, y int) uint8 Image}
一個(gè)點(diǎn)是一個(gè) X,Y 坐標(biāo)對(duì)。軸向右和向下增加。
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 報(bào)告 p 和 q 是否相等。
func (p Point) In(r Rectangle) bool
在報(bào)告中p是否在r中。
func (p Point) Mod(r Rectangle) Point
Mod返回r中的點(diǎn)q,使得pX-qX是r的寬度的倍數(shù),并且pY-qY是r的高度的倍數(shù)。
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是一個(gè)內(nèi)存中的圖像,其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
不透明掃描整個(gè)圖像并報(bào)告它是否完全不透明。
func (p *RGBA) PixOffset(x, y int) int
PixOffset 返回對(duì)應(yīng)于(x,y)處像素的 Pix 的第一個(gè)元素的索引。
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 返回一個(gè)圖像,表示圖像 p 通過 r 可見的部分。返回的值與原始圖像共享像素。
RGBA64 是一個(gè)內(nèi)存中的圖像,其 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
不透明掃描整個(gè)圖像并報(bào)告它是否完全不透明。
func (p *RGBA64) PixOffset(x, y int) int
PixOffset 返回對(duì)應(yīng)于 (x,y) 處像素的 Pix 的第一個(gè)元素的索引。
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 返回一個(gè)圖像,表示圖像 p 通過 r 可見的部分。返回的值與原始圖像共享像素。
矩形包含 Min.X <= X <Max.X,Min.Y <= Y <Max.Y 的點(diǎn)。如果 Min.X <= Max.X,并且對(duì)于 Y 也是一樣,那么它是良構(gòu)的。點(diǎn)總是良構(gòu)的。矩形的方法總是為格式良好的輸入返回格式良好的輸出。
矩形也是一個(gè)圖像,其邊界是矩形本身。返回 color.Opaque 矩形和顏色中的點(diǎn),否則返回透明。
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)} 的簡寫。如果需要,返回的矩形將交換最小和最大坐標(biāo),以使其格式良好。
func (r Rectangle) Add(p Point) Rectangle
Add 返回由 p 翻譯的矩形 r。
func (r Rectangle) At(x, y int) color.Color
At 實(shí)現(xiàn) Image 界面。
func (r Rectangle) Bounds() Rectangle
Bounds實(shí)現(xiàn)了圖像界面。
func (r Rectangle) Canon() Rectangle
Canon返回r的規(guī)范版本。如果需要,返回的矩形將交換最小和最大坐標(biāo),以使其格式良好。
func (r Rectangle) ColorModel() color.Model
ColorModel 實(shí)現(xiàn)了 Image 界面。
func (r Rectangle) Dx() int
Dx 返回 r 的寬度。
func (r Rectangle) Dy() int
Dy 返回 r 的高度。
func (r Rectangle) Empty() bool
空?qǐng)?bào)告矩形是否不包含點(diǎn)。
func (r Rectangle) Eq(s Rectangle) bool
Eq 報(bào)告 r 和 s 是否包含相同的一組點(diǎn)。所有空矩形都被認(rèn)為是相等的。
In 報(bào)告 r 中的每個(gè)點(diǎn)是否在s中。
func (r Rectangle) Inset(n int) Rectangle
Inset 返回 n 的矩形 r,這可能是負(fù)數(shù)。如果 r的任何一個(gè)維度小于2 * n,則 r 中心附近的空矩形將被返回。
func (r Rectangle) Intersect(s Rectangle) Rectangle
Intersect 返回 r 和 s 所包含的最大矩形。如果兩個(gè)矩形不重疊,則返回零矩形。
func (r Rectangle) Overlaps(s Rectangle) bool
Overlaps 報(bào)告 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 轉(zhuǎn)換的矩形 r。
func (r Rectangle) Union(s Rectangle) Rectangle
Union 返回包含 r 和 s 的最小矩形。
Uniform 是統(tǒng)一顏色的無限大小的圖像。它實(shí)現(xiàn)了 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掃描整個(gè)圖像并報(bào)告它是否完全不透明。
func (c *Uniform) RGBA() (r, g, b, a uint32)
YCbCr是Y'CbCr顏色的內(nèi)存映像。每像素有一個(gè)Y采樣,但每個(gè)Cb和Cr采樣可以跨越一個(gè)或多個(gè)像素。YStride是垂直相鄰像素之間的Y切片索引增量。CStride是映射到分離色度樣本的垂直相鄰像素之間的Cb和Cr切片索引增量。這不是絕對(duì)的要求,但YStride和len(Y)通常是8的倍數(shù),并且:
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返回對(duì)應(yīng)于(x,y)處像素的Cb或Cr的第一個(gè)元素的索引。
func (p *YCbCr) ColorModel() color.Model
func (p *YCbCr) Opaque() bool
func (p *YCbCr) SubImage(r Rectangle) Image
SubImage返回一個(gè)圖像,表示圖像p通過r可見的部分。返回的值與原始圖像共享像素。
func (p *YCbCr) YCbCrAt(x, y int) color.YCbCr
func (p *YCbCr) YOffset(x, y int) int
YOffset返回對(duì)應(yīng)于(x,y)處像素的Y的第一個(gè)元素的索引。
YCbCrSubsampleRatio是YCbCr圖像中使用的色度子采樣比率。
type YCbCrSubsampleRatio int
const ( YCbCrSubsampleRatio444 YCbCrSubsampleRatio = iota YCbCrSubsampleRatio422 YCbCrSubsampleRatio420 YCbCrSubsampleRatio440 YCbCrSubsampleRatio411 YCbCrSubsampleRatio410)
func (s YCbCrSubsampleRatio) String() string
Name | Synopsis |
---|---|
color | 包裝顏色實(shí)現(xiàn)了一個(gè)基本的顏色庫。 |
palette | 包調(diào)色板提供標(biāo)準(zhǔn)調(diào)色板。 |
draw | 包提取提供圖像合成功能。 |
gif | 包gif實(shí)現(xiàn)了一個(gè)GIF圖像解碼器和編碼器。 |
jpeg | 包jpeg實(shí)現(xiàn)了一個(gè)JPEG圖像解碼器和編碼器。 |
png | 包png實(shí)現(xiàn)了一個(gè)PNG圖像解碼器和編碼器。 |