Alexander3928
@Alexander3928

Как для canvas задать границы?

Можно ли как-то задать стили для canvas, чтобы было как с права? ${border}px ${lineBorder} #22222280;

let  border = 5,
       lineBorder = 'solid';

const saveImage = () => {
  const canvas = sampleElement('canvas');
  const ctx = canvas.getContext('2d');
  
  canvas.width = document.querySelector('.edit-preview img').naturalWidth;
  canvas.height = document.querySelector('.edit-preview img').naturalHeight;

  ctx.translate(canvas.width / 2, canvas.height / 2);
  ctx.lineWidth = border;
  ctx.strokeStyle = '#22222280';
  ctx.stroke();

  ctx.drawImage(document.querySelector('.edit-preview img'), -canvas.width / 2, -canvas.height / 2, canvas.width, canvas.height);
 
  document.body.appendChild(canvas);
}
  • Вопрос задан
  • 232 просмотра
Решения вопроса 1
RAX7
@RAX7
const saveImage = () => {
  const image = document.querySelector("img");
  const canvas = document.createElement("canvas");
  const ctx = canvas.getContext("2d");

  canvas.width = 300;
  canvas.height = 200;
  
  ctx.drawImage(image, 0, 0, canvas.width, canvas.height);
  ctx.lineWidth = 5;
  ctx.strokeStyle = "red";
  ctx.strokeRect(0, 0, canvas.width, canvas.height);
  document.body.appendChild(canvas);
};

saveImage();


либо

const saveImage = () => {
  const image = document.querySelector("img");
  const canvas = document.createElement("canvas");
  const ctx = canvas.getContext("2d");

  canvas.width = 300;
  canvas.height = 200;

  ctx.translate(canvas.width / 2, canvas.height / 2);

  ctx.drawImage(
    image,
    -canvas.width / 2,
    -canvas.height / 2,
    canvas.width,
    canvas.height
  );

  ctx.lineWidth = 5;
  ctx.strokeStyle = "red";
  ctx.strokeRect(
    -canvas.width / 2,
    -canvas.height / 2,
    canvas.width,
    canvas.height
  );

  document.body.appendChild(canvas);
};

saveImage();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
24 нояб. 2024, в 03:11
500 руб./за проект
24 нояб. 2024, в 01:35
5000 руб./за проект
24 нояб. 2024, в 01:24
500 руб./за проект