標籤:style blog http io color ar sp div on
Remember the picture generator you wrote earlier? Let‘s write another one, but this time it will return an implementation of image.Image
instead of a slice of data.
Define your own Image
type, implement the necessary methods, and callpic.ShowImage
.
Bounds
should return a image.Rectangle
, like image.Rect(0, 0, w, h)
.
ColorModel
should return color.RGBAModel
.
At
should return a color; the value v
in the last picture generator corresponds to color.RGBA{v, v, 255, 255}
in this one.
package mainimport ( "code.google.com/p/go-tour/pic" "image" "image/color")type Image struct{}func (img Image) ColorModel() color.Model { return color.RGBAModel}func (img Image) Bounds() image.Rectangle { return image.Rect(0, 0, 100, 100)}func (img Image) At(x, y int) color.Color { return color.RGBA{uint8(x), uint8(y), 255, 255}}func main() { m := Image{} pic.ShowImage(m)}
A Tour of Go Exercise: Images