mirror of
https://github.com/niklasvh/html2canvas.git
synced 2023-08-10 21:13:10 +03:00
54 lines
1.6 KiB
JavaScript
54 lines
1.6 KiB
JavaScript
function CanvasRenderer() {
|
|
Renderer.call(this);
|
|
this.canvas = document.createElement("canvas");
|
|
this.canvas.width = window.innerWidth;
|
|
this.canvas.height = window.innerHeight;
|
|
this.ctx = this.canvas.getContext("2d");
|
|
this.ctx.textBaseline = "bottom";
|
|
document.body.appendChild(this.canvas);
|
|
}
|
|
|
|
CanvasRenderer.prototype = Object.create(Renderer.prototype);
|
|
|
|
CanvasRenderer.prototype.setFillStyle = function(color) {
|
|
this.ctx.fillStyle = color;
|
|
return this.ctx;
|
|
};
|
|
|
|
CanvasRenderer.prototype.rectangle = function(left, top, width, height, color) {
|
|
this.setFillStyle(color).fillRect(left, top, width, height);
|
|
};
|
|
|
|
CanvasRenderer.prototype.drawShape = function(shape, color) {
|
|
this.shape(shape);
|
|
this.setFillStyle(color).fill();
|
|
};
|
|
|
|
CanvasRenderer.prototype.clip = function(shape, callback, context) {
|
|
this.ctx.save();
|
|
this.shape(shape).clip();
|
|
callback.call(context);
|
|
this.ctx.restore();
|
|
};
|
|
|
|
CanvasRenderer.prototype.shape = function(shape) {
|
|
this.ctx.beginPath();
|
|
shape.forEach(function(point, index) {
|
|
this.ctx[(index === 0) ? "moveTo" : point[0] + "To" ].apply(this.ctx, point.slice(1));
|
|
}, this);
|
|
this.ctx.closePath();
|
|
return this.ctx;
|
|
};
|
|
|
|
CanvasRenderer.prototype.font = function(color, style, variant, weight, size, family) {
|
|
this.setFillStyle(color).font = [style, variant, weight, size, family].join(" ");
|
|
};
|
|
|
|
CanvasRenderer.prototype.setOpacity = function(opacity) {
|
|
this.ctx.globalAlpha = opacity;
|
|
};
|
|
|
|
CanvasRenderer.prototype.text = function(text, left, bottom) {
|
|
this.ctx.fillText(text, left, bottom);
|
|
};
|