javascript - svg 绘制到画布定位和缩放错误
问题描述
我正在画布上绘制一个简单的 svg。在 Firefox 上,svg 的 x 位置和宽度不正确 - 向右推得太远且不够宽。
这是svg:
<svg xmlns="http://www.w3.org/2000/svg" width="500" height="300" viewBox="0 0 500 300">
<rect x="0" y="0" width="500" height="300" fill="#f00"/>
</svg>
这是简单的javascript:
var i = new Image();
i.addEventListener("load", () => {
var c = document.getElementById("c");
c.style.border = "1px blue solid";
var ctx = c.getContext("2d");
ctx.drawImage(i, 20, 20, 460, 260);
});
i.src = "test.svg";
这是 chrome 如何在画布上渲染 svg - 请注意 20px 的缩进看起来是正确的。
但是将其与它在 Firefox 上的呈现方式进行对比。注意它的左缩进大于 20px 并且宽度被缩放得太小。
你可以在这里演示这个问题: https ://codesandbox.io/s/scaled-svg-in-canvas-5fv11
这个问题有解决方法吗?难道我做错了什么?
解决方案
推荐阅读
- java - Zookeer的kerberosUtil中的非法反射访问
- chromium - 无法创建文件 chromium-win-32.7z
- sql-server - Sql server 认证考试
- swift - UIImageView isUserInteractionEnabled = true 不起作用
- powershell - 如何通过非 Microsoft 产品的 powershell 卸载应用程序
- java - 为选定的 jlist 模型添加值
- python - 比较两个数据帧并更新第一个数据帧中的列
- bash - shell 脚本中的 firewalld-cmd remove-rule 命令引发错误
- zend-framework - 安装 zf-charts-master Zend Framework 3
- linux - python有什么方法可以知道我系统中所有已安装的应用程序的版本(Windows和Linux都有)?