问题点: 在使用go RGBA() 获取到的值是运算后的值,与原始的rgba不一样,除了使用反射,怎么样获取到原始的rgb值呢
package main
import (
"fmt"
"image/png"
"log"
"os"
"reflect"
)
func main() {
file, err := os.Open("./main/test.png")
checkErr(err)
defer file.Close()
im, err := png.Decode(file)
checkErr(err)
//width := im.Bounds().Max.X
//height := im.Bounds().Max.Y
color1 := im.At(100, 100)
fmt.Println(color1)
fmt.Println(color1.RGBA())
colorValue := reflect.ValueOf(color1)
count := colorValue.NumField()
for i := 0; i < count; i++ {
f := colorValue.Field(i)
fmt.Println(f.Uint())
}
}
func checkErr(err error) {
if err != nil {
log.Fatal(err)
}
}
输出:
{199 237 204 255}
51143 60909 52428 65535
199
237
204
255