Note. Pay attention to the expected result of the values ββinside
{"scale":1.34,"x1":502,"x2":822,"y1":178,"y2":578}
in
"rect("+data.y1+"px,"+data.x2+"px,"+data.y2+"px,"+data.x1+"px)"
?
Is used
{"scale":1.34,"x1":100,"x2":200,"y1":100,"y2":200};
below. See CanvasRenderingContext2D.drawImage ()
Try
var data = {"scale":1.34,"x1":100,"x2":200,"y1":100,"y2":200}; function showImageInDiv(image, data) { $("#iDiv").empty() .append("<canvas id=iDivImage width=500px height=400px></canvas>"); var img = new Image; img.onload = function() { var canvas = $("#iDivImage"); var ctx = canvas.get(0).getContext("2d"); ctx.drawImage(this, data.x1, data.y1, 500, 400, 0, 0, data.x2, data.y2); canvas.css("transform", "scale(" + data.scale + ", "+ data.scale +")"); }; img.src = image[0].src; }; showImageInDiv($("img"), data);
var data = {"scale":1.34,"x1":100,"x2":200,"y1":100,"y2":200}; function showImageInDiv(image, data) { $("#iDiv").empty().append("<canvas id=iDivImage width=500px height=400px></canvas>"); var img = new Image; img.onload = function() { var canvas = $("#iDivImage"); var ctx = canvas.get(0).getContext("2d"); ctx.drawImage(this, data.x1, data.y1, 500, 400, 0, 0, data.x2, data.y2); canvas.css("transform", "scale(" + data.scale + ", "+ data.scale +")"); }; img.src = image[0].src;
#iDiv { display:block; width:500px; height:400px; } #iDiv { clip-path(): }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div id="iDiv"></div> <img src="http://lorempixel.com/1536/1024/cats/" />
source share