2022-04-24 14:24:54 +02:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2022-04-26 13:51:49 +02:00
|
|
|
"flag"
|
2022-05-01 09:36:52 +02:00
|
|
|
"image"
|
2022-04-24 14:24:54 +02:00
|
|
|
_ "image/jpeg"
|
|
|
|
_ "image/png"
|
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
2022-04-26 13:51:49 +02:00
|
|
|
// command line arguments
|
|
|
|
flag.StringVar(&ConfigRegister.Method, "blending", "darken", "Blending methods : darken, lighten, fuckyfun")
|
|
|
|
flag.StringVar(&ConfigRegister.OutputDir, "output", "./", "Output directory")
|
2022-05-01 09:48:37 +02:00
|
|
|
flag.StringVar(&ConfigRegister.InputDir, "input", "/home/gator/Photos", "Input directory. Where to look the images from")
|
2022-05-01 09:36:52 +02:00
|
|
|
flag.StringVar(&ConfigRegister.BaseImage, "base-img", "", "Path to the base image to work with. Random image if not set")
|
2022-05-01 15:33:55 +02:00
|
|
|
flag.StringVar(&ConfigRegister.Dimensions, "dimensions", "800x600", "Out image dimensions. <width>x<height>")
|
2022-04-26 13:51:49 +02:00
|
|
|
flag.Parse()
|
|
|
|
|
2022-05-01 15:33:55 +02:00
|
|
|
// set output's width and height
|
|
|
|
ConfigRegister.SetOutputDimensions()
|
|
|
|
|
2022-04-24 14:24:54 +02:00
|
|
|
// get two random images and load them
|
2022-05-01 09:36:52 +02:00
|
|
|
var img1 image.Image
|
|
|
|
if ConfigRegister.BaseImage != "" {
|
|
|
|
img1 = loadImage(ConfigRegister.BaseImage)
|
|
|
|
} else {
|
|
|
|
img1 = loadImage(getRandomImage())
|
|
|
|
}
|
|
|
|
|
2022-05-01 09:15:49 +02:00
|
|
|
img2 := loadImage(getRandomImage())
|
2022-04-24 14:24:54 +02:00
|
|
|
|
2022-04-26 13:51:49 +02:00
|
|
|
// pool of workers unionizing, ready to blend a new picture using the power of friendship
|
2022-04-24 19:20:08 +02:00
|
|
|
var pool blendWorkerPool
|
|
|
|
pool.InitWorkerPool()
|
2022-04-24 14:24:54 +02:00
|
|
|
|
2022-04-26 13:51:49 +02:00
|
|
|
// main blending routine
|
2022-04-24 19:20:08 +02:00
|
|
|
pool.BlendImages(img1, img2)
|
2022-04-24 14:24:54 +02:00
|
|
|
}
|