diff options
Diffstat (limited to 'cmd/thumbnail-gen/main.go')
| -rw-r--r-- | cmd/thumbnail-gen/main.go | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/cmd/thumbnail-gen/main.go b/cmd/thumbnail-gen/main.go index 4837770..78487eb 100644 --- a/cmd/thumbnail-gen/main.go +++ b/cmd/thumbnail-gen/main.go @@ -14,6 +14,9 @@ var ( intervalFlag = flag.Int("interval", 20, "Interval in seconds between thumbnails") maxThumbnailsFlag = flag.Int("max", 0, "Max Thumbnails, default as much as possible with interval") blackFilterFlag = flag.Bool("filter", true, "Try to filter out black frames, might be an expensive operation") + formatFlag = flag.String("format", "png", "Output format") + segmentsFlag = flag.Bool("segments", false, "If active uses interval for how many segments are supposed to be done") + widthFlag = flag.Int("width", -1, "Set the width of the picture to scale to, -1 = max") ) func main() { @@ -21,7 +24,15 @@ func main() { if *pathFlag != "" { // thumbnails, num, err := thumbnailgen.GetThumbnail(*pathFlag, *intervalFlag, *maxThumbnailsFlag, *blackFilterFlag) - thumbnails, num, err := thumbnailgen.GetThumbnailSegments(*pathFlag, 12, *blackFilterFlag) + opts := thumbnailgen.NewDefaultOptions() + thumbnails, num, err := opts.Apply(func(o *thumbnailgen.Options) { + o.EnableFilter = *blackFilterFlag + o.Interval = *intervalFlag + o.Format = *formatFlag + o.UseSegments = *segmentsFlag + o.Segments = *intervalFlag + o.Scale = fmt.Sprintf("%d:-1", *widthFlag) + }).GetThumbnail(*pathFlag) if err != nil { panic(err) } @@ -30,7 +41,7 @@ func main() { name := filepath.Base(*pathFlag) for i, thumbnail := range thumbnails[:num] { - err := os.WriteFile(fmt.Sprintf("%s-%d.png", name, i), thumbnail, 0600) + err := os.WriteFile(fmt.Sprintf("%s-%d.%s", name, i, *formatFlag), thumbnail, 0600) if err != nil { panic(err) } |
