2015-06-18 4 views
1

Я написал простой код в java-скрипте, который добавляет изображение JPEG на холст & добавьте строку на этом изображении с простым mousedown & mouseup event. Теперь я хотел добавить zoom-in & эффект уменьшения изображения на этом изображении. Кто-нибудь может мне помочь?zoom jpeg изображение на холсте с событием mousewheel в javascript

Мой 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); 
    }; 
} 
+0

Код для масштабирования, кажется, не хватает. – K3N

+0

Не используйте это [mousewheel event] (https://developer.mozilla.org/en-US/docs/Web/Events/mousewheel). Этот интерфейс является нестандартным и устаревшим. Он использовался только в браузерах, отличных от Gecko. –

+0

Возможный дубликат http://stackoverflow.com/questions/5189968/zoom-canvas-to-mouse-cursor –

ответ

0

Вы можете использовать масштаб функцию колесика мыши

context.scale(scaleValue, scaleValue); 

Вы должны сделать это до того DrawImage по контексту.

Я создал пример здесь: [ссылка]: http://jsfiddle.net/itsjawad/5wohz3r1/

+0

Спасибо, получил некоторое представление по крайней мере. –