【发布时间】:2014-02-04 18:53:46
【问题描述】:
我正在尝试将 DIV 转换为单个图像。 div 中有 4 张图像。我找到了“htmltocanvas”的 js,但是这个 jquery 插件不会创建包含 div 中所有图像的图像。
这是其中包含图像并需要转换为图像的 div 代码。
<div id="myJershy">
<!-- Color 3 -->
<img src="grey.gif" id="grey" style="position: fixed; top: 8px; left: 12px; width: 935px;">
<!-- Color 2 -->
<img class="orange" id="orange" src="orange.gif" style="position: fixed; left: 10px; top: 8px;">
<!-- Color 4 -->
<img src="gold.gif" id="gold" style="position: fixed; top: 12px; left: 22px;">
<!-- Color 1 -->
<img class="back" id="black" src="back.gif" style="position: fixed; left: 11px; top: 9px;">
<!-- outline -->
<img class="skel" id="skel" src="outline.gif" style="position: fixed;">
</div>
我也尝试过使用下面的 javascript 代码,但未能成功。
var htmlcontent = $("#myJershy").html();
var canvas = document.createElement("canvas");
var ctx = canvas.getContext("2d");
var data = "<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'>" +
"<foreignObject width='100%' height='100%'>" +
"<div xmlns='http://www.w3.org/1999/xhtml' style='font-size:40px'>" +
htmlcontent+
"</div>" +
"</foreignObject>" +
"</svg>";
var DOMURL = self.URL || self.webkitURL || self;
var img = new Image();
var svg = new Blob([data], {type: "image/svg+xml;charset=utf-8"});
var url = DOMURL.createObjectURL(svg);
img.onload = function() {
ctx.drawImage(img, 0, 0);
DOMURL.revokeObjectURL(url);
};
document.getElementById('previewproduct').src = url;
请注意“html div”有多个图像。
【问题讨论】:
-
所以基本上你是想把你的图片合并成一张?
-
是的,我需要合并所有图像。是否有另一种选择使用 javascript?
-
你为什么不在 Photoshop 中这样做?
-
是的,我们可以使用 Photoshop 完成,但我希望在网页中使用此功能。为了您的信息,这些图像在网络上显示为一张图像。使用所有四个图像形成的图像需要发送到服务器。因此我想要这个功能。
-
@user3270303 我会做一个小提琴,但这需要时间。稍后检查
标签: javascript jquery html canvas