как изменить размер base64 изображения в угловых - PullRequest
2 голосов
/ 10 июля 2019

Я пытаюсь изменить размер изображения base64 Но я не нашел ответа. Я попробовал холст, но не ответил. Я не знаю почему ... Это был код

const canvas = document.createElement('canvas'),
             ctx = <CanvasRenderingContext2D>canvas.getContext('2d');
        canvas.width = 100;
        canvas.height = 100;
        const img = new Image();
        img.src = this.SelectedFile.src;
        ctx.drawImage(img , 0, 0, 100, 100);
        this.SelectedFile.src = ctx.canvas.toDataURL();

Кто-нибудь знает другой способ или знает, в чем проблема?

1 Ответ

0 голосов
/ 10 июля 2019

Добавьте эту вспомогательную функцию вне заданного компонента:

function compressImage(src, newX, newY) {
  return new Promise((res, rej) => {
    const img = new Image();
    img.src = src;
    img.onload = () => {
      const elem = document.createElement('canvas');
      elem.width = newX;
      elem.height = newY;
      const ctx = elem.getContext('2d');
      ctx.drawImage(img, 0, 0, newX, newY);
      const data = ctx.canvas.toDataURL();
      res(data);
    }
    img.onerror = error => rej(error);
  })
}

Тогда звоните так:

compressImage(base64, 100, 100).then(compressed => {
  this.resizedBase64 = compressed;
})
...