cpp

Создание изображения. Формат Gray16

Создать изображение в формате Gray16 (цветовая модель color.Gray16Model) позволяет функция NewGray16() из пакета image. Формат функции:

image.NewGray16(r image.Rectangle) *image.Gray16

Пример:

img := image.NewGray(image.Rect(0, 0, 100, 100))

Определение структуры image.Gray16:

type Gray16 struct {
   Pix []uint8
   Stride int
   Rect Rectangle
}

Поле Pix содержит слайс с пикселами. Поле Stride позволяет получить шаг в байтах между соседними пикселами по вертикали (размер строки). С помощью поля Rect можно определить границы изображения:

fmt.Println(img.Stride)                   // 200
fmt.Println(img.Rect.Dx(), img.Rect.Dy()) // 100 100

Структура image.Gray16 содержит следующие методы:

  • ColorModel() — возвращает цветовую модель. Формат метода:
(*image.Gray16).ColorModel() color.Model

Пример:

fmt.Println(img.ColorModel() == color.Gray16Model) // true
  • Bounds() — возвращает координаты прямоугольной области. Формат метода:
(*image.Gray16).Bounds() image.Rectangle

Пример:

fmt.Println(img.Bounds()) // (0,0)-(100,100)
  • At() — возвращает информацию о цвете точки с указанными координатами. Формат метода:
(*image.Gray16).At(x int, y int) color.Color

Пример:

fmt.Println(img.At(0, 0).RGBA()) // 0 0 0 65535
  • Gray16At() — возвращает информацию о цвете точки с указанными координатами. Формат метода:
(*image.Gray16).Gray16At(x int, y int) color.Gray16

Пример:

fmt.Println(img.Gray16At(0, 0).RGBA()) // 0 0 0 65535
  • RGBA64At() — возвращает информацию о цвете точки с указанными координатами. Формат метода:
(*image.Gray16).RGBA64At(x int, y int) color.RGBA64

Пример:

fmt.Println(img.RGBA64At(0, 0).RGBA()) // 0 0 0 65535
  • Set() — задает цвет точки с указанными координатами. Формат метода:
(*image.Gray16).Set(x int, y int, c color.Color)

Пример:

img.Set(x, y, color.Gray16{32896})
  • SetGray16() — задает цвет точки с указанными координатами. Формат метода:
(*image.Gray16).SetGray16(x int, y int, c color.Gray16)

Пример:

img.SetGray16(x, y, color.Gray16{32896})
  • SetRGBA64() — задает цвет точки с указанными координатами. Формат метода:
(*image.Gray16).SetRGBA64(x int, y int, c color.RGBA64)

Пример:

img.SetRGBA64(x, y, color.RGBA64{32896, 32896, 32896, 65535})
  • PixOffset() — возвращает смещение внутри слайса из поля Pix для точки с указанными координатами. Формат метода:
(*image.Gray16).PixOffset(x int, y int) int

Пример:

fmt.Println(img.PixOffset(10, 10)) // 2020
  • Opaque() — возвращает true, если изображение является полностью непрозрачным, и false — в противном случае. Формат метода:
(*image.Gray16).Opaque() bool

Пример:

fmt.Println(img.Opaque()) // true
  • SubImage() — возвращает фрагмент изображения. Формат метода:
(*image.Gray16).SubImage(r image.Rectangle) image.Image

Пример:

im := img.SubImage(image.Rect(0, 0, 50, 50))

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

Реквизиты

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

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

cpp