gravity_type.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package processing
  2. import "fmt"
  3. type GravityType int
  4. func (gt GravityType) String() string {
  5. for k, v := range GravityTypes {
  6. if v == gt {
  7. return k
  8. }
  9. }
  10. return ""
  11. }
  12. func (gt GravityType) MarshalJSON() ([]byte, error) {
  13. for k, v := range GravityTypes {
  14. if v == gt {
  15. return []byte(fmt.Sprintf("%q", k)), nil
  16. }
  17. }
  18. return []byte("null"), nil
  19. }
  20. const (
  21. GravityUnknown GravityType = iota
  22. GravityCenter
  23. GravityNorth
  24. GravityEast
  25. GravitySouth
  26. GravityWest
  27. GravityNorthWest
  28. GravityNorthEast
  29. GravitySouthWest
  30. GravitySouthEast
  31. GravitySmart
  32. GravityFocusPoint
  33. // Watermark gravity types
  34. GravityReplicate
  35. )
  36. var GravityTypes = map[string]GravityType{
  37. "ce": GravityCenter,
  38. "no": GravityNorth,
  39. "ea": GravityEast,
  40. "so": GravitySouth,
  41. "we": GravityWest,
  42. "nowe": GravityNorthWest,
  43. "noea": GravityNorthEast,
  44. "sowe": GravitySouthWest,
  45. "soea": GravitySouthEast,
  46. "sm": GravitySmart,
  47. "fp": GravityFocusPoint,
  48. "re": GravityReplicate,
  49. }
  50. var commonGravityTypes = []GravityType{
  51. GravityCenter,
  52. GravityNorth,
  53. GravityEast,
  54. GravitySouth,
  55. GravityWest,
  56. GravityNorthWest,
  57. GravityNorthEast,
  58. GravitySouthWest,
  59. GravitySouthEast,
  60. }
  61. var CropGravityTypes = append(
  62. []GravityType{
  63. GravitySmart,
  64. GravityFocusPoint,
  65. },
  66. commonGravityTypes...,
  67. )
  68. var ExtendGravityTypes = append(
  69. []GravityType{
  70. GravityFocusPoint,
  71. },
  72. commonGravityTypes...,
  73. )
  74. var WatermarkGravityTypes = append(
  75. []GravityType{
  76. GravityReplicate,
  77. },
  78. commonGravityTypes...,
  79. )