diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 13:14:23 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 13:14:23 +0000 |
commit | 73df946d56c74384511a194dd01dbe099584fd1a (patch) | |
tree | fd0bcea490dd81327ddfbb31e215439672c9a068 /src/image/names.go | |
parent | Initial commit. (diff) | |
download | golang-1.16-73df946d56c74384511a194dd01dbe099584fd1a.tar.xz golang-1.16-73df946d56c74384511a194dd01dbe099584fd1a.zip |
Adding upstream version 1.16.10.upstream/1.16.10upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/image/names.go')
-rw-r--r-- | src/image/names.go | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/image/names.go b/src/image/names.go new file mode 100644 index 0000000..8595a35 --- /dev/null +++ b/src/image/names.go @@ -0,0 +1,53 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package image + +import ( + "image/color" +) + +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) +) + +// Uniform is an infinite-sized Image of uniform color. +// It implements the color.Color, color.Model, and Image interfaces. +type Uniform struct { + C color.Color +} + +func (c *Uniform) RGBA() (r, g, b, a uint32) { + return c.C.RGBA() +} + +func (c *Uniform) ColorModel() color.Model { + return c +} + +func (c *Uniform) Convert(color.Color) color.Color { + return c.C +} + +func (c *Uniform) Bounds() Rectangle { return Rectangle{Point{-1e9, -1e9}, Point{1e9, 1e9}} } + +func (c *Uniform) At(x, y int) color.Color { return c.C } + +// Opaque scans the entire image and reports whether it is fully opaque. +func (c *Uniform) Opaque() bool { + _, _, _, a := c.C.RGBA() + return a == 0xffff +} + +// NewUniform returns a new Uniform image of the given color. +func NewUniform(c color.Color) *Uniform { + return &Uniform{c} +} |