added api method to merge images. canvas
authorAnton Epple <toni.epple@eppleton.de>
Sun, 08 Sep 2013 10:58:10 +0200
branchcanvas
changeset 12670f775bd8d210
parent 1266 51d092a2bd4f
child 1268 7937df26a5a7
added api method to merge images.
logObject for Logger
javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/HTML5GraphicsEnvironment.java
javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Logger.java
     1.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/HTML5GraphicsEnvironment.java	Sun Sep 08 10:44:22 2013 +0200
     1.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/HTML5GraphicsEnvironment.java	Sun Sep 08 10:58:10 2013 +0200
     1.3 @@ -450,7 +450,6 @@
     1.4  
     1.5  //    @JavaScriptBody(args = {"path"}, body = "var b = new Image(); b.src=path; return b;")
     1.6  //    public native Image getImageForPathImpl(String path);
     1.7 -
     1.8      @Override
     1.9      public int getHeight() {
    1.10          return canvas.getHeight();
    1.11 @@ -473,4 +472,45 @@
    1.12  
    1.13      @JavaScriptBody(args = {"src"}, body = "var image = new Image(); image.src = src; return image;")
    1.14      private static native Object createImage(String src);
    1.15 +
    1.16 +    @Override
    1.17 +    public int getWidth(Image image, Object nativeImage) {
    1.18 +        if (nativeImage == null) {
    1.19 +            nativeImage = createImage(image.getSrc());
    1.20 +        }
    1.21 +        return getWidth(nativeImage);
    1.22 +    }
    1.23 +
    1.24 +    @JavaScriptBody(args = {"nativeImage"}, body = "return nativeImage.naturalWidth;")
    1.25 +    private static native int getWidth(Object nativeImage);
    1.26 +
    1.27 +    @Override
    1.28 +    public int getHeight(Image image, Object nativeImage) {
    1.29 +        if (nativeImage == null) {
    1.30 +            nativeImage = createImage(image.getSrc());
    1.31 +        }
    1.32 +        return getHeight(nativeImage);
    1.33 +    }
    1.34 +
    1.35 +    @JavaScriptBody(args = {"nativeImage"}, body = "return nativeImage.naturalHeight;")
    1.36 +    private static native int getHeight(Object nativeImage);
    1.37 +
    1.38 +    @Override
    1.39 +    public Object mergeImages(Image a, Image b, Object cachedA, Object cachedB) {
    1.40 +        return mergeImages(cachedA, cachedB);
    1.41 +    }
    1.42 +
    1.43 +    @JavaScriptBody(args = {"img1", "img2"}, body = "var canvas = document.createElement('img');\n"
    1.44 +            + "var context = canvas.getContext(\"2d\");\n"
    1.45 +            + "var width = img1.width;\n"
    1.46 +            + "var height = img1.height;\n"
    1.47 +            + "canvas.width = width;\n"
    1.48 +            + "canvas.height = height;\n"
    1.49 +            + "context.drawImage(img1, 0, 0);\n"
    1.50 +            + "context.drawImage(img2, 0, 0);\n"
    1.51 +            + "url = canvas.toDataURL();\n"
    1.52 +            + "var resultImage = document.createElement('img');\n"
    1.53 +            + "resultImage.src=url;\n"
    1.54 +            + "return resultImage;")
    1.55 +    public static native Object mergeImages(Object img1, Object img2);
    1.56  }
     2.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Logger.java	Sun Sep 08 10:44:22 2013 +0200
     2.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Logger.java	Sun Sep 08 10:58:10 2013 +0200
     2.3 @@ -15,4 +15,7 @@
     2.4      @JavaScriptBody(args = "message",body = "console.log(message)")
     2.5      public static native void log(String text);
     2.6      
     2.7 +    @JavaScriptBody(args = "object",body = "console.log(object)")
     2.8 +    public static native void logObject(Object object);
     2.9 +    
    2.10  }