Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.expressionevaluator / org.gvsig.expressionevaluator.lib / org.gvsig.expressionevaluator.lib.impl / src / main / java / org / gvsig / expressionevaluator / impl / function / image / ImageReadFunction.java @ 44198

History | View | Annotate | Download (1.93 KB)

1
package org.gvsig.expressionevaluator.impl.function.image;
2

    
3
import java.awt.Graphics2D;
4
import java.awt.Image;
5
import java.awt.RenderingHints;
6
import java.awt.geom.AffineTransform;
7
import java.awt.image.BufferedImage;
8
import java.io.ByteArrayInputStream;
9
import java.io.File;
10
import java.io.IOException;
11
import java.net.URL;
12
import javax.imageio.ImageIO;
13
import org.apache.commons.codec.DecoderException;
14
import org.apache.commons.codec.binary.Base64;
15
import org.apache.commons.codec.binary.Hex;
16
import org.apache.commons.lang3.Range;
17
import org.gvsig.expressionevaluator.Interpreter;
18
import org.gvsig.expressionevaluator.spi.AbstractFunction;
19

    
20
public class ImageReadFunction extends AbstractFunction {
21

    
22
    public ImageReadFunction() {
23
        super(
24
                "Image", "IMAGEREAD", Range.is(1),
25
                "Read an image from a data source and return it as a 'Java BufferedImage' object.\n"
26
                + "The data source of the image can be:\n<ul>"
27
                + "<li>A byte array</li>"
28
                + "<li>A URL</li>"
29
                + "<li>A FILE</li>"
30
                + "<li>A hexadecimal coded string</li>"
31
                + "<li>A base64 coded string</li>"
32
                + "</ul>",
33
                "IMAGEREAD({{source}})",
34
                new String[]{
35
                    "Value from which to load the image"
36
                },
37
                "BufferedImage",
38
                false
39
        );
40
    }
41

    
42
    @Override
43
    public boolean allowConstantFolding() {
44
        return true;
45
    }
46

    
47
    @Override
48
    public Object call(Interpreter interpreter, Object[] args) {
49
        Object arg0 = this.getObject(args, 0);
50
        SimpleImage image = ImageReadFunction.createSimpleImage(arg0);
51
        if( image.isEmpty() ) {
52
            return null;
53
        }
54
        return image.getBufferedImage();
55
    }
56

    
57
    public static SimpleImage createSimpleImage(Object source) {
58
        SimpleImage image = new SimpleImage(source);
59
        return image;
60
    }
61
}