Automattic/node-canvas

SVG not scaling with context

オープン

#1,474 opened on 2019/09/24

 (4 件のコメント) (0 件のリアクション) (0 人の担当者)JavaScript (1,195 件のフォーク)batch import
Help wanted

Repository metrics

Stars
 (10,689 個のスター)
PR merge metrics
 (PR metrics pending)

説明

Issue or Feature

I'm not sure if i opened this issue already, or just commented in the old svg resize issue that i cannot find anymore.

In browser canvas SVGs are resized and re rendered with the context scale other than the width and height assigned.

In node canvas rendering a svg on a scaled context gives blurred results.

Steps to Reproduce

const fs = require('fs');
const { createCanvas, loadImage } = require('canvas')
const canvas = createCanvas(500, 500)
const ctx = canvas.getContext('2d');

ctx.scale(20, 20);

loadImage('http://thenewcode.com/assets/images/thumbnails/homer-simpson.svg').then((image) => {
  ctx.drawImage(image, 100, 100, 400, 400, 0, 0, 500, 500);
  var stream = canvas.createPNGStream();
  stream.pipe(fs.createWriteStream('output.png'));
})

image

Your Environment

  • Version of node-canvas (output of npm list canvas or yarn list canvas):
  • Environment (e.g. node 10.0.0 on Mac OS X 10.8):

コントリビューターガイド