mirror of
https://github.com/imgproxy/imgproxy.git
synced 2025-10-11 04:32:29 +02:00
Refactor gravity parsing
This commit is contained in:
@@ -220,19 +220,27 @@ func isGravityOffcetValid(gravity GravityType, offset float64) bool {
|
|||||||
func parseGravity(g *GravityOptions, args []string, allowedTypes []GravityType) error {
|
func parseGravity(g *GravityOptions, args []string, allowedTypes []GravityType) error {
|
||||||
nArgs := len(args)
|
nArgs := len(args)
|
||||||
|
|
||||||
if nArgs > 3 {
|
|
||||||
return fmt.Errorf("Invalid gravity arguments: %v", args)
|
|
||||||
}
|
|
||||||
|
|
||||||
if t, ok := gravityTypes[args[0]]; ok && slices.Contains(allowedTypes, t) {
|
if t, ok := gravityTypes[args[0]]; ok && slices.Contains(allowedTypes, t) {
|
||||||
g.Type = t
|
g.Type = t
|
||||||
} else {
|
} else {
|
||||||
return fmt.Errorf("Invalid gravity: %s", args[0])
|
return fmt.Errorf("Invalid gravity: %s", args[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
if g.Type == GravitySmart && nArgs > 1 {
|
switch g.Type {
|
||||||
|
case GravitySmart:
|
||||||
|
if nArgs > 1 {
|
||||||
return fmt.Errorf("Invalid gravity arguments: %v", args)
|
return fmt.Errorf("Invalid gravity arguments: %v", args)
|
||||||
} else if g.Type == GravityFocusPoint && nArgs != 3 {
|
}
|
||||||
|
g.X, g.Y = 0.0, 0.0
|
||||||
|
|
||||||
|
case GravityFocusPoint:
|
||||||
|
if nArgs != 3 {
|
||||||
|
return fmt.Errorf("Invalid gravity arguments: %v", args)
|
||||||
|
}
|
||||||
|
fallthrough
|
||||||
|
|
||||||
|
default:
|
||||||
|
if nArgs > 3 {
|
||||||
return fmt.Errorf("Invalid gravity arguments: %v", args)
|
return fmt.Errorf("Invalid gravity arguments: %v", args)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -251,6 +259,7 @@ func parseGravity(g *GravityOptions, args []string, allowedTypes []GravityType)
|
|||||||
return fmt.Errorf("Invalid gravity Y: %s", args[2])
|
return fmt.Errorf("Invalid gravity Y: %s", args[2])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user