1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // 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
- }
- func NewUniform(c color.Color) *Uniform {
- return &Uniform{c}
- }
|