You've already forked collage-maker
initial commit
This commit is contained in:
49
main.go
Normal file
49
main.go
Normal file
@@ -0,0 +1,49 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user