Spec-Zone.ru › Go

Пакет image

  • import "image"
  • Обзор
  • Указатель
  • Примеры
  • Подкаталоги

Обзор

Пакет image реализует базовую библиотеку для работы с двумерными изображениями.

Основной интерфейс называется Image. Image содержит цвета, описание которых находится в пакете image/color.

Значения интерфейса Image создаются либо вызовом таких функций, как NewRGBA и NewPaletted, либо вызовом Decode для io.Reader, содержащего данные изображения в таком формате, как GIF, JPEG или PNG. Для декодирования изображения в конкретном формате необходимо предварительно зарегистрировать функцию-декодер. Обычно регистрация происходит автоматически при инициализации пакета соответствующего формата, поэтому для декодирования изображения PNG достаточно добавить

import _ "image/png"

в основной пакет программы. Символ _ означает, что пакет импортируется только ради побочных эффектов его инициализации.

Подробнее см. в статье «Пакет изображений Go»: https://golang.org/doc/articles/image_package.html

Вопросы безопасности

Пакет image можно использовать для разбора изображений произвольно большого размера, что может привести к исчерпанию ресурсов на машинах, которым не хватает памяти для их хранения. При обработке произвольных изображений следует вызвать DecodeConfig до вызова Decode, чтобы программа могла определить, можно ли безопасно декодировать изображение, исходя из заголовка, возвращённого функцией, и имеющихся ресурсов. Вызов Decode, создающий чрезвычайно большое изображение согласно заголовку, возвращённому DecodeConfig, не считается проблемой безопасности независимо от того, повреждено ли само изображение. Вызов DecodeConfig, возвращающий заголовок, не соответствующий изображению, возвращённому Decode, может считаться проблемой безопасности; о нём следует сообщить в соответствии с политикой безопасности Go.

Пример

Код:

// Decode the JPEG data. If reading from file, create a reader with
//
// 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()

// Calculate a 16-bin histogram for m's red, green, blue and alpha components.
//
// An image's bounds do not necessarily start at (0, 0), so the two loops start
// at bounds.Min.Y and bounds.Min.X. Looping over Y first and X second is more
// likely to result in better memory access patterns than X first and Y second.
var histogram [16][4]int
for 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()
        // A color's RGBA method returns values in the range [0, 65535].
        // Shifting by 12 reduces this to the range [0, 15].
        histogram[r>>12][0]++
        histogram[g>>12][1]++
        histogram[b>>12][2]++
        histogram[a>>12][3]++
    }
}

// Print the results.
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])
}

Вывод:

bin               red  green   blue  alpha
0x0000-0x0fff:    362    793   7245      0
0x1000-0x1fff:    648   2963   1036      0
0x2000-0x2fff:   1072   2301    977      0
0x3000-0x3fff:    819   2266    982      0
0x4000-0x4fff:    537   1303    541      0
0x5000-0x5fff:    321    964    261      0
0x6000-0x6fff:    321    375    177      0
0x7000-0x7fff:    599    278    213      0
0x8000-0x8fff:   3478    228    275      0
0x9000-0x9fff:   2260    233    328      0
0xa000-0xafff:    921    282    374      0
0xb000-0xbfff:    322    335    395      0
0xc000-0xcfff:    228    388    299      0
0xd000-0xdfff:    261    415    277      0
0xe000-0xefff:    516    423    297      0
0xf000-0xffff:   2785   1903   1773  15450

Пример (DecodeConfig)

Код:

reader := base64.NewDecoder(base64.StdEncoding, strings.NewReader(data))
config, format, err := image.DecodeConfig(reader)
if err != nil {
    log.Fatal(err)
}
fmt.Println("Width:", config.Width, "Height:", config.Height, "Format:", format)

