package draw

Import Path
	image/draw (on go.dev)

Dependency Relation
	imports 3 packages, and imported by one package

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
Image is an image.Image with a Set method to change a single pixel. 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. ( Image) Set(x, y int, c color.Color) RGBA64Image (interface) *image.Alpha *image.Alpha16 *image.CMYK *image.Gray *image.Gray16 *image.NRGBA *image.NRGBA64 *image.Paletted *image.RGBA *image.RGBA64 Image : image.Image func Draw(dst Image, r image.Rectangle, src image.Image, sp image.Point, op Op) func DrawMask(dst Image, r image.Rectangle, src image.Image, sp image.Point, mask image.Image, mp image.Point, op Op) func Drawer.Draw(dst Image, r image.Rectangle, src image.Image, sp image.Point) func Op.Draw(dst Image, r image.Rectangle, src image.Image, sp image.Point)
Op is a Porter-Duff compositing operator. Draw implements the [Drawer] interface by calling the Draw function with this [Op]. Op : Drawer func Draw(dst Image, r image.Rectangle, src image.Image, sp image.Point, op Op) func DrawMask(dst Image, r image.Rectangle, src image.Image, sp image.Point, mask image.Image, mp image.Point, op Op) const Over const Src
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
Package-Level Functions (total 2)
Draw calls [DrawMask] with a nil mask.
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''.