mirror of
https://github.com/42wim/matterbridge.git
synced 2024-12-10 19:22:00 -08:00
53cafa9f3d
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>
41 lines
742 B
Go
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
|
|
}
|