Пакет image
Обзор
Пакет image реализует базовую библиотеку для работы с 2-D изображениями.
Фундаментальный интерфейс называется 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 может использоваться для анализа изображений произвольно большого размера, что может привести к исчерпанию ресурсов на машинах, у которых недостаточно памяти для их хранения. При работе с произвольными изображениями перед Decode следует вызывать DecodeConfig, чтобы программа могла решить, можно ли безопасно декодировать изображение, как определено в возвращённом заголовке, с доступными ресурсами. Вызов Decode, который создаёт изображение чрезвычайно большого размера, как определено в заголовке, возвращаемом DecodeConfig, не считается проблемой безопасности, независимо от того, является ли само изображение некорректным или нет. Вызов DecodeConfig, который возвращает заголовок, не соответствующий изображению, возвращаемому Decode, может считаться проблемой безопасности и должен быть сообщён в соответствии с [Политикой безопасности Go](https://go.dev/security/policy).
Пример
Код:
// 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: 364 790 7242 0 0x1000-0x1fff: 645 2967 1039 0 0x2000-0x2fff: 1072 2299 979 0 0x3000-0x3fff: 820 2266 980 0 0x4000-0x4fff: 537 1305 541 0 0x5000-0x5fff: 319 962 261 0 0x6000-0x6fff: 322 375 177 0 0x7000-0x7fff: 601 279 214 0 0x8000-0x8fff: 3478 227 273 0 0x9000-0x9fff: 2260 234 329 0 0xa000-0xafff: 921 282 373 0 0xb000-0xbfff: 321 335 397 0 0xc000-0xcfff: 229 388 298 0 0xd000-0xdfff: 260 414 277 0 0xe000-0xefff: 516 428 298 0 0xf000-0xffff: 2785 1899 1772 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)
Индекс
Примеры
Файлы пакета
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 в пакете, специфичном для кодека.
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 в пакете, специфичном для кодека.
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, который может быть отрицательным. Если какое-либо из измерений 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/