41 lines
733 B
Go
41 lines
733 B
Go
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"errors"
|
|
"io"
|
|
|
|
vid "github.com/AlexEidt/Vidio"
|
|
)
|
|
|
|
var erreEncodeVideo = errors.New("не удалось создать видео")
|
|
|
|
func createBarnsLeyFernVideo(s *settings, w io.Writer) error {
|
|
s.OM = outputjpeg
|
|
|
|
opts := &vid.Options{
|
|
FPS: 1,
|
|
Quality: 0,
|
|
Delay: 1000,
|
|
}
|
|
|
|
vw, err := vid.NewVideoWriter(s.Fname, s.X, s.Y, opts)
|
|
if err != nil {
|
|
return errors.Join(erreEncodeVideo, err)
|
|
}
|
|
|
|
frames := 100
|
|
for range frames {
|
|
imgbuf := new(bytes.Buffer)
|
|
if err := createBarnsleyFernPng(s, imgbuf); err != nil {
|
|
return errors.Join(erreEncodeVideo, err)
|
|
}
|
|
|
|
if err := vw.Write(imgbuf.Bytes()); err != nil {
|
|
return errors.Join(erreEncodeVideo, err)
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|