相关疑难解决方法(0)

如何使用html5 canvas/javascript/jquery将svg转换为png并保存在服务器上

好吧,我需要一些关于将.svg文件/图像转换为.png文件/图像的帮助......

我的页面上显示了.svg图像.它保存在我的服务器上(作为.png文件).我需要根据需要将其转换为.png文件(单击按钮)并将.png文件保存在服务器上(我将使用.ajax请求执行此操作).

但问题是转换.

我读了很多关于html5 Canvas的东西,这可能有助于做我现在需要做的事情,但是我找不到任何明确的解决方案来解决我的问题,而且,tbh,我不明白我发现的一切......所以我需要一些明确的建议/帮助我必须这样做.

这是"html idea"模板:

<html>
    <body>
        <svg id="mySvg" width="300px" height="300px">
            <!-- my svg data -->
        </svg>
        <label id="button">Click to convert</label>
        <canvas id="myCanvas"></canvas>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

和一些js:

<script>
    $("body").on("click","#button",function(){
        var svgText = $("#myViewer").outerHTML;
        var myCanvas = document.getElementById("canvas");
        var ctxt = myCanvas.getContext("2d");
    });
</script>
Run Code Online (Sandbox Code Playgroud)

然后,我需要将svg绘制到Canvas中,获取base64数据,并将其保存在我的服务器上的.png文件中......但是......怎么样?我读到了很多不同的解决方案,我实际上......迷失了...我正在研究jsfiddle,但我实际上......无处可寻...... http://jsfiddle.net/xfh7nctk/6 / ...感谢您的阅读/帮助

html javascript svg png canvas

27
推荐指数
2
解决办法
5万
查看次数

在HTML5 Canvas上绘制SVG并支持font元素

是否有一个很好的库,用于将SVG转换为支持字体元素的HTML画布?我已经尝试过canvg,但它不支持Font.

html5 svg canvas

22
推荐指数
2
解决办法
2万
查看次数

Leaflet中的标记或点的大数据集

我想在传单地图上渲染大约10.000个标记或点.我已经按常规方式做了,我发现它比Google地图慢一些.我正在寻找一种方法来渲染多个元素而不会出现性能问题.

有没有办法用Leaflet做到这一点?

更新:我不想用无法处理事件的亮点绘图.我想用不同的颜色和事件绘制标记.

markers leaflet

19
推荐指数
4
解决办法
2万
查看次数

14
推荐指数
4
解决办法
3万
查看次数

使用<canvas>将非常大的SVG转换为PNG

我试图将一个大的SVG(它的数据URL大约是750000 - 1000000个字符)转换为PNG,方法是将它的数据url传递到一个图像并进入画布,但图像只加载大约1/4的SVG.

通过创建:

var svg_xml = (new XMLSerializer()).serializeToString(svg),
    url = 'data:image/svg+xml;base64,' + btoa(svg_xml);

var img = new Image();
img.width = 730;
img.height = 300;
img.onload = function(){
    var canvas = document.create('canvas');
    canvas.width = 730;
    canvas.height = 300;

    var ctx = canvas.getContext('2d');
    ctx.drawImage(img, 0, 0, 730, 300);

    callbackFn(canvas.toDataURL('image/png');
}
img.src = url
Run Code Online (Sandbox Code Playgroud)

编辑

我已经尝试实现canvg来绘制SVG,但DataURL生成的结果为空白图像:

var svg_xml = (new XMLSerializer()).serializeToString(svg);
var canvas = document.createElement('canvas');
canvas.width = 730;
canvas.height = 300;

var ctx = canvas.getContext('2d');
ctx.drawSvg(svg_xml, 0, 0, 730, 300);
callbackFn(canvas.toDataURL('image/png');
Run Code Online (Sandbox Code Playgroud)

我使用过的方法有什么问题吗? …

javascript svg canvas

13
推荐指数
1
解决办法
1907
查看次数

在<img>中加载SVG时,Chrome会发出警告

为了在画布上显示SVG图像文件,我在HTML上有以下行:

<img id="soundOnImg" src="img/speaker_on.svg" style="display:none"></img>
Run Code Online (Sandbox Code Playgroud)

然后在画布上绘制它:

ctx2d.drawImage($("#soundOnImg")[0], 10, 10, 200, 200);
Run Code Online (Sandbox Code Playgroud)

($()在那里使用jQuery )

除了一个烦恼之外,这完美无缺 - Chrome给了我以下警告:

Resource interpreted as image but transferred with MIME type image/svg+xml.
Run Code Online (Sandbox Code Playgroud)

这个警告意味着什么?

我尝试使用<object>而不是,<img>但这失败,因为对象元素似乎没有[0]出于某种原因.

我怎样才能解决这个问题?

html5 svg warnings google-chrome canvas

10
推荐指数
1
解决办法
6193
查看次数

具有CSS类的img的DataURL

<img>感谢CSS类,我必须应用一些样式.

是否有可能得到dataURL<img>与CSS样式?

$(function() {
  // Original
  const imgOriginal = document.getElementById('original');
  const c1 = document.getElementById('c1');
  let ctx = c1.getContext('2d');
  ctx.drawImage(imgOriginal, 100, 100);

  // Filtered
  const imgFiltered = document.getElementById('filtered');
  const c2 = document.getElementById('c2');
  ctx = c2.getContext('2d');
  ctx.drawImage(imgFiltered, 100, 100);

  // Same dataURL :(
  console.log(c1.toDataURL(), c2.toDataURL());
  console.log(c1.toDataURL() === c2.toDataURL());
})
Run Code Online (Sandbox Code Playgroud)
.filter::before {
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1;
  border: 1px solid red;
}

.filter {
  position: relative;
  -webkit-filter: sepia(.5) hue-rotate(-30deg) …
Run Code Online (Sandbox Code Playgroud)

html javascript css image fabricjs

7
推荐指数
1
解决办法
410
查看次数

标签 统计

canvas ×5

svg ×5

html5 ×3

javascript ×3

html ×2

css ×1

fabricjs ×1

google-chrome ×1

image ×1

leaflet ×1

markers ×1

png ×1

warnings ×1