mirror of
https://github.com/niklasvh/html2canvas.git
synced 2023-08-10 21:13:10 +03:00
fix: background images should not be blurry in export
This commit is contained in:
parent
6020386bbe
commit
75c3ea4e51
@ -600,11 +600,24 @@ export class CanvasRenderer extends Renderer {
|
|||||||
image.height,
|
image.height,
|
||||||
image.width / image.height
|
image.width / image.height
|
||||||
]);
|
]);
|
||||||
const pattern = this.ctx.createPattern(
|
// const pattern = this.ctx.createPattern(
|
||||||
this.resizeImage(image, width, height),
|
// this.resizeImage(image, width, height),
|
||||||
'repeat'
|
// 'repeat'
|
||||||
) as CanvasPattern;
|
// ) as CanvasPattern;
|
||||||
this.renderRepeat(path, pattern, x, y);
|
// this.renderRepeat(path, pattern, x, y);
|
||||||
|
const scaleX = width / image.naturalWidth;
|
||||||
|
const scaleY = height / image.naturalHeight;
|
||||||
|
const pattern = this.ctx.createPattern(image, "repeat") as CanvasPattern;
|
||||||
|
const scaledPath = (path as Vector[]).map((item) => {
|
||||||
|
item.x = item.x / scaleX;
|
||||||
|
item.y = item.y / scaleY;
|
||||||
|
return item;
|
||||||
|
});
|
||||||
|
const scaledOffsetX = x / scaleX;
|
||||||
|
const scaledOffsetY = y / scaleY;
|
||||||
|
this.ctx.scale(scaleX, scaleY);
|
||||||
|
this.renderRepeat(scaledPath, pattern, scaledOffsetX, scaledOffsetY);
|
||||||
|
this.ctx.scale(1 / scaleX, 1 / scaleY);
|
||||||
}
|
}
|
||||||
} else if (isLinearGradient(backgroundImage)) {
|
} else if (isLinearGradient(backgroundImage)) {
|
||||||
const [path, x, y, width, height] = calculateBackgroundRendering(container, index, [null, null, null]);
|
const [path, x, y, width, height] = calculateBackgroundRendering(container, index, [null, null, null]);
|
||||||
|
Loading…
Reference in New Issue
Block a user