Support webp and apng analyze

This commit is contained in:
2025-02-24 21:15:14 +08:00
parent 671b3fa5a3
commit 10f75ab37a
3 changed files with 16 additions and 1 deletions

View File

@ -21,9 +21,11 @@ import (
"git.solsynth.dev/hypernet/paperclip/pkg/internal/models"
jsoniter "github.com/json-iterator/go"
"github.com/k0kubun/go-ansi"
"github.com/kettek/apng"
"github.com/rs/zerolog/log"
"github.com/schollz/progressbar/v3"
"github.com/spf13/viper"
"golang.org/x/image/webp"
"gopkg.in/vansante/go-ffprobe.v2"
_ "image/gif"
@ -175,7 +177,15 @@ func AnalyzeAttachment(file models.Attachment) error {
return fmt.Errorf("unable to open file: %v", err)
}
defer reader.Close()
im, _, err := image.Decode(reader)
var im image.Image
switch file.MimeType {
case "image/webp":
im, err = webp.Decode(reader)
case "image/apng":
im, err = apng.Decode(reader)
default:
im, _, err = image.Decode(reader)
}
if err != nil {
return fmt.Errorf("unable to decode file as an image: %v", err)
}