1
0
mirror of https://github.com/coalaura/ffwebp.git synced 2025-09-08 05:49:54 +00:00
This commit is contained in:
Laura
2025-08-12 15:47:54 +02:00
parent 9e754ddad8
commit ebd42dc4fd
2 changed files with 18 additions and 11 deletions

View File

@@ -37,6 +37,11 @@ func main() {
Aliases: []string{"c"}, Aliases: []string{"c"},
Usage: "force output codec (jpeg, png, ...)", Usage: "force output codec (jpeg, png, ...)",
}, },
&cli.BoolFlag{
Name: "sniff",
Aliases: []string{"f"},
Usage: "force sniffing of input codec (ignore extension)",
},
&cli.IntFlag{ &cli.IntFlag{
Name: "quality", Name: "quality",
Aliases: []string{"q"}, Aliases: []string{"q"},
@@ -117,7 +122,7 @@ func run(_ context.Context, cmd *cli.Command) error {
logx.Printf("reading input from <stdin>\n") logx.Printf("reading input from <stdin>\n")
} }
sniffed, reader, err := codec.Sniff(reader, input) sniffed, reader, err := codec.Sniff(reader, input, cmd.Bool("sniff"))
if err != nil { if err != nil {
return err return err
} }

View File

@@ -29,16 +29,18 @@ func (s *Sniffed) String() string {
return builder.String() return builder.String()
} }
func Sniff(reader io.Reader, input string) (*Sniffed, io.Reader, error) { func Sniff(reader io.Reader, input string, ignoreExtension bool) (*Sniffed, io.Reader, error) {
ext := strings.ToLower(strings.TrimPrefix(filepath.Ext(input), ".")) if !ignoreExtension {
if ext != "" { ext := strings.ToLower(strings.TrimPrefix(filepath.Ext(input), "."))
codec, _ := FindCodec(ext) if ext != "" {
if codec != nil { codec, _ := FindCodec(ext)
return &Sniffed{ if codec != nil {
Header: []byte("." + ext), return &Sniffed{
Confidence: 100, Header: []byte("." + ext),
Codec: codec, Confidence: 100,
}, reader, nil Codec: codec,
}, reader, nil
}
} }
} }