1
0
mirror of https://github.com/imgproxy/imgproxy.git synced 2025-12-23 22:11:10 +02:00
Files
imgproxy/processing/gravity_type.go
Victor Sokolov 69c7d2f117 IMG-76: new linter config & fixes (#1587)
* IMG-76: new linter config & fixes

* Upgrade golangci-lint to 2.7.2
2025-12-10 13:46:22 +01:00

91 lines
1.5 KiB
Go

package processing
import "fmt"
type GravityType int
func (gt GravityType) String() string {
for k, v := range GravityTypes {
if v == gt {
return k
}
}
return ""
}
func (gt GravityType) MarshalJSON() ([]byte, error) {
for k, v := range GravityTypes {
if v == gt {
return fmt.Appendf([]byte{}, "%q", k), nil
}
}
return fmt.Appendf([]byte{}, "%s", "null"), nil
}
const (
GravityUnknown GravityType = iota
GravityCenter
GravityNorth
GravityEast
GravitySouth
GravityWest
GravityNorthWest
GravityNorthEast
GravitySouthWest
GravitySouthEast
GravitySmart
GravityFocusPoint
// GravityReplicate and below: watermark gravity types
GravityReplicate
)
var GravityTypes = map[string]GravityType{
"ce": GravityCenter,
"no": GravityNorth,
"ea": GravityEast,
"so": GravitySouth,
"we": GravityWest,
"nowe": GravityNorthWest, //nolint:misspell
"noea": GravityNorthEast,
"sowe": GravitySouthWest,
"soea": GravitySouthEast,
"sm": GravitySmart,
"fp": GravityFocusPoint,
"re": GravityReplicate,
}
var commonGravityTypes = []GravityType{
GravityCenter,
GravityNorth,
GravityEast,
GravitySouth,
GravityWest,
GravityNorthWest,
GravityNorthEast,
GravitySouthWest,
GravitySouthEast,
}
var CropGravityTypes = append(
[]GravityType{
GravitySmart,
GravityFocusPoint,
},
commonGravityTypes...,
)
var ExtendGravityTypes = append(
[]GravityType{
GravityFocusPoint,
},
commonGravityTypes...,
)
var WatermarkGravityTypes = append(
[]GravityType{
GravityReplicate,
},
commonGravityTypes...,
)