在 JavaScript 中使用鼠标滚轮事件在画布上缩放 JPEG 图像

zoom jpeg image on canvas with mousewheel event in javascript

本文关键字:缩放 图像 JPEG 事件 JavaScript 鼠标      更新时间:2023-09-26

>我用java脚本编写了简单的代码,该代码在画布上添加JPEG图像,并使用简单的mousedown和mouseup事件在该图像上添加行。现在我想在该图像上添加放大和缩小效果。有人可以帮助我吗?

我的JS文件如下所示。

var canvas;
var context;
var width;
var height;
var finalPos = {x: 0, y: 0};
var startPos = {x: 0, y: 0};

function main() {
    canvas = document.getElementById('imageCanvas');
    context = canvas.getContext('2d');
    loadImage();
    width = canvas.width;
    height = canvas.height;
    var canvasOffset = $('#imageCanvas').offset();
    function line(cnvs) {
        cnvs.beginPath();
        cnvs.moveTo(startPos.x, startPos.y);
        cnvs.lineTo(finalPos.x, finalPos.y);
        cnvs.stroke();
    }
    $('#imageCanvas').mousedown(function (e) {
        context.strokeStyle = 'blue';
        context.lineWidth = 5;
        context.lineCap = 'round';
        context.beginPath();
        startPos = {x: e.pageX - canvasOffset.left, y: e.pageY - canvasOffset.top};
    });
    $('#imageCanvas').mouseup(function (e) {
        // Replace with var that is second canvas
        finalPos = {x: e.pageX - canvasOffset.left, y: e.pageY - canvasOffset.top};
        line(context);
    });
}
;
function loadImage() {
    system_image = new Image();
    system_image.src = 'img/Google_OH_406TwentySecondStreet.jpg';
    system_image.onload = function () {
        context.drawImage(system_image, 0, 0, width, height);
    };
}

您可以在鼠标滚轮上使用缩放功能

context.scale(scaleValue, scaleValue);

在上下文上绘制图像之前,您必须执行此操作。

我在这里创建了示例:[链接]:http://jsfiddle.net/itsjawad/5wohz3r1/