func writeImageTga(filename string, pixels []float32, xres, yres int) { outImage := image.NewNRGBA(image.Rect(0, 0, xres, yres)) to_byte := func(v float32) uint8 { // apply gamma and convert to 0..255 return uint8(Clamp(255.0*math.Pow(float64(v), 1.0/2.2), 0.0, 255.0)) } for y := 0; y < yres; y++ { for x := 0; x < xres; x++ { var fcolor color.NRGBA fcolor.R = to_byte(pixels[3*(y*xres+x)+2]) fcolor.G = to_byte(pixels[3*(y*xres+x)+1]) fcolor.B = to_byte(pixels[3*(y*xres+x)+0]) fcolor.A = 0xff outImage.Set(x, y, fcolor) } } f, err := os.Create(filename) defer f.Close() if err != nil { Error("Error writing TGA \"%s\"", filename) } else { tga.Encode(f, outImage) } }
func encode(m image.Image, name string) (err error) { var f *os.File if f, err = os.Create("testdata/" + name + ".tga"); err != nil { return } defer f.Close() err = tga.Encode(f, m) return }
func encode(m image.Image) (err error) { var f *os.File if f, err = os.Create("testdata/" + dstFilename); err != nil { return } defer f.Close() err = tga.Encode(f, m) return }