1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.templating.imaging.variation;
35
36 import info.magnolia.imaging.ParameterProvider;
37 import info.magnolia.imaging.operations.ImageOperationChain;
38 import info.magnolia.imaging.operations.cropresize.AutoCropAndResize;
39 import info.magnolia.imaging.operations.cropresize.BoundedResize;
40 import info.magnolia.imaging.operations.cropresize.resizers.MultiStepResizer;
41 import info.magnolia.imaging.operations.load.FromBinaryNode;
42 import info.magnolia.module.site.SiteManager;
43
44 import javax.inject.Inject;
45 import javax.jcr.Node;
46
47
48
49
50
51
52 public class SimpleResizeVariation extends ImageOperationProvidingVariation {
53
54 private Integer width;
55
56 private Integer height;
57
58 private boolean crop = true;
59
60 @Inject
61 public SimpleResizeVariation(SiteManager siteManager) {
62 super(siteManager);
63 }
64
65 public void init() {
66 if (getImageOperation() == null) {
67 final ImageOperationChain<ParameterProvider<Node>> chain = new ImageOperationChain<ParameterProvider<Node>>();
68 chain.addOperation(new FromBinaryNode());
69
70 if (crop) {
71 final AutoCropAndResize resize = new AutoCropAndResize();
72 resize.setResizer(new MultiStepResizer());
73
74 if (getWidth() != null) {
75 resize.setTargetWidth(getWidth());
76 }
77 if (getHeight() != null) {
78 resize.setTargetHeight(getHeight());
79 }
80 chain.addOperation(resize);
81 } else {
82 final BoundedResize resize = new BoundedResize();
83 resize.setResizer(new MultiStepResizer());
84
85 if (getWidth() != null) {
86 resize.setMaxWidth(getWidth());
87 }
88 if (getHeight() != null) {
89 resize.setMaxHeight(getHeight());
90 }
91 chain.addOperation(resize);
92 }
93
94 setImageOperation(chain);
95 }
96 }
97
98 public Integer getWidth() {
99 return this.width;
100 }
101
102 public void setWidth(Integer width) {
103 this.width = width;
104 }
105
106 public Integer getHeight() {
107 return this.height;
108 }
109
110 public void setHeight(Integer height) {
111 this.height = height;
112 }
113
114 public boolean isCrop() {
115 return this.crop;
116 }
117
118 public void setCrop(boolean crop) {
119 this.crop = crop;
120 }
121
122 }