изображение не правильно отображается в javascript canvas - PullRequest
0 голосов
/ 08 января 2020

Я создал javascript холст, на котором, когда пользователь печатает текст, он будет печататься на изображении. код ниже:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<style type="text/css">
  canvas {
    height: 500px;
    width: 500px;
  }
</style>


<div class="container">
  <div style="margin-top: 5%;" class="row">


    <div class="col-md-6"><canvas id="imageCanvas"></canvas></div>



    <div class="col-md-6"><input type="text" id="name" placeholder="Name" /></div>

  </div>
</div>





<script type="text/javascript">
  var text_title = "Heading";

  var canvas = document.getElementById('imageCanvas');
  var ctx = canvas.getContext('2d');
  var img = new Image();
  // img.crossOrigin = "anonymous";

  window.addEventListener('load', DrawPlaceholder)

  function DrawPlaceholder() {
    img.onload = function() {
      DrawOverlay(img);
      DrawText(text_title);
      DynamicText(img)
    };
    img.src = 'card.png';

  }

  function DrawOverlay(img) {

    ctx.drawImage(img, 0, 0, img.width, img.height, 0, 0, canvas.width, canvas.height);


    ctx.fillStyle = 'rgba(230, 14, 14, 0)';
    ctx.fillRect(0, 0, canvas.width, canvas.height);
  }

  function DrawText(text) {
    ctx.fillStyle = "black";
    ctx.textBaseline = 'middle';
    ctx.font = "50px 'Montserrat'";
    ctx.fillText(text, 50, 50);
  }

  function DynamicText(img) {
    document.getElementById('name').addEventListener('keyup', function() {
      ctx.clearRect(0, 0, canvas.width, canvas.height);
      DrawOverlay(img);
      text_title = this.value;
      DrawText(text_title);
    });
  }
</script>

все хорошо, кроме изображения. Изображение не правильно поступает на холст. Его растягивают или не получают первоначальный размер. я попытался изменить размер холста и все. Я хочу, чтобы исходный размер изображения отображался как есть. Может кто-нибудь, пожалуйста, скажите мне, что я должен делать в своем коде, чтобы получить оригинальный размер изображения. заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...