我正在尝试使用canvas.toDataURL();
从FabricJS画布创建图像。
我有PHP代码,可以从这个datauri写入实际的图像文件。
此函数从画布创建base64数据uri。在普通分辨率(已测试高达全高清)下,这将生成我设置的实际大小图像(50pxX50px)。但在4K分辨率下,它会生成双倍大小的图像。我尝试了设置乘数、高度和宽度选项,但没有成功。
我已经在jsfiddle上创建了一个示例
var canvas = new fabric.Canvas('myCanvas');
canvas.setHeight(50);
canvas.setWidth(50);
canvas.setBackgroundColor('rgb(59,173,160)');
// create a rectangle object
var rect = new fabric.Rect({
left: 0,
top: 0,
fill: 'blue',
width: 20,
height: 20
});
// "add" rectangle onto canvas
canvas.add(rect);
var img = canvas.toDataURL({
format: 'png',
multiplier: 1,
left: 0,
top: 0,
width: 50,
height: 50
});
console.log(img);
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.3/fabric.min.js"></script>
<canvas id="myCanvas" style="border: 2px solid red;">
Your browser does not support the HTML5 canvas tag.
</canvas>
请帮我处理这个问题。