Пакет 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)
Указатель
Файлы пакета
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/