Example usage for com.google.gwt.corp.gfx.client.canvas CanvasRenderingContext2D drawImage

List of usage examples for com.google.gwt.corp.gfx.client.canvas CanvasRenderingContext2D drawImage

Introduction

In this page you can find the example usage for com.google.gwt.corp.gfx.client.canvas CanvasRenderingContext2D drawImage.

Prototype

public final native void drawImage(ImageElement image, float dx, float dy) ;

Source Link

Document

Draws an image.

Usage

From source file:jake2.gwt.client.GwtWebGLRenderer.java

License:Open Source License

public void setPicDataLowLevel(image_t image, ImageElement img) {
    CanvasElement canvas = (CanvasElement) Document.get().createElement("canvas");
    int w = img.getWidth();
    int h = img.getHeight();
    canvas.setWidth(w);//from w  w  w  .j  a va 2  s  .  com
    canvas.setHeight(h);
    //      canvas.getStyle().setProperty("border", "solid 1px green");
    canvas.getStyle().setDisplay(Display.NONE);
    Document.get().getBody().appendChild(canvas);
    CanvasRenderingContext2D ctx = canvas.getContext2D();
    ctx.drawImage(img, 0, 0);
    ImageData data = ctx.getImageData(0, 0, w, h);
    CanvasPixelArray pixels = data.getData();

    int count = w * h * 4;
    byte[] pic = new byte[count];
    for (int i = 0; i < count; i += 4) {
        pic[i + 3] = (byte) pixels.get(i + 3); // alpha, then bgr
        pic[i + 2] = (byte) pixels.get(i + 2);
        pic[i + 1] = (byte) pixels.get(i + 1);
        pic[i] = (byte) pixels.get(i);
    }

    GL_SetPicData(image, pic, w, h, 32);
}