collage-maker/main.go

50 lines
981 B
Go
Raw Normal View History

2023-08-01 19:16:46 -04:00
package main
import (
"fmt"
"image"
"image/draw"
"image/jpeg"
"os"
)
func main() {
imgFile1, err := os.Open("img1.jpg")
if err != nil {
fmt.Println(err)
}
imgFile2, err := os.Open("img2.jpg")
if err != nil {
fmt.Println(err)
}
img1, _, err := image.Decode(imgFile1)
if err != nil {
fmt.Println(err)
}
img2, _, err := image.Decode(imgFile2)
if err != nil {
fmt.Println(err)
}
//starting position of the second image (bottom left)
sp2 := image.Point{img1.Bounds().Dx(), 0}
//new rectangle for the second image
r2 := image.Rectangle{sp2, sp2.Add(img2.Bounds().Size())}
//rectangle for the big image
r := image.Rectangle{image.Point{0, 0}, r2.Max}
rgba := image.NewRGBA(r)
draw.Draw(rgba, img1.Bounds(), img1, image.Point{0, 0}, draw.Src)
draw.Draw(rgba, r2, img2, image.Point{0, 0}, draw.Src)
out, err := os.Create("./output.jpg")
if err != nil {
fmt.Println(err)
}
var opt jpeg.Options
opt.Quality = 80
jpeg.Encode(out, rgba, &opt)
}