本文整理汇总了Golang中exp/draw.Image类的典型用法代码示例。如果您正苦于以下问题:Golang Image类的具体用法?Golang Image怎么用?Golang Image使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Image类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: clear
func clear(s draw.Image) {
b := s.Bounds()
for i := b.Min.X; i < b.Max.X; i++ {
for j := b.Min.Y; j < b.Max.Y; j++ {
s.Set(i, j, black)
}
}
}
示例2: drawCircle
// http://en.wikipedia.org/wiki/Midpoint_circle_algorithm
func drawCircle(img draw.Image, cx int, cy int, r int, c image.RGBAColor, fc image.RGBAColor) {
x := r
y := 0
error := -r
for x >= y {
var t int
t = cy + y
if fc.A != uint8(0) {
drawHorizontalLine(img, cx-x, cx+x, t, fc)
}
if c.A != uint8(0) {
set(img, cx+x, t, c)
set(img, cx-x, t, c)
}
t = cy - y
if fc.A != uint8(0) {
drawHorizontalLine(img, cx-x, cx+x, t, fc)
}
if c.A != uint8(0) {
set(img, cx+x, t, c)
set(img, cx-x, t, c)
}
t = cy + x
if fc.A != uint8(0) {
drawHorizontalLine(img, cx-y, cx+y, t, fc)
}
if c.A != uint8(0) {
set(img, cx+y, t, c)
set(img, cx-y, t, c)
}
t = cy - x
if fc.A != uint8(0) {
drawHorizontalLine(img, cx-y, cx+y, t, fc)
}
if c.A != uint8(0) {
img.Set(cx+y, t, c)
img.Set(cx-y, t, c)
}
error += y
y += 1
error += y
if error >= 0 {
x -= 1
error -= x
error -= x
}
}
}
示例3: plot
func plot(s draw.Image, v []Point) {
clear(s)
min, max := scale(v)
b := s.Bounds()
xscale := float64(b.Max.X-b.Min.X) / (max.x - min.x) * Shrink
yscale := float64(b.Max.Y-b.Min.Y) / (max.y - min.y) * Shrink
xoffset := -(min.x * xscale) + 4
yoffset := -(min.y * yscale) + 4
for _, p := range v {
x := int(xscale*p.x + xoffset)
y := int(yscale*p.y + yoffset)
if x < 0 || y < 0 {
fmt.Println(min, max)
fmt.Println(x, y)
fmt.Println(p.x, xscale, xoffset)
fmt.Println(p.y, yscale, yoffset)
}
s.Set(x, y, Color)
}
}
示例4: set
func set(img draw.Image, x, y int, c image.RGBAColor) {
if x >= 0 && y >= 0 && x < img.Width() && y < img.Height() {
img.Set(x, y, c)
}
}