Как исправить: рендеринг изображений: пиксельные ошибки - PullRequest
2 голосов
/ 25 октября 2019

Я сделал эту страницу: https://loving -jepsen-c6f1de.netlify.com / Он рисует пиксельное изображение на холсте, получая данные из файла json. Я использовал css свойство image-рендеринг: пикселированный на холсте, чтобы это работало. Но когда я изменяю размер окна в инструментах разработчика chome, холст дрожит, и холст теряет пикселизацию. Что больше Он теряет пикселизацию, когда я изменяю размер окна, нажимая «открыть в полном окне».

Я использовал devtools, чтобы найти что-то не так, он показал, что холст все еще имеет свой рендеринг изображения: пикселизированный (но на самом деле он не работает).

JS для первого изображения (4x4):


let canvas = document.getElementById('canvas');
let ctx = canvas.getContext('2d');

let btn_load_4x4 = document.getElementById('btn_load_4x4');
btn_load_4x4.addEventListener('click', fillCanvas4x4);

function fillCanvas4x4() {
  fetch(
    'https://raw.githubusercontent.com/rolling-scopes-school/tasks/master/tasks/stage-2/codejam-canvas/data/4x4.json'
  )
    .then(function(resp) {
      return resp.json();
    })
    .then(function(data) {
      canvas.width = 4;
      canvas.height = 4;
      let colors = data.map(el => el.map(el => '#' + el));
      for (let i = 0; i < canvas.width; i++) {
        for (let j = 0; j < canvas.height; j++) {
          ctx.fillStyle = colors[i][j];
          ctx.fillRect(i, j, 1, 1);
        }
      }
    });
}

CSS:


.canvas {
  width: 512px;
  height: 512px;
  padding: 20px;
  image-rendering: pixelated;
}

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