ser*_*erg 6 pixel colors go rgba
我正在尝试Color
使用变量中的RGB值创建一个新对象:
http://golang.org/pkg/image/color/
package main
import (
"fmt"
"image"
_ "image/gif"
_ "image/jpeg"
_ "image/png"
"os"
)
func main() {
reader, err := os.Open("test-image.jpg")
if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err)
}
image, _, err := image.Decode(reader)
if err != nil {
fmt.Fprintf(os.Stderr, "%s", err)
}
bounds := image.Bounds()
for i := 0; i <= bounds.Max.X; i++ {
for j := 0; j <= bounds.Max.Y; j++ {
pixel := image.At(i, j)
if i == 0 && j == 0 {
red, green, blue, _ := pixel.RGBA()
averaged := (red + green + blue) / 3
// This FromRGBA function DOES NOT EXIST!
grayColor := Color.FromRGBA(averaged, averaged, averaged, 1)
// Then I could do something like:
grayColor.RGBA() // This would work since it's a type Color.
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我似乎无法找到任何包给出rgba值的生成新Color对象的包.
有什么建议?
包中的类型image/color
具有导出字段,因此您可以直接实例化它们。对于您的示例,您可以使用以下命令创建颜色值:
grayColor := color.Gray16{Y: uint16(averaged)}
Run Code Online (Sandbox Code Playgroud)
(red
、green
和blue
值都在该0..0xffff
范围内,因此 16 位灰色实现似乎是合适的)。
归档时间: |
|
查看次数: |
3021 次 |
最近记录: |