今年夏天的空闲时间,我正在用 Go 图像包做一些练习。
package main
import (
"os"
"image"
"image/png"
"image/color"
"log"
"fmt"
"reflect"
)
func main(){
file , err := os.OpenFile("C:/Sources/go3x3.png", os.O_RDWR, os.FileMode(0777))
if err != nil {
log.Fatal(err)
}
img , err := png.Decode(file)
if err != nil {
log.Fatal(err)
}
img.At(0,0).RGBA()
fmt.Println("type:", reflect.TypeOf(img))
m := image.NewRGBA(image.Rect(0, 0, 640, 480))
fmt.Println("type:", reflect.TypeOf(m))
m.Set(5, 5, color.RGBA{255, 0, 0, 255})
img.Set(0, 0, color.RGBA{136, 0, 21, 255})
}
这里的问题是当我用img.Set注释掉运行它时,我得到了这个结果
type: *image.RGBA
type: *image.RGBA
但是当它取消注释时,我收到一条错误消息
img.Set undefined (type image.Image has no field or method Set)
我假设我使用的是反射错误,我仍然完全掌握了 Go 中的整个接口和类型定义。
四季花海
神不在的星期二
暮色呼如
相关分类