[英]Unable to add new canvas element with an existing one
我正在使用2个画布元素。 我正在使用一个元素作为包含所有元素的主画布元素。 我在单独的画布中生成条形码,并希望将其添加到主画布中。 尝试了很长时间。 添加一个例子这里fiddle
$(document).ready(function() {
JsBarcode('#barcode', "1234", {
width: 4,
height: 20//displayValue: false
});
var bc = document.getElementById("barcode");
var canvasx = bc.getContext("2d");
var img1 = new Image();
img1.src = bc.toDataURL("image/png");
var c = document.getElementById("labelDesigner");
var canvas = bc.getContext("2d");
c.drawImage(img1);
});
我正在使用facric.js和JsBarcode。 我在这里先向您的帮助表示感谢。 如果还有其他更好的方法,请提出建议
您可以使用fabric.Image.fromURL并将条形码画布数据作为url传递。
DEMO
$(document).ready(function() { JsBarcode('#barcode', "1234", { width: 4, height: 20 //displayValue: false }); var canvas = new fabric.Canvas("labelDesigner"); var bc = document.getElementById("barcode"); fabric.Image.fromURL(bc.toDataURL(),function(img){ img.set({ left: 0, top: 0 }) canvas.add(img); }) });
canvas[id^=c], div[id=output] { border: 1px solid red; } canvas[id=buffer] { border: 1px dotted green; } #output { padding: 15px; } #output img { border: 1px dotted blue; }
<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jsbarcode/3.9.0/JsBarcode.all.min.js"></script> <canvas id="barcode"></canvas> <canvas id="labelDesigner" width="410" height="200" style="border:1px solid #000000;margin-left:200px"></canvas>
drawImage
函数可以将另一个画布作为参数,因此您不必在其间转换为图像。 但是,它始终需要将x和y坐标作为第二和第三参数。
您还交换了c
和canvas
变量:
$(document).ready(function() {
JsBarcode('#barcode', "1234", {
width: 4,
height: 20//displayValue: false
});
var bc = document.getElementById("barcode");
var c = document.getElementById("labelDesigner");
var context = c.getContext("2d");
context.drawImage(bc, 0, 0);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.