matterbridge/vendor/github.com/Benau/tgsconverter/libtgsconverter/imagewriter.go
Benau 53cafa9f3d
Convert .tgs with go libraries (and cgo) (telegram) (#1569)
This commit adds support for go/cgo tgs conversion when building with the -tags `cgo`
The default binaries are still "pure" go and uses the old way of converting.

* Move lottie_convert.py conversion code to its own file

* Add optional libtgsconverter

* Update vendor

* Apply suggestions from code review

* Update bridge/helper/libtgsconverter.go

Co-authored-by: Wim <wim@42.be>
2021-08-24 22:32:50 +02:00

41 lines
742 B
Go

package libtgsconverter
import "image"
type imageWriter interface {
init(w uint, h uint, options ConverterOptions)
SupportsAnimation() bool
AddFrame(image *image.RGBA, fps uint) error
Result() []byte
}
func sameImage(a *image.RGBA, b *image.RGBA) bool {
if len(a.Pix) != len(b.Pix) {
return false
}
for i, v := range a.Pix {
if v != b.Pix[i] {
return false
}
}
return true
}
func newImageWriter(extension string, w uint, h uint, options ConverterOptions) imageWriter {
var writer imageWriter
switch extension {
case "apng":
writer = &toapng{}
case "gif":
writer = &togif{}
case "png":
writer = &topng{}
case "webp":
writer = &towebp{}
default:
return nil
}
writer.init(w, h, options)
return writer
}