diff -r 633572e14095 -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 Mon May 27 14:13:01 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); }