Go指南练习之《图片》(Images)
2019-04-15 14:09发布
生成海报
Go官网指南
练习原文
还记得之前编写的图片生成器吗?现在来另外编写一个,不过这次将会返回 image.Image 来代替 slice 的数据。
自定义的 Image 类型,要实现必要的方法,并且调用 pic.ShowImage。
Bounds 应当返回一个 image.Rectangle,例如 `image.Rect(0, 0, w, h)`。
ColorModel 应当返回 color.RGBAModel。
At 应当返回一个颜 {MOD};在这个例子里,在最后一个图片生成器的值 v 匹配 `color.RGBA{v, v, 255, 255}`。
关键信息
type Image interface {
ColorModel() color.Model
Bounds() Rectangle
At(x, y int) color.Color
}
代码
package main
import (
"golang.org/x/tour/pic"
"image"
"image/color"
)
type Image struct{}
func (i Image) ColorModel() color.Model {
return color.RGBAModel
}
func (i Image) Bounds() image.Rectangle {
return image.Rect(0, 0, 200, 200)
}
func (i Image) At(x, y int) color.Color {
return color.RGBA{uint8(x), uint8(y), uint8(255), uint8(255)}
}
func main() {
m := Image{}
pic.ShowImage(m)
}
运行结果
PS
真实效果
方式一
使用在线在线编译器,吧上面代码拷贝进去
方式二
本地操作显示图片,请参考
Go指南练习之《slice》后续部分
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