# HG changeset patch # User Anton Epple # Date 1378630690 -7200 # Node ID 0f775bd8d2100a4b55b32b98f504956ebb237a86 # Parent 51d092a2bd4f87365254671e3e8c9a8cc47d15db added api method to merge images. logObject for Logger diff -r 51d092a2bd4f -r 0f775bd8d210 javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/HTML5GraphicsEnvironment.java --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/HTML5GraphicsEnvironment.java Sun Sep 08 10:44:22 2013 +0200 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/HTML5GraphicsEnvironment.java Sun Sep 08 10:58:10 2013 +0200 @@ -450,7 +450,6 @@ // @JavaScriptBody(args = {"path"}, body = "var b = new Image(); b.src=path; return b;") // public native Image getImageForPathImpl(String path); - @Override public int getHeight() { return canvas.getHeight(); @@ -473,4 +472,45 @@ @JavaScriptBody(args = {"src"}, body = "var image = new Image(); image.src = src; return image;") private static native Object createImage(String src); + + @Override + public int getWidth(Image image, Object nativeImage) { + if (nativeImage == null) { + nativeImage = createImage(image.getSrc()); + } + return getWidth(nativeImage); + } + + @JavaScriptBody(args = {"nativeImage"}, body = "return nativeImage.naturalWidth;") + private static native int getWidth(Object nativeImage); + + @Override + public int getHeight(Image image, Object nativeImage) { + if (nativeImage == null) { + nativeImage = createImage(image.getSrc()); + } + return getHeight(nativeImage); + } + + @JavaScriptBody(args = {"nativeImage"}, body = "return nativeImage.naturalHeight;") + private static native int getHeight(Object nativeImage); + + @Override + public Object mergeImages(Image a, Image b, Object cachedA, Object cachedB) { + return mergeImages(cachedA, cachedB); + } + + @JavaScriptBody(args = {"img1", "img2"}, body = "var canvas = document.createElement('img');\n" + + "var context = canvas.getContext(\"2d\");\n" + + "var width = img1.width;\n" + + "var height = img1.height;\n" + + "canvas.width = width;\n" + + "canvas.height = height;\n" + + "context.drawImage(img1, 0, 0);\n" + + "context.drawImage(img2, 0, 0);\n" + + "url = canvas.toDataURL();\n" + + "var resultImage = document.createElement('img');\n" + + "resultImage.src=url;\n" + + "return resultImage;") + public static native Object mergeImages(Object img1, Object img2); } diff -r 51d092a2bd4f -r 0f775bd8d210 javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Logger.java --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Logger.java Sun Sep 08 10:44:22 2013 +0200 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Logger.java Sun Sep 08 10:58:10 2013 +0200 @@ -15,4 +15,7 @@ @JavaScriptBody(args = "message",body = "console.log(message)") public static native void log(String text); + @JavaScriptBody(args = "object",body = "console.log(object)") + public static native void logObject(Object object); + }