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.ui.mediaeditor.action;
35
36 import info.magnolia.event.EventBus;
37 import info.magnolia.ui.api.action.AbstractAction;
38 import info.magnolia.ui.ValueContext;
39 import info.magnolia.ui.mediaeditor.MediaEditorEventBus;
40 import info.magnolia.ui.mediaeditor.data.MediaState;
41 import info.magnolia.ui.mediaeditor.provider.MediaEditorActionDefinition;
42
43 import java.awt.image.BufferedImage;
44 import java.io.ByteArrayInputStream;
45 import java.io.ByteArrayOutputStream;
46 import java.io.IOException;
47 import java.io.InputStream;
48
49 import javax.imageio.ImageIO;
50 import javax.inject.Named;
51
52 import org.apache.commons.io.IOUtils;
53 import org.slf4j.Logger;
54 import org.slf4j.LoggerFactory;
55
56
57
58
59 public abstract class MediaEditorAction extends AbstractAction<MediaEditorActionDefinition> {
60 private static final Logger log = LoggerFactory.getLogger(MediaEditorAction.class);
61
62 protected final static String DEFAULT_FORMAT = "png";
63
64 protected ValueContext<MediaState> valueContext;
65
66 protected EventBus eventBus;
67
68 public MediaEditorAction(MediaEditorActionDefinition definition,
69 ValueContext<MediaState> valueContext,
70 @Named(MediaEditorEventBus.NAME) EventBus eventBus) {
71 super(definition);
72 this.valueContext = valueContext;
73 this.eventBus = eventBus;
74 }
75
76 protected InputStream createStreamSource(final BufferedImage img, final String formatName) {
77 ByteArrayOutputStream out2 = null;
78 try {
79 if (img == null) {
80 return null;
81 }
82 out2 = new ByteArrayOutputStream();
83 ImageIO.write(img, formatName, out2);
84 return new ByteArrayInputStream(out2.toByteArray());
85 } catch (IOException e) {
86 log.error("Error occurred while creating image stream: " + e.getMessage(), e);
87 } finally {
88 IOUtils.closeQuietly(out2);
89 }
90 return null;
91 }
92 }