Skip to content

Commit 3edf9fa

Browse files
Merge remote-tracking branch 'niklasvh/develop' into develop
Conflicts: src/Parse.js src/Preload.js
2 parents 55ed0ff + 7d7deca commit 3edf9fa

10 files changed

Lines changed: 608 additions & 264 deletions

File tree

src/Generate.js

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -327,18 +327,16 @@
327327

328328
var canvas = document.createElement('canvas'),
329329
ctx = canvas.getContext('2d'),
330-
gradient, grad, i, len, img;
330+
gradient, grad, i, len;
331331

332332
canvas.width = bounds.width;
333333
canvas.height = bounds.height;
334334

335-
// TODO: add support for multi defined background gradients (like radial gradient example in background.html)
335+
// TODO: add support for multi defined background gradients
336336
gradient = _html2canvas.Generate.parseGradient(src, bounds);
337337

338-
img = new Image();
339-
340-
if(gradient){
341-
if(gradient.type === 'linear'){
338+
if(gradient) {
339+
if(gradient.type === 'linear') {
342340
grad = ctx.createLinearGradient(gradient.x0, gradient.y0, gradient.x1, gradient.y1);
343341

344342
for (i = 0, len = gradient.colorStops.length; i < len; i+=1) {
@@ -353,8 +351,7 @@
353351
ctx.fillStyle = grad;
354352
ctx.fillRect(0, 0, bounds.width, bounds.height);
355353

356-
img.src = canvas.toDataURL();
357-
} else if(gradient.type === 'circle'){
354+
} else if(gradient.type === 'circle') {
358355

359356
grad = ctx.createRadialGradient(gradient.cx, gradient.cy, 0, gradient.cx, gradient.cy, gradient.rx);
360357

@@ -370,8 +367,7 @@
370367
ctx.fillStyle = grad;
371368
ctx.fillRect(0, 0, bounds.width, bounds.height);
372369

373-
img.src = canvas.toDataURL();
374-
} else if(gradient.type === 'ellipse'){
370+
} else if(gradient.type === 'ellipse') {
375371

376372
// draw circle
377373
var canvasRadial = document.createElement('canvas'),
@@ -382,7 +378,7 @@
382378
canvasRadial.width = canvasRadial.height = di;
383379

384380
grad = ctxRadial.createRadialGradient(gradient.rx, gradient.ry, 0, gradient.rx, gradient.ry, ri);
385-
381+
386382
for (i = 0, len = gradient.colorStops.length; i < len; i+=1) {
387383
try {
388384
grad.addColorStop(gradient.colorStops[i].stop, gradient.colorStops[i].color);
@@ -397,21 +393,12 @@
397393

398394
ctx.fillStyle = gradient.colorStops[i - 1].color;
399395
ctx.fillRect(0, 0, canvas.width, canvas.height);
396+
ctx.drawImage(canvasRadial, gradient.cx - gradient.rx, gradient.cy - gradient.ry, 2 * gradient.rx, 2 * gradient.ry);
400397

401-
imgRadial = new Image();
402-
imgRadial.onload = function() { // wait until the image is filled
403-
404-
// transform circle to ellipse
405-
ctx.drawImage(imgRadial, gradient.cx - gradient.rx, gradient.cy - gradient.ry, 2 * gradient.rx, 2 * gradient.ry);
406-
407-
img.src = canvas.toDataURL();
408-
409-
};
410-
imgRadial.src = canvasRadial.toDataURL();
411398
}
412399
}
413400

414-
return img;
401+
return canvas;
415402
};
416403

417404
_html2canvas.Generate.ListAlpha = function(number) {

0 commit comments

Comments
 (0)