【发布时间】:2016-04-06 20:40:54
【问题描述】:
我的图表 SVG 宽度约为 500,高度约为 300。 我已经使用 SVG 中的 scale 属性对其进行了缩放。 现在,当我尝试在画布上绘制它时,它会在 SVG 左上角的某个部分上绘制。 如果我在浏览器中单独打开 SVG 文件,它会显示整个图像,我为画布创建的图像标签也会显示整个图像。
我也尝试过使用不同的源和目标偏移量、宽度和高度,但没有奏效。
我现在不知道可能是什么问题。
以下是我更改 SVG 的示例代码。
注意:- 这也会裁剪图像,但当我提供源和目标偏移量、宽度和高度时会显示完整的 SVG。不幸的是,它对我的 SVG 没有帮助。
var data = 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><rect width="1000" height="350" fill="rgb(0, 255, 0)" stroke-width="1" stroke="rgb(0, 0, 0)" /></svg>';
var canvas = $("<canvas width='1024' height='360' style=\"border: 1px solid red;\">");
$(canvas).appendTo('body').css('position', 'absolute').css('top', 0);
var image = new Image;
$(image).appendTo("body")
.width(defaultZoomWidth).height(360)
.css("position", "fixed").css("top", "400px");
image.onload = function() {
setTimeout(function(){
var context = canvas.get(0).getContext("2d");
context.drawImage(image, 0, 0);
}, 1000);
};
image.src = data;
【问题讨论】:
-
您好,我已添加示例代码。我在这里更改了 SVG。 注意 :- 当我提供源和目标偏移量、宽度和高度时,这也会裁剪图像但会显示完整的 SVG。不幸的是,它对我的 SVG 没有帮助。
标签: canvas svg drawimage cgcontextdrawimage