cpp

Структуры, описывающие цвет в различных форматах

В пакете image/color определены следующие структуры, описывающие цвет в различных форматах:

  • RGBA — определение структуры:
type RGBA struct {
   R, G, B, A uint8
}
(color.RGBA).RGBA() (r uint32, g uint32, b uint32, a uint32)

Пример:

c := color.RGBA{255, 0, 0, 255}
fmt.Println(c.R)      // 255
fmt.Println(c.G)      // 0
fmt.Println(c.B)      // 0
fmt.Println(c.A)      // 255
fmt.Println(c.RGBA()) // 65535 0 0 65535
  • RGBA64 — определение структуры:
type RGBA64 struct {
   R, G, B, A uint16
}
(color.RGBA64).RGBA() (r uint32, g uint32, b uint32, a uint32)

Пример:

c := color.RGBA64{65535, 0, 0, 65535}
fmt.Println(c.R)      // 65535
fmt.Println(c.G)      // 0
fmt.Println(c.B)      // 0
fmt.Println(c.A)      // 65535
fmt.Println(c.RGBA()) // 65535 0 0 65535
  • NRGBA — определение структуры:
type NRGBA struct {
   R, G, B, A uint8
}
(color.NRGBA).RGBA() (r uint32, g uint32, b uint32, a uint32)

Предварительное умножение на альфа-канал не используется. Пример:

c := color.NRGBA{255, 0, 0, 255}
fmt.Println(c.R)      // 255
fmt.Println(c.G)      // 0
fmt.Println(c.B)      // 0
fmt.Println(c.A)      // 255
fmt.Println(c.RGBA()) // 65535 0 0 65535
  • NRGBA64 — определение структуры:
type NRGBA64 struct {
   R, G, B, A uint16
}
(color.NRGBA64).RGBA() (r uint32, g uint32, b uint32, a uint32)

Предварительное умножение на альфа-канал не используется. Пример:

c := color.NRGBA64{65535, 0, 0, 65535}
fmt.Println(c.R)      // 65535
fmt.Println(c.G)      // 0
fmt.Println(c.B)      // 0
fmt.Println(c.A)      // 65535
fmt.Println(c.RGBA()) // 65535 0 0 65535
  • YCbCr — определение структуры:
type YCbCr struct {
   Y, Cb, Cr uint8
}
(color.YCbCr).RGBA() (uint32, uint32, uint32, uint32)

Пример:

c := color.YCbCr{76, 85, 255}
fmt.Println(c.Y)      // 76
fmt.Println(c.Cb)     // 85
fmt.Println(c.Cr)     // 255
fmt.Println(c.RGBA()) // 65113 102 26 65535
  • NYCbCrA — определение структуры:
type NYCbCrA struct {
   YCbCr
   A uint8
}
(color.NYCbCrA).RGBA() (uint32, uint32, uint32, uint32)

Предварительное умножение на альфа-канал не используется. Пример:

c := color.NYCbCrA{color.YCbCr{76, 85, 255}, 255}
fmt.Println(c.Y)      // 76
fmt.Println(c.Cb)     // 85
fmt.Println(c.Cr)     // 255
fmt.Println(c.A)      // 255
fmt.Println(c.RGBA()) // 65113 102 26 65535
  • CMYK — определение структуры:
type CMYK struct {
   C, M, Y, K uint8
}
(color.CMYK).RGBA() (uint32, uint32, uint32, uint32)

Пример:

c := color.CMYK{0, 255, 255, 0}
fmt.Println(c.C)      // 0
fmt.Println(c.M)      // 255
fmt.Println(c.Y)      // 255
fmt.Println(c.K)      // 0
fmt.Println(c.RGBA()) // 65535 0 0 65535
  • Gray — определение структуры:
type Gray struct {
   Y uint8
}
(color.Gray).RGBA() (r uint32, g uint32, b uint32, a uint32)

Пример:

c := color.Gray{128}
fmt.Println(c.Y)      // 128
fmt.Println(c.RGBA()) // 32896 32896 32896 65535
  • Gray16 — определение структуры:
type Gray16 struct {
   Y uint16
}
(color.Gray16).RGBA() (r uint32, g uint32, b uint32, a uint32)

Пример:

c := color.Gray16{32896}
fmt.Println(c.Y)      // 32896
fmt.Println(c.RGBA()) // 32896 32896 32896 65535
  • Alpha — определение структуры:
type Alpha struct {
   A uint8
}
(color.Alpha).RGBA() (r uint32, g uint32, b uint32, a uint32)

Пример:

c := color.Alpha{255}
fmt.Println(c.A)      // 255
fmt.Println(c.RGBA()) // 65535 65535 65535 65535
  • Alpha16 — определение структуры:
type Alpha16 struct {
   A uint16
}
(color.Alpha16).RGBA() (r uint32, g uint32, b uint32, a uint32)

Пример:

c := color.Alpha16{65535}
fmt.Println(c.A)      // 65535
fmt.Println(c.RGBA()) // 65535 65535 65535 65535
  • Palette — определение типа:
type Palette []Color
(color.Palette).Convert(c color.Color) color.Color
(color.Palette).Index(c color.Color) int

Пример:

c := color.Palette{color.RGBA{255, 0, 0, 255},
                   color.RGBA{255, 255, 0, 255}}
fmt.Println(c.Convert(color.RGBA{255, 0, 0, 255}).RGBA())
// 65535 0 0 65535
fmt.Println(c.Index(color.RGBA{255, 0, 0, 255})) // 0

В пакете image/color определены следующие основные цвета:

var color.Black color.Gray16
var color.White color.Gray16
var color.Transparent color.Alpha16
var color.Opaque color.Alpha16

Пример:

fmt.Println(color.Black.RGBA())       // 0 0 0 65535
fmt.Println(color.White.RGBA())       // 65535 65535 65535 65535
fmt.Println(color.Transparent.RGBA()) // 0 0 0 0
fmt.Println(color.Opaque.RGBA())      // 65535 65535 65535 65535

Учебник Go (Golang)
Учебник Go (Golang) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

cpp