Указатель

  • Переменные
  • 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) RGBA64At(x, y int) color.RGBA64
  • func (p *Alpha) Set(x, y int, c color.Color)
  • func (p *Alpha) SetAlpha(x, y int, c color.Alpha)
  • func (p *Alpha) SetRGBA64(x, y int, c color.RGBA64)
  • 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) RGBA64At(x, y int) color.RGBA64
  • func (p *Alpha16) Set(x, y int, c color.Color)
  • func (p *Alpha16) SetAlpha16(x, y int, c color.Alpha16)
  • func (p *Alpha16) SetRGBA64(x, y int, c color.RGBA64)
  • 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) RGBA64At(x, y int) color.RGBA64
  • func (p *CMYK) Set(x, y int, c color.Color)
  • func (p *CMYK) SetCMYK(x, y int, c color.CMYK)
  • func (p *CMYK) SetRGBA64(x, y int, c color.RGBA64)
  • 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) RGBA64At(x, y int) color.RGBA64
  • func (p *Gray) Set(x, y int, c color.Color)
  • func (p *Gray) SetGray(x, y int, c color.Gray)
  • func (p *Gray) SetRGBA64(x, y int, c color.RGBA64)
  • 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) RGBA64At(x, y int) color.RGBA64
  • func (p *Gray16) Set(x, y int, c color.Color)
  • func (p *Gray16) SetGray16(x, y int, c color.Gray16)
  • func (p *Gray16) SetRGBA64(x, y int, c color.RGBA64)
  • 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) RGBA64At(x, y int) color.RGBA64
  • func (p *NRGBA) Set(x, y int, c color.Color)
  • func (p *NRGBA) SetNRGBA(x, y int, c color.NRGBA)
  • func (p *NRGBA) SetRGBA64(x, y int, c color.RGBA64)
  • 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) RGBA64At(x, y int) color.RGBA64
  • func (p *NRGBA64) Set(x, y int, c color.Color)
  • func (p *NRGBA64) SetNRGBA64(x, y int, c color.NRGBA64)
  • func (p *NRGBA64) SetRGBA64(x, y int, c color.RGBA64)
  • 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) RGBA64At(x, y int) color.RGBA64
  • 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) RGBA64At(x, y int) color.RGBA64
  • func (p *Paletted) Set(x, y int, c color.Color)
  • func (p *Paletted) SetColorIndex(x, y int, index uint8)
  • func (p *Paletted) SetRGBA64(x, y int, c color.RGBA64)
  • 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) RGBA64At(x, y int) color.RGBA64
  • 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) SetRGBA64(x, y int, c color.RGBA64)
  • 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 RGBA64Image
  • 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) RGBA64At(x, y int) color.RGBA64
  • 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)
  • func (c *Uniform) RGBA64At(x, y int) color.RGBA64
  • 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) RGBA64At(x, y int) color.RGBA64
  • 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

Примеры

Пакет
Decode (недоверенные данные)
Пакет (DecodeConfig)

Файлы пакета

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

func RegisterFormat(name, magic string, decode func(io.Reader) (Image, error), decodeConfig func(io.Reader) (Config, error))

RegisterFormat регистрирует формат изображения для использования функцией Decode. Name — название формата, например "jpeg" или "png". Magic — магический префикс, идентифицирующий кодировку формата. Строка magic может содержать подстановочные символы "?", каждый из которых соответствует одному произвольному байту. Decode — функция, декодирующая закодированное изображение. DecodeConfig — функция, декодирующая только его конфигурацию.

type Alpha

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

func NewAlpha(r Rectangle) *Alpha

NewAlpha возвращает новое изображение Alpha с указанными границами.

func (*Alpha) AlphaAt 1.4

func (p *Alpha) AlphaAt(x, y int) color.Alpha

func (*Alpha) At

func (p *Alpha) At(x, y int) color.Color

func (*Alpha) Bounds

func (p *Alpha) Bounds() Rectangle

func (*Alpha) ColorModel

func (p *Alpha) ColorModel() color.Model

func (*Alpha) Opaque

func (p *Alpha) Opaque() bool

Opaque просматривает всё изображение и сообщает, является ли оно полностью непрозрачным.

func (*Alpha) PixOffset

func (p *Alpha) PixOffset(x, y int) int

PixOffset возвращает индекс первого элемента Pix, соответствующего пикселю в точке (x, y).

func (*Alpha) RGBA64At 1.17

func (p *Alpha) RGBA64At(x, y int) color.RGBA64

func (*Alpha) Set

func (p *Alpha) Set(x, y int, c color.Color)

func (*Alpha) SetAlpha

func (p *Alpha) SetAlpha(x, y int, c color.Alpha)

func (*Alpha) SetRGBA64 1.17

func (p *Alpha) SetRGBA64(x, y int, c color.RGBA64)

func (*Alpha) SubImage

func (p *Alpha) SubImage(r Rectangle) Image

SubImage возвращает изображение, представляющее часть изображения p, видимую через r. Возвращаемое значение использует те же пиксели, что и исходное изображение.

type Alpha16

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

func NewAlpha16(r Rectangle) *Alpha16

NewAlpha16 возвращает новое изображение Alpha16 с указанными границами.

func (*Alpha16) Alpha16At 1.4

func (p *Alpha16) Alpha16At(x, y int) color.Alpha16

func (*Alpha16) At

func (p *Alpha16) At(x, y int) color.Color

func (*Alpha16) Bounds

func (p *Alpha16) Bounds() Rectangle

func (*Alpha16) ColorModel

func (p *Alpha16) ColorModel() color.Model

func (*Alpha16) Opaque

func (p *Alpha16) Opaque() bool

Opaque просматривает всё изображение и сообщает, является ли оно полностью непрозрачным.

func (*Alpha16) PixOffset

func (p *Alpha16) PixOffset(x, y int) int

PixOffset возвращает индекс первого элемента Pix, соответствующего пикселю в точке (x, y).

func (*Alpha16) RGBA64At 1.17

func (p *Alpha16) RGBA64At(x, y int) color.RGBA64

func (*Alpha16) Set

func (p *Alpha16) Set(x, y int, c color.Color)

func (*Alpha16) SetAlpha16

func (p *Alpha16) SetAlpha16(x, y int, c color.Alpha16)

func (*Alpha16) SetRGBA64 1.17

func (p *Alpha16) SetRGBA64(x, y int, c color.RGBA64)

func (*Alpha16) SubImage

func (p *Alpha16) SubImage(r Rectangle) Image

SubImage возвращает изображение, представляющее часть изображения p, видимую через r. Возвращаемое значение использует те же пиксели, что и исходное изображение.

type CMYK 1.5

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 1.5

func NewCMYK(r Rectangle) *CMYK

NewCMYK возвращает новое изображение CMYK с указанными границами.

func (*CMYK) At 1.5

func (p *CMYK) At(x, y int) color.Color

func (*CMYK) Bounds 1.5

func (p *CMYK) Bounds() Rectangle

func (*CMYK) CMYKAt 1.5

func (p *CMYK) CMYKAt(x, y int) color.CMYK

func (*CMYK) ColorModel 1.5

func (p *CMYK) ColorModel() color.Model

func (*CMYK) Opaque 1.5

func (p *CMYK) Opaque() bool

Opaque просматривает всё изображение и сообщает, является ли оно полностью непрозрачным.

func (*CMYK) PixOffset 1.5

func (p *CMYK) PixOffset(x, y int) int

PixOffset возвращает индекс первого элемента Pix, соответствующего пикселю в точке (x, y).

func (*CMYK) RGBA64At 1.17

func (p *CMYK) RGBA64At(x, y int) color.RGBA64

func (*CMYK) Set 1.5

func (p *CMYK) Set(x, y int, c color.Color)

func (*CMYK) SetCMYK 1.5

func (p *CMYK) SetCMYK(x, y int, c color.CMYK)

func (*CMYK) SetRGBA64 1.17

func (p *CMYK) SetRGBA64(x, y int, c color.RGBA64)

func (*CMYK) SubImage 1.5

func (p *CMYK) SubImage(r Rectangle) Image

SubImage возвращает изображение, представляющее часть изображения p, видимую через r. Возвращаемое значение использует те же пиксели, что и исходное изображение.

type Config

Config содержит цветовую модель и размеры изображения.

type Config struct {
    ColorModel    color.Model
    Width, Height int
}

func DecodeConfig

func DecodeConfig(r io.Reader) (Config, string, error)

DecodeConfig декодирует цветовую модель и размеры изображения, закодированного в зарегистрированном формате. Возвращаемая строка — название формата, использованное при его регистрации. Обычно регистрация формата выполняется функцией init в пакете для соответствующего кодека.

DecodeConfig считывает только заголовки формата и не выделяет буфер пикселей полного размера, поэтому её можно использовать для проверки размеров перед вызовом Decode.

type Gray

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

func NewGray(r Rectangle) *Gray

NewGray возвращает новое изображение Gray с указанными границами.

func (*Gray) At

func (p *Gray) At(x, y int) color.Color

func (*Gray) Bounds

func (p *Gray) Bounds() Rectangle

func (*Gray) ColorModel

func (p *Gray) ColorModel() color.Model

func (*Gray) GrayAt 1.4

func (p *Gray) GrayAt(x, y int) color.Gray

func (*Gray) Opaque

func (p *Gray) Opaque() bool

Opaque просматривает всё изображение и сообщает, является ли оно полностью непрозрачным.

func (*Gray) PixOffset

func (p *Gray) PixOffset(x, y int) int

PixOffset возвращает индекс первого элемента Pix, соответствующего пикселю в точке (x, y).

func (*Gray) RGBA64At 1.17

func (p *Gray) RGBA64At(x, y int) color.RGBA64

func (*Gray) Set

func (p *Gray) Set(x, y int, c color.Color)

func (*Gray) SetGray

func (p *Gray) SetGray(x, y int, c color.Gray)

func (*Gray) SetRGBA64 1.17

func (p *Gray) SetRGBA64(x, y int, c color.RGBA64)

func (*Gray) SubImage

func (p *Gray) SubImage(r Rectangle) Image

SubImage возвращает изображение, представляющее часть изображения p, видимую через r. Возвращаемое значение использует те же пиксели, что и исходное изображение.

type Gray16

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

func NewGray16(r Rectangle) *Gray16

NewGray16 возвращает новое изображение Gray16 с указанными границами.

func (*Gray16) At

func (p *Gray16) At(x, y int) color.Color

func (*Gray16) Bounds

func (p *Gray16) Bounds() Rectangle

func (*Gray16) ColorModel

func (p *Gray16) ColorModel() color.Model

func (*Gray16) Gray16At 1.4

func (p *Gray16) Gray16At(x, y int) color.Gray16

func (*Gray16) Opaque

func (p *Gray16) Opaque() bool

Opaque просматривает всё изображение и сообщает, является ли оно полностью непрозрачным.

func (*Gray16) PixOffset

func (p *Gray16) PixOffset(x, y int) int

PixOffset возвращает индекс первого элемента Pix, соответствующего пикселю в точке (x, y).

func (*Gray16) RGBA64At 1.17

func (p *Gray16) RGBA64At(x, y int) color.RGBA64

func (*Gray16) Set

func (p *Gray16) Set(x, y int, c color.Color)

func (*Gray16) SetGray16

func (p *Gray16) SetGray16(x, y int, c color.Gray16)

func (*Gray16) SetRGBA64 1.17

func (p *Gray16) SetRGBA64(x, y int, c color.RGBA64)

func (*Gray16) SubImage

func (p *Gray16) SubImage(r Rectangle) Image

SubImage возвращает изображение, представляющее часть изображения p, видимую через r. Возвращаемое значение использует те же пиксели, что и исходное изображение.

type Image

Image — конечная прямоугольная сетка значений color.Color, принадлежащих цветовой модели.

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

func Decode(r io.Reader) (Image, string, error)

Decode декодирует изображение, закодированное в зарегистрированном формате. Возвращаемая строка — название формата, использованное при его регистрации. Обычно регистрация формата выполняется функцией init в пакете для соответствующего кодека.

До считывания или проверки всех пиксельных данных декодирование может выделить память, пропорциональную ширине и высоте, указанным в заголовке изображения. При декодировании недоверенных данных сначала вызовите DecodeConfig, чтобы проверить размеры и отклонить изображения, превышающие ограничения ресурсов; см. раздел «Вопросы безопасности» в документации пакета image.

Пример (недоверенные данные)

ExampleDecode_untrusted демонстрирует декодирование недоверенного файла изображения в два этапа, позволяющее безопасно избежать неожиданно большого выделения памяти.

Код:

// This GIF data is a valid 1x1 image (layout matches package gif tests).
gifData := []byte{
    'G', 'I', 'F', '8', '9', 'a',
    1, 0, 1, 0,
    128, 0, 0,
    0, 0, 0, 1, 1, 1,
    0x21, 0xf9, 0x04, 0x00, 0x00, 0x00, 0xff, 0x00,
    0x2c,
    0x00, 0x00, 0x00, 0x00,
    0x01, 0x00, 0x01, 0x00,
    0x00,
    0x02, 0x02, 0x4c, 0x01, 0x00,
    0x3b,
}

cfg, _, err := image.DecodeConfig(bytes.NewReader(gifData))
if err != nil {
    log.Fatal(err)
}

// Use int64 to avoid overflow on 32-bit platforms.
const maxPixels = 10000
if int64(cfg.Width)*int64(cfg.Height) > maxPixels {
    fmt.Println("rejected: dimensions too large")
    return
}

m, _, err := image.Decode(bytes.NewReader(gifData))
if err != nil {
    log.Fatal(err)
}
fmt.Println("decoded", m.Bounds().Dx(), m.Bounds().Dy())

Вывод:

decoded 1 1

type NRGBA

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

func NewNRGBA(r Rectangle) *NRGBA

NewNRGBA возвращает новое изображение NRGBA с указанными границами.

func (*NRGBA) At

func (p *NRGBA) At(x, y int) color.Color

func (*NRGBA) Bounds

func (p *NRGBA) Bounds() Rectangle

func (*NRGBA) ColorModel

func (p *NRGBA) ColorModel() color.Model

func (*NRGBA) NRGBAAt 1.4

func (p *NRGBA) NRGBAAt(x, y int) color.NRGBA

func (*NRGBA) Opaque

func (p *NRGBA) Opaque() bool

Opaque просматривает всё изображение и сообщает, является ли оно полностью непрозрачным.

func (*NRGBA) PixOffset

func (p *NRGBA) PixOffset(x, y int) int

PixOffset возвращает индекс первого элемента Pix, соответствующего пикселю в точке (x, y).

func (*NRGBA) RGBA64At 1.17

func (p *NRGBA) RGBA64At(x, y int) color.RGBA64

func (*NRGBA) Set

func (p *NRGBA) Set(x, y int, c color.Color)

func (*NRGBA) SetNRGBA

func (p *NRGBA) SetNRGBA(x, y int, c color.NRGBA)

func (*NRGBA) SetRGBA64 1.17

func (p *NRGBA) SetRGBA64(x, y int, c color.RGBA64)

func (*NRGBA) SubImage

func (p *NRGBA) SubImage(r Rectangle) Image

SubImage возвращает изображение, представляющее часть изображения p, видимую через r. Возвращённое значение использует те же пиксели, что и исходное изображение.

type NRGBA64

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

func NewNRGBA64(r Rectangle) *NRGBA64

NewNRGBA64 возвращает новое изображение NRGBA64 с заданными границами.

func (*NRGBA64) At

func (p *NRGBA64) At(x, y int) color.Color

func (*NRGBA64) Bounds

func (p *NRGBA64) Bounds() Rectangle

func (*NRGBA64) ColorModel

func (p *NRGBA64) ColorModel() color.Model

func (*NRGBA64) NRGBA64At 1.4

func (p *NRGBA64) NRGBA64At(x, y int) color.NRGBA64

func (*NRGBA64) Opaque

func (p *NRGBA64) Opaque() bool

Opaque проверяет всё изображение и сообщает, является ли оно полностью непрозрачным.

func (*NRGBA64) PixOffset

func (p *NRGBA64) PixOffset(x, y int) int

PixOffset возвращает индекс первого элемента Pix, соответствующего пикселю в точке (x, y).

func (*NRGBA64) RGBA64At 1.17

func (p *NRGBA64) RGBA64At(x, y int) color.RGBA64

func (*NRGBA64) Set

func (p *NRGBA64) Set(x, y int, c color.Color)

func (*NRGBA64) SetNRGBA64

func (p *NRGBA64) SetNRGBA64(x, y int, c color.NRGBA64)

func (*NRGBA64) SetRGBA64 1.17

func (p *NRGBA64) SetRGBA64(x, y int, c color.RGBA64)

func (*NRGBA64) SubImage

func (p *NRGBA64) SubImage(r Rectangle) Image

SubImage возвращает изображение, представляющее часть изображения p, видимую через r. Возвращённое значение использует те же пиксели, что и исходное изображение.

type NYCbCrA 1.6

NYCbCrA — это изображение в памяти с цветами Y'CbCr и альфа-каналом, не предварительно умноженными на альфа-канал. Поля A и AStride аналогичны полям Y и YStride встроенной структуры YCbCr.

type NYCbCrA struct {
    YCbCr
    A       []uint8
    AStride int
}

func NewNYCbCrA 1.6

func NewNYCbCrA(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *NYCbCrA

NewNYCbCrA возвращает новое изображение NYCbCrA с заданными границами и коэффициентом субдискретизации.

func (*NYCbCrA) AOffset 1.6

func (p *NYCbCrA) AOffset(x, y int) int

AOffset возвращает индекс первого элемента A, соответствующего пикселю в точке (x, y).

func (*NYCbCrA) At 1.6

func (p *NYCbCrA) At(x, y int) color.Color

func (*NYCbCrA) ColorModel 1.6

func (p *NYCbCrA) ColorModel() color.Model

func (*NYCbCrA) NYCbCrAAt 1.6

func (p *NYCbCrA) NYCbCrAAt(x, y int) color.NYCbCrA

func (*NYCbCrA) Opaque 1.6

func (p *NYCbCrA) Opaque() bool

Opaque проверяет всё изображение и сообщает, является ли оно полностью непрозрачным.

func (*NYCbCrA) RGBA64At 1.17

func (p *NYCbCrA) RGBA64At(x, y int) color.RGBA64

func (*NYCbCrA) SubImage 1.6

func (p *NYCbCrA) SubImage(r Rectangle) Image

SubImage возвращает изображение, представляющее часть изображения p, видимую через r. Возвращённое значение использует те же пиксели, что и исходное изображение.

type Paletted

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

func NewPaletted(r Rectangle, p color.Palette) *Paletted

NewPaletted возвращает новое изображение Paletted с заданными шириной, высотой и палитрой.

func (*Paletted) At

func (p *Paletted) At(x, y int) color.Color

func (*Paletted) Bounds

func (p *Paletted) Bounds() Rectangle

func (*Paletted) ColorIndexAt

func (p *Paletted) ColorIndexAt(x, y int) uint8

func (*Paletted) ColorModel

func (p *Paletted) ColorModel() color.Model

func (*Paletted) Opaque

func (p *Paletted) Opaque() bool

Opaque проверяет всё изображение и сообщает, является ли оно полностью непрозрачным.

func (*Paletted) PixOffset

func (p *Paletted) PixOffset(x, y int) int

PixOffset возвращает индекс первого элемента Pix, соответствующего пикселю в точке (x, y).

func (*Paletted) RGBA64At 1.17

func (p *Paletted) RGBA64At(x, y int) color.RGBA64

func (*Paletted) Set

func (p *Paletted) Set(x, y int, c color.Color)

func (*Paletted) SetColorIndex

func (p *Paletted) SetColorIndex(x, y int, index uint8)

func (*Paletted) SetRGBA64 1.17

func (p *Paletted) SetRGBA64(x, y int, c color.RGBA64)

func (*Paletted) SubImage

func (p *Paletted) SubImage(r Rectangle) Image

SubImage возвращает изображение, представляющее часть изображения p, видимую через r. Возвращённое значение использует те же пиксели, что и исходное изображение.

type PalettedImage

PalettedImage — это изображение, цвета которого могут выбираться из ограниченной палитры. Если m — это PalettedImage, а m.ColorModel() возвращает color.Palette p, то m.At(x, y) должно быть эквивалентно p[m.ColorIndexAt(x, y)]. Если цветовая модель m не является color.Palette, поведение ColorIndexAt не определено.

type PalettedImage interface {
    // ColorIndexAt returns the palette index of the pixel at (x, y).
    ColorIndexAt(x, y int) uint8
    Image
}

type Point

Point — это пара координат X, Y. Значения координат увеличиваются вправо и вниз.

type Point struct {
    X, Y int
}

ZP — это нулевая точка Point.

Устарело: вместо этого используйте литерал image.Point.

var ZP Point

func Pt

func Pt(X, Y int) Point

Pt — это краткая запись для Point{X, Y}.

func (Point) Add

func (p Point) Add(q Point) Point

Add возвращает вектор p+q.

func (Point) Div

func (p Point) Div(k int) Point

Div возвращает вектор p/k.

func (Point) Eq

func (p Point) Eq(q Point) bool

Eq сообщает, равны ли p и q.

func (Point) In

func (p Point) In(r Rectangle) bool

In сообщает, находится ли p внутри r.

func (Point) Mod

func (p Point) Mod(r Rectangle) Point

Mod возвращает точку q внутри r, такую что p.X-q.X кратно ширине r, а p.Y-q.Y кратно высоте r.

func (Point) Mul

func (p Point) Mul(k int) Point

Mul возвращает вектор p*k.

func (Point) String

func (p Point) String() string

String возвращает строковое представление p, например "(3,4)".

func (Point) Sub

func (p Point) Sub(q Point) Point

Sub возвращает вектор p-q.

type RGBA

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

func NewRGBA(r Rectangle) *RGBA

NewRGBA возвращает новое изображение RGBA с заданными границами.

func (*RGBA) At

func (p *RGBA) At(x, y int) color.Color

func (*RGBA) Bounds

func (p *RGBA) Bounds() Rectangle

func (*RGBA) ColorModel

func (p *RGBA) ColorModel() color.Model

func (*RGBA) Opaque

func (p *RGBA) Opaque() bool

Opaque проверяет всё изображение и сообщает, является ли оно полностью непрозрачным.

func (*RGBA) PixOffset

func (p *RGBA) PixOffset(x, y int) int

PixOffset возвращает индекс первого элемента Pix, соответствующего пикселю в точке (x, y).

func (*RGBA) RGBA64At 1.17

func (p *RGBA) RGBA64At(x, y int) color.RGBA64

func (*RGBA) RGBAAt 1.4

func (p *RGBA) RGBAAt(x, y int) color.RGBA

func (*RGBA) Set

func (p *RGBA) Set(x, y int, c color.Color)

func (*RGBA) SetRGBA

func (p *RGBA) SetRGBA(x, y int, c color.RGBA)

func (*RGBA) SetRGBA64 1.17

func (p *RGBA) SetRGBA64(x, y int, c color.RGBA64)

func (*RGBA) SubImage

func (p *RGBA) SubImage(r Rectangle) Image

SubImage возвращает изображение, представляющее часть изображения p, видимую через r. Возвращённое значение использует те же пиксели, что и исходное изображение.

type RGBA64

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

func NewRGBA64(r Rectangle) *RGBA64

NewRGBA64 возвращает новое изображение RGBA64 с заданными границами.

func (*RGBA64) At

func (p *RGBA64) At(x, y int) color.Color

func (*RGBA64) Bounds

func (p *RGBA64) Bounds() Rectangle

func (*RGBA64) ColorModel

func (p *RGBA64) ColorModel() color.Model

func (*RGBA64) Opaque

func (p *RGBA64) Opaque() bool

Opaque проверяет всё изображение и сообщает, является ли оно полностью непрозрачным.

func (*RGBA64) PixOffset

func (p *RGBA64) PixOffset(x, y int) int

PixOffset возвращает индекс первого элемента Pix, соответствующего пикселю в точке (x, y).

func (*RGBA64) RGBA64At 1.4

func (p *RGBA64) RGBA64At(x, y int) color.RGBA64

func (*RGBA64) Set

func (p *RGBA64) Set(x, y int, c color.Color)

func (*RGBA64) SetRGBA64

func (p *RGBA64) SetRGBA64(x, y int, c color.RGBA64)

func (*RGBA64) SubImage

func (p *RGBA64) SubImage(r Rectangle) Image

SubImage возвращает изображение, представляющее часть изображения p, видимую через r. Возвращённое значение использует те же пиксели, что и исходное изображение.

type RGBA64Image 1.17

RGBA64Image — это Image, пиксели которого можно напрямую преобразовать в color.RGBA64.

type RGBA64Image interface {
    // RGBA64At returns the RGBA64 color of the pixel at (x, y). It is
    // equivalent to calling At(x, y).RGBA() and converting the resulting
    // 32-bit return values to a color.RGBA64, but it can avoid allocations
    // from converting concrete color types to the color.Color interface type.
    RGBA64At(x, y int) color.RGBA64
    Image
}

type Rectangle

Rectangle содержит точки, для которых Min.X <= X < Max.X и Min.Y <= Y < Max.Y. Прямоугольник корректно сформирован, если Min.X <= Max.X и аналогично для Y. Точки всегда корректно сформированы. Методы прямоугольника всегда возвращают корректно сформированные результаты для корректно сформированных входных данных.

Rectangle также является Image, границы которого совпадают с самим прямоугольником. At возвращает color.Opaque для точек внутри прямоугольника и color.Transparent в противном случае.

type Rectangle struct {
    Min, Max Point
}

ZR — это нулевой Rectangle.

Устарело: вместо этого используйте литерал image.Rectangle.

var ZR Rectangle

func Rect

func Rect(x0, y0, x1, y1 int) Rectangle

Rect — это краткая запись для Rectangle{Pt(x0, y0), Pt(x1, y1)}. Если необходимо, минимальные и максимальные координаты возвращаемого прямоугольника меняются местами, чтобы он был корректно сформирован.

func (Rectangle) Add

func (r Rectangle) Add(p Point) Rectangle

Add возвращает прямоугольник r, сдвинутый на p.

func (Rectangle) At 1.5

func (r Rectangle) At(x, y int) color.Color

At реализует интерфейс Image.

func (Rectangle) Bounds 1.5

func (r Rectangle) Bounds() Rectangle

Bounds реализует интерфейс Image.

func (Rectangle) Canon

func (r Rectangle) Canon() Rectangle

Canon возвращает каноническое представление r. Если необходимо, минимальные и максимальные координаты возвращаемого прямоугольника меняются местами, чтобы он был корректно сформирован.

func (Rectangle) ColorModel 1.5

func (r Rectangle) ColorModel() color.Model

ColorModel реализует интерфейс Image.

func (Rectangle) Dx

func (r Rectangle) Dx() int

Dx возвращает ширину r.

func (Rectangle) Dy

func (r Rectangle) Dy() int

Dy возвращает высоту r.

func (Rectangle) Empty

func (r Rectangle) Empty() bool

Empty сообщает, не содержит ли прямоугольник ни одной точки.

func (Rectangle) Eq

func (r Rectangle) Eq(s Rectangle) bool

Eq сообщает, содержат ли r и s один и тот же набор точек. Все пустые прямоугольники считаются равными.

func (Rectangle) In

func (r Rectangle) In(s Rectangle) bool

In сообщает, принадлежит ли каждая точка r прямоугольнику s.

func (Rectangle) Inset

func (r Rectangle) Inset(n int) Rectangle

Inset возвращает прямоугольник r, уменьшенный на n; n может быть отрицательным. Если хотя бы один из размеров r меньше 2*n, возвращается пустой прямоугольник около центра r.

func (Rectangle) Intersect

func (r Rectangle) Intersect(s Rectangle) Rectangle

Intersect возвращает наибольший прямоугольник, содержащийся одновременно в r и s. Если прямоугольники не пересекаются, возвращается нулевой прямоугольник.

func (Rectangle) Overlaps

func (r Rectangle) Overlaps(s Rectangle) bool

Overlaps сообщает, имеют ли r и s непустое пересечение.

func (Rectangle) RGBA64At 1.17

func (r Rectangle) RGBA64At(x, y int) color.RGBA64

RGBA64At реализует интерфейс RGBA64Image.

func (Rectangle) Size

func (r Rectangle) Size() Point

Size возвращает ширину и высоту r.

func (Rectangle) String

func (r Rectangle) String() string

String возвращает строковое представление r, например "(3,4)-(6,5)".

func (Rectangle) Sub

func (r Rectangle) Sub(p Point) Rectangle

Sub возвращает прямоугольник r, сдвинутый на -p.

func (Rectangle) Union

func (r Rectangle) Union(s Rectangle) Rectangle

Union возвращает наименьший прямоугольник, содержащий и r, и s.

type Uniform

Uniform — это бесконечное Image однородного цвета. Он реализует интерфейсы color.Color, color.Model и Image.

type Uniform struct {
    C color.Color
}

func NewUniform

func NewUniform(c color.Color) *Uniform

NewUniform возвращает новое изображение Uniform заданного цвета.

func (*Uniform) At

func (c *Uniform) At(x, y int) color.Color

func (*Uniform) Bounds

func (c *Uniform) Bounds() Rectangle

func (*Uniform) ColorModel

func (c *Uniform) ColorModel() color.Model

func (*Uniform) Convert

func (c *Uniform) Convert(color.Color) color.Color

func (*Uniform) Opaque

func (c *Uniform) Opaque() bool

Opaque проверяет всё изображение и сообщает, является ли оно полностью непрозрачным.

func (*Uniform) RGBA

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

func (*Uniform) RGBA64At 1.17

func (c *Uniform) RGBA64At(x, y int) color.RGBA64

type YCbCr

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

func NewYCbCr(r Rectangle, subsampleRatio YCbCrSubsampleRatio) *YCbCr

NewYCbCr возвращает новое изображение YCbCr с заданными границами и коэффициентом субдискретизации.

func (*YCbCr) At

func (p *YCbCr) At(x, y int) color.Color

func (*YCbCr) Bounds

func (p *YCbCr) Bounds() Rectangle

func (*YCbCr) COffset

func (p *YCbCr) COffset(x, y int) int

COffset возвращает индекс первого элемента Cb или Cr, соответствующего пикселю в точке (x, y).

func (*YCbCr) ColorModel

func (p *YCbCr) ColorModel() color.Model

func (*YCbCr) Opaque

func (p *YCbCr) Opaque() bool

func (*YCbCr) RGBA64At 1.17

func (p *YCbCr) RGBA64At(x, y int) color.RGBA64

func (*YCbCr) SubImage

func (p *YCbCr) SubImage(r Rectangle) Image

SubImage возвращает изображение, представляющее часть изображения p, видимую через r. Возвращённое значение использует те же пиксели, что и исходное изображение.

func (*YCbCr) YCbCrAt 1.4

func (p *YCbCr) YCbCrAt(x, y int) color.YCbCr

func (*YCbCr) YOffset

func (p *YCbCr) YOffset(x, y int) int

YOffset возвращает индекс первого элемента Y, соответствующего пикселю в точке (x, y).

type YCbCrSubsampleRatio

YCbCrSubsampleRatio — это коэффициент субдискретизации цветности, используемый в изображении YCbCr.

type YCbCrSubsampleRatio int
const (
    YCbCrSubsampleRatio444 YCbCrSubsampleRatio = iota
    YCbCrSubsampleRatio422
    YCbCrSubsampleRatio420
    YCbCrSubsampleRatio440
    YCbCrSubsampleRatio411
    YCbCrSubsampleRatio410
)

func (YCbCrSubsampleRatio) String

func (s YCbCrSubsampleRatio) String() string

Подкаталоги

Имя Описание
..
color Пакет color реализует базовую библиотеку цветов.
palette Пакет palette предоставляет стандартные цветовые палитры.
draw Пакет draw предоставляет функции компоновки изображений.
gif Пакет gif реализует декодер и кодировщик изображений GIF.
jpeg Пакет jpeg реализует декодер и кодировщик изображений JPEG.
png Пакет png реализует декодер и кодировщик изображений PNG.

© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/image/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API