package img import ( "image" "image/draw" "image/png" "os" "github.com/anthonynsimon/bild/adjust" ) const ( StyleDark = 0.70 ) func Overlay(inputFile, overlayFile string, style float64) (err error) { thumb, err := os.Open(inputFile) if err != nil { return err } overlay, err := os.Open(overlayFile) if err != nil { return err } img0, err := png.Decode(thumb) if err != nil { return err } defer thumb.Close() img1, err := png.Decode(overlay) if err != nil { return err } defer overlay.Close() b0 := img0.Bounds() b1 := img1.Bounds() img0 = adjust.Brightness(img0, style) offset := image.Pt(b0.Dx()/2-b1.Dx()/2, b0.Dy()/2-b1.Dy()/2) m := image.NewRGBA(b0) draw.Draw(m, b0, img0, image.Point{}, draw.Src) draw.Draw(m, img1.Bounds().Add(offset), img1, image.Point{}, draw.Over) imgw, err := os.Create(inputFile) if err != nil { return err } png.Encode(imgw, m) defer imgw.Close() return nil }