MCPcopy
hub / github.com/fogleman/primitive / drawLines

Function drawLines

primitive/core.go:44–63  ·  view source on GitHub ↗
(im *image.RGBA, c Color, lines []Scanline)

Source from the content-addressed store, hash-verified

42}
43
44func drawLines(im *image.RGBA, c Color, lines []Scanline) {
45 const m = 0xffff
46 sr, sg, sb, sa := c.NRGBA().RGBA()
47 for _, line := range lines {
48 ma := line.Alpha
49 a := (m - sa*ma/m) * 0x101
50 i := im.PixOffset(line.X1, line.Y)
51 for x := line.X1; x <= line.X2; x++ {
52 dr := uint32(im.Pix[i+0])
53 dg := uint32(im.Pix[i+1])
54 db := uint32(im.Pix[i+2])
55 da := uint32(im.Pix[i+3])
56 im.Pix[i+0] = uint8((dr*a + sr*ma) / m >> 8)
57 im.Pix[i+1] = uint8((dg*a + sg*ma) / m >> 8)
58 im.Pix[i+2] = uint8((db*a + sb*ma) / m >> 8)
59 im.Pix[i+3] = uint8((da*a + sa*ma) / m >> 8)
60 i += 4
61 }
62 }
63}
64
65func differenceFull(a, b *image.RGBA) float64 {
66 size := a.Bounds().Size()

Callers 2

AddMethod · 0.85
EnergyMethod · 0.85

Calls 1

NRGBAMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…