mirror of
https://github.com/coalaura/ffwebp.git
synced 2025-09-08 05:49:54 +00:00
--sniff
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user