Involved Source Files Package draw provides image composition functions.
See "The Go image/draw package" for an introduction to this package:
https://golang.org/doc/articles/image_draw.html
Code Examples
package main
import (
"fmt"
"image"
"image/color"
"image/draw"
"math"
)
func main() {
const width = 130
const height = 50
im := image.NewGray(image.Rectangle{Max: image.Point{X: width, Y: height}})
for x := 0; x < width; x++ {
for y := 0; y < height; y++ {
dist := math.Sqrt(math.Pow(float64(x-width/2), 2)/3+math.Pow(float64(y-height/2), 2)) / (height / 1.5) * 255
var gray uint8
if dist > 255 {
gray = 255
} else {
gray = uint8(dist)
}
im.SetGray(x, y, color.Gray{Y: 255 - gray})
}
}
pi := image.NewPaletted(im.Bounds(), []color.Color{
color.Gray{Y: 255},
color.Gray{Y: 160},
color.Gray{Y: 70},
color.Gray{Y: 35},
color.Gray{Y: 0},
})
draw.FloydSteinberg.Draw(pi, im.Bounds(), im, image.Point{})
shade := []string{" ", "░", "▒", "▓", "█"}
for i, p := range pi.Pix {
fmt.Print(shade[p])
if (i+1)%width == 0 {
fmt.Print("\n")
}
}
}
Package-Level Type Names (total 5)
/* sort by: | */
Drawer contains the [Draw] method. Draw aligns r.Min in dst with sp in src and then replaces the
rectangle r in dst with the result of drawing src on dst.Op
var FloydSteinberg
Quantizer produces a palette for an image. Quantize appends up to cap(p) - len(p) colors to p and returns the
updated palette suitable for converting m to a paletted image.
RGBA64Image extends both the [Image] and [image.RGBA64Image] interfaces with a
SetRGBA64 method to change a single pixel. SetRGBA64 is equivalent to
calling Set, but it can avoid allocations from converting concrete color
types to the [color.Color] interface type. 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. Bounds returns the domain for which At can return non-zero color.
The bounds do not necessarily contain the point (0, 0). ColorModel returns the Image's color model. 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.( RGBA64Image) Set(x, y int, c color.Color)( RGBA64Image) SetRGBA64(x, y int, c color.RGBA64)
*image.Alpha
*image.Alpha16
*image.CMYK
*image.Gray
*image.Gray16
*image.NRGBA
*image.NRGBA64
*image.Paletted
*image.RGBA
*image.RGBA64
RGBA64Image : Image
RGBA64Image : image.Image
RGBA64Image : image.RGBA64Image
DrawMask aligns r.Min in dst with sp in src and mp in mask and then replaces the rectangle r
in dst with the result of a Porter-Duff composition. A nil mask is treated as opaque.
Package-Level Variables (only one)
FloydSteinberg is a [Drawer] that is the [Src][Op] with Floyd-Steinberg error
diffusion.
Package-Level Constants (total 2)
Over specifies ``(src in mask) over dst''.
Src specifies ``src in mask''.
The pages are generated with Goldsv0.7.0-preview. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds.