public static final String toDataURL(ImageElement element, DataURLType mimetype, double quality) {
    if (null == mimetype) {
      mimetype = DataURLType.PNG;
    }
    ScratchCanvas canvas = new ScratchCanvas(element.getWidth(), element.getHeight());

    canvas.getContext().drawImage(element, 0, 0, element.getWidth(), element.getHeight());

    return canvas.toDataURL(mimetype, quality);
  }
  public static final String toDataURL(final ImageElement element) {
    final ScratchCanvas canvas = new ScratchCanvas(element.getWidth(), element.getHeight());

    canvas.getContext().drawImage(element, 0, 0);

    return canvas.toDataURL();
  }
Example #3
0
  @Override
  public void getRgb(
      int startX, int startY, int width, int height, int[] rgbArray, int offset, int scanSize) {
    Asserts.checkState(isReady(), "Cannot getRgb() a non-ready image");

    if (canvas == null) {
      canvas = img.getOwnerDocument().createCanvasElement();
      canvas.setHeight(img.getHeight());
      canvas.setWidth(img.getWidth());
      canvas.getContext2d().drawImage(img, 0, 0);
      // img.getOwnerDocument().getBody().appendChild(canvas);
    }

    Context2d ctx = canvas.getContext2d();
    ImageData imageData = ctx.getImageData(startX, startY, width, height);
    CanvasPixelArray pixelData = imageData.getData();
    int i = 0;
    int dst = offset;
    for (int y = 0; y < height; y++) {
      for (int x = 0; x < width; x++) {
        int r = pixelData.get(i++);
        int g = pixelData.get(i++);
        int b = pixelData.get(i++);
        int a = pixelData.get(i++);
        rgbArray[dst + x] = a << 24 | r << 16 | g << 8 | b;
      }
      dst += scanSize;
    }
  }
  /**
   * Draws an input image at a given position on the canvas. Resizes image according to specified
   * width and height.
   *
   * <p>We recommend that the pixel and coordinate spaces be the same to provide consistent
   * positioning and scaling results
   *
   * @param img The image to be drawn
   * @param offsetX x coord of the top left corner in the destination space
   * @param offsetY y coord of the top left corner in the destination space
   * @param width the size of the image in the destination space
   * @param height the size of the image in the destination space
   */
  public void drawImage(
      ImageElement img, double offsetX, double offsetY, double width, double height) {

    impl.drawImage(img, 0, 0, img.getWidth(), img.getHeight(), offsetX, offsetY, width, height);
  }
 /**
  * Draws an input image to a specified position on the canvas. Size defaults to the default
  * dimensions of the image.
  *
  * @param img the image to be drawn
  * @param offsetX x coord of the top left corner in the destination space
  * @param offsetY y coord of the top left corner in the destination space
  */
 public void drawImage(ImageElement img, double offsetX, double offsetY) {
   drawImage(img, offsetX, offsetY, img.getWidth(), img.getHeight());
 }
Example #6
0
 @Override
 public float width() {
   return img == null ? 0 : scale.invScaled(img.getWidth());
 }