package main

import (
	"image"
	"image/color"

	"opslag.de/schobers/tins2020/img"
)

func colorImage(path string, col color.Color) error {
	src, err := img.DecodeImage(path)
	if err != nil {
		return err
	}

	colNRGBA := color.NRGBAModel.Convert(col).(color.NRGBA)
	bounds := src.Bounds()
	dst := image.NewRGBA(bounds)
	for y := bounds.Min.Y; y < bounds.Max.Y; y++ {
		for x := bounds.Min.X; x < bounds.Max.X; x++ {
			c := src.At(x, y)
			srcCol := color.NRGBAModel.Convert(c).(color.NRGBA)
			if srcCol.A > 0 {
				dstCol := colNRGBA
				dstCol.A = srcCol.A
				dst.Set(x, y, dstCol)
			} else {
				dst.Set(x, y, c)
			}
		}
	}
	return img.EncodePNG(path, dst)
	return nil
}