/** * Returns a 2D rendering context. * * This is a convenience method, see {@link #getContext(String)}. * * @return a 2D canvas rendering context */ public Context2d getContext2d() { return getCanvasElement().getContext2d(); }
/** * Returns a 2D rendering context. * * This is a convenience method, see {@link #getContext(String)}. * * @return a 2D canvas rendering context */ public Context2d getContext2d() { return getCanvasElement().getContext2d(); }
/** * Returns a 2D rendering context. * * This is a convenience method, see {@link #getContext(String)}. * * @return a 2D canvas rendering context */ public Context2d getContext2d() { return getCanvasElement().getContext2d(); }
protected Context2d getContext() { return getCanvas().getContext2d(); }
public Context2d getContext2D(){ return getCanvasElement().getContext2d(); }
public HtmlCanvas(Graphics gfx, HtmlImage image) { super(gfx, image); this.ctx = image.canvas.getContext2d(); float scale = image.scale().factor; ctx.scale(scale, scale); }
public HtmlCanvas(Graphics gfx, HtmlImage image) { super(gfx, image); this.ctx = image.canvas.getContext2d(); float scale = image.scale().factor; ctx.scale(scale, scale); }
private HtmlCanvas(CanvasElement canvas, float width, float height) { this(canvas.getContext2d(), canvas, width, height); canvas.setWidth(MathUtil.iceil(width)); canvas.setHeight(MathUtil.iceil(height)); }
/** * Native call to capture the frame of the video stream. */ protected String nativeCaptureToDataURL(CanvasElement canvas, Element element, String mimeType) { VideoElement videoElement = (VideoElement) element; int width = videoElement.getVideoWidth(); int height = videoElement.getVideoHeight(); if (Double.isNaN(width) || Double.isNaN(height)) { width = videoElement.getClientWidth(); height = videoElement.getClientHeight(); } canvas.setWidth(width); canvas.setHeight(height); Context2d context = canvas.getContext2d(); context.drawImage(videoElement, 0, 0, width, height); return canvas.toDataUrl(mimeType); }
/** * Warning: Scaling through the canvas will only work with images that use * premultiplied alpha. * * @param maxSize the max size of absoluteWidth or absoluteHeight * * @return a new Image, or the same one if no clamping was necessary */ public PixmapTextureData clampToMaxSize ( int maxSize ) { int imgWidth = image.getOffsetWidth(); int imgHeight = image.getOffsetHeight(); if ( imgWidth <= maxSize && imgHeight <= maxSize ) return this; int maxDimension = Math.max( imgWidth, imgHeight ); int newWidth = (int) Math.floor( imgWidth * maxSize / maxDimension ); int newHeight = (int) Math.floor( imgHeight * maxSize / maxDimension ); CanvasElement canvas = Document.get().createElement("canvas").cast(); canvas.setWidth(newWidth); canvas.setHeight(newHeight); Context2d context = canvas.getContext2d(); context.drawImage((ImageElement)image, 0, 0, imgWidth, imgHeight, 0, 0, newWidth, newHeight ); image.getParentElement().appendChild(canvas); image.removeFromParent(); image = canvas; return this; }
@Override public void setRgb(int startX, int startY, int width, int height, int[] rgbArray, int offset, int scanSize) { Context2d ctx = canvas.getContext2d(); ImageData imageData = ctx.createImageData(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 argb = rgbArray[dst + x]; pixelData.set(i++, (argb >> 16) & 255); pixelData.set(i++, (argb >> 8) & 255); pixelData.set(i++, (argb) & 255); pixelData.set(i++, (argb >> 24) & 255); } dst += scanSize; } ctx.putImageData(imageData, startX, startY); }
@Override public void setRgb(int startX, int startY, int width, int height, int[] rgbArray, int offset, int scanSize) { Context2d ctx = canvas.getContext2d(); ImageData imageData = ctx.createImageData(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 argb = rgbArray[dst + x]; pixelData.set(i++, (argb >> 16) & 255); pixelData.set(i++, (argb >> 8) & 255); pixelData.set(i++, (argb) & 255); pixelData.set(i++, (argb >> 24) & 255); } dst += scanSize; } ctx.putImageData(imageData, startX, startY); }
@Override public void getRgb(int startX, int startY, int width, int height, int[] rgbArray, int offset, int scanSize) { assert isLoaded() : "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; } }
protected void applyResize() { CanvasElement element = getElement().cast(); double ratio = getRatio(); element.setWidth((int) (getOffsetWidth() * ratio)); element.setHeight((int) (getOffsetHeight() * ratio)); element.getContext2d().scale(ratio, ratio); getSignaturePad().clear(); }
@Override public void getRgb(int startX, int startY, int width, int height, int[] rgbArray, int offset, int scanSize) { assert isLoaded() : "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; } }
@Override public void setRgb(int startX, int startY, int width, int height, int[] rgbArray, int offset, int scanSize) { Context2d ctx = canvas.canvas().getContext2d(); ImageData imageData = ctx.createImageData(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 argb = rgbArray[dst + x]; pixelData.set(i++, (argb >> 16) & 255); pixelData.set(i++, (argb >> 8) & 255); pixelData.set(i++, (argb) & 255); pixelData.set(i++, (argb >> 24) & 255); } dst += scanSize; } ctx.putImageData(imageData, startX, startY); } }
@Override protected Pattern toSubPattern(AbstractImageGL<?> image, boolean repeatX, boolean repeatY, float x, float y, float width, float height) { CanvasElement canvas = Document.get().createElement("canvas").<CanvasElement>cast(); canvas.setWidth(MathUtil.iceil(width)); canvas.setHeight(MathUtil.iceil(height)); canvas.getContext2d().drawImage(img, x, y, width, height, 0, 0, width, height); ImageElement subelem = canvas.cast(); return new HtmlPattern(image, subelem, repeatX, repeatY); }
@Override public void getRgb(int startX, int startY, int width, int height, int[] rgbArray, int offset, int scanSize) { assert 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; } }
@Override public PixmapTextureData toPowerOfTwo() { if(isPowerOfTwo()) return this; int width = image.getOffsetWidth(); int height = image.getOffsetHeight(); CanvasElement canvas = Document.get().createElement("canvas").cast(); // Scale up the texture to the next highest power of two dimensions. canvas.setWidth( Mathematics.getNextHighestPowerOfTwo( width ) ); canvas.setHeight( Mathematics.getNextHighestPowerOfTwo( height ) ); Context2d context = canvas.getContext2d(); context.drawImage((ImageElement)image, 0, 0, width, height); image = canvas; return this; }
rootElement.appendChild(elem); ctx = elem.getContext2d(); ctx.scale(config.scaleFactor, config.scaleFactor); canvas = new AbstractHtmlCanvas(ctx, 0, 0) {