Как улучшить качество изображения при его загрузке в canvas?

Есть функция загрузки изображения.
function uploadImage(input) {
    if (input.files && input.files[0]) {
        var reader = new FileReader();
        reader.onload = function(e) {
            var img = new Image();
            img.src = e.target.result;
            img.onload = function() {
                drawNewImage(img);
            }
        };
        reader.readAsDataURL(input.files[0]);
    }
}


Функция отрисовки изображения в canvas:
function drawNewImage(img) {
    var canvas = document.getElementById('myCanvas');
    var ctx = canvas.getContext('2d');
    var canvasWidth = canvas.width;
    var canvasHeight = canvas.height;
    var minRatio = Math.min(canvasWidth / img.width, canvasHeight / img.height);
    var newImgWidth = minRatio * img.width;
    var newImgHeight = minRatio * img.height;
    var newImgX = (canvasWidth - newImgWidth) / 2;
    var newImgY = (canvasHeight - newImgHeight) / 2;
    ctx.clearRect(0, 0, canvas.width, canvas.height);
    ctx.drawImage(img, parseInt(newImgX), parseInt(newImgY), newImgWidth, newImgHeight);
}


И сам HTML:
<canvas id="myCanvas"></canvas>
<input id="imgLoad" value="" type="file" onchange="uploadImage(this)">


Качество изображения при загрузке ужасное. Кто знает в чем может быть проблема?
  • Вопрос задан
  • 2703 просмотра
Решения вопроса 1
@antazy
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы