Javascript HTML-Canvas元素以相同的画布比例获取Base64数据

Javascript HTML-Canvas元素以相同的画布比例获取Base64数据,javascript,html,canvas,html5-canvas,Javascript,Html,Canvas,Html5 Canvas,我发现要从HTML画布获取base64数据,必须执行canvas.toDataURL()。这样做的问题是,当它给你base64时,它被缩放到一般的300 x 150画布大小,但实际的画布是600 x 100。是否有方法将图像拉伸为600 x 100,或将其导出到base64中?提前谢谢 我在CSS而不是HTML中定义了宽度和高度,因此文档没有注册宽度和高度。 以下是更新后的代码: var-granmoe=0; var hai=5; var-runnin=0; while(runnin!=ha

我发现要从HTML画布获取base64数据,必须执行
canvas.toDataURL()。这样做的问题是,当它给你base64时,它被缩放到一般的300 x 150画布大小,但实际的画布是600 x 100。是否有方法将图像拉伸为600 x 100,或将其导出到base64中?提前谢谢

我在CSS而不是HTML中定义了宽度和高度,因此文档没有注册宽度和高度。 以下是更新后的代码:


var-granmoe=0;
var hai=5;
var-runnin=0;
while(runnin!=hai){
var can=document.createElement(“画布”);
can.id=“画布”
can.style=“宽度:150px;高度:100px;显示:无
document.body.appendChild(can);
c=document.getElementById('canvasite'),
ctx=c.getContext('2d');
变量x=0
如果(runnin==0){
var endheight=c.height/2
}
var y=末端高度;
var widd=0
while(widd!=c.宽度){
ctx.fillStyle=“rgba(“+0+”、“+255+”、“+0+”、“+(255/255)+”);
ctx.fillRect(x,y,1,1);
var ychan=数学地板((数学随机()*6)+1);
if(ychan==1){
变量y=y+2
}else if(ychan==2){
变量y=y+1
}else if(ychan==3){
变量y=y-1
}else if(ychan==4){
变量y=y-2
}否则{
变量y=y
}
var hig=y
while(hig!=c.高度){
ctx.fillStyle=“rgba(“+0+”、“+255+”、“+0+”、“+(255/255)+”);
ctx.fillRect(x,hig,1,1);
var hig=hig+1
}
var widd=widd+1
变量x=x+1
}
{
var endheight=y
var runnin=runnin+1
document.getElementById('canvasite').setAttribute('id','nAn'))
var imgm=document.createElement(“img”);
imgm.src=c.toDataURL();
imgm.id=“imageitem”
imgm.style=“显示:无;”
document.body.appendChild(imgm)
var xid=granmoe*(300*(1/hai));
if(granmoe==0){
var cansfoo=document.createElement(“画布”)
cansfoo.id=“fullimage”;
cansfoo.style='width:'+(hai*150)+'px;高度:100px;显示:无;'
文件.正文.附件(cansfoo);
}
var ci=document.getElementById(“fullimage”);
var ctxi=ci.getContext(“2d”);
var imd=document.getElementById(“imageitem”);
ctxi.drawImage(imd,xid,0,(300*(1/hai)),180);
//结束
var granmoe=granmoe+1
document.getElementById(“imageitem”).setAttribute('id','non');
}
}
var base64=ci.toDataURL();
var bass=document.createElement(“img”);
bass.src=base64
bass.id=“resiz”
bass.style=“显示:无;”
document.body.appendChild(bass);
{
var resize=document.createElement(“画布”)
resize.id=“resize”;
resize.width=(hai*150);
高度=100;
resize.style='显示:无;'
document.body.appendChild(调整大小);
var re=document.getElementById(“调整大小”);
var res=re.getContext(“2d”);
var imag=document.getElementById(“resiz”);
res.drawImage(图像,0,50,(hai*150),50);
document.write(resize.toDataURL());
}

toDataURL
与大小无关。它只提供与画布相当的字符串
300x150
是当您在构造函数中没有给出大小时,如果您提供大小,它将使用提供的大小生成图像。如果您在构造函数中遇到问题,请在代码后面显示it@GauravChaudhary我尝试了css宽度:600px;它不起作用,你怎么知道,它是缩放?您是否将其保存为
JPG
image。如果你提供的代码,那么我会尽力帮助!我正在将它保存为png,我将开始上传它!