【发布时间】:2015-10-08 19:42:18
【问题描述】:
我正在尝试在 Javascript 中获取所选图像文件的 Base64/Data URL。用户基本上通过文件输入控件选择图像并生成数据 URL。但是,我收到此错误:
未捕获的类型错误:无法执行“drawImage” 'CanvasRenderingContext2D':提供的值不是类型 '(HTMLImageElement 或 HTMLVideoElement 或 HTMLCanvasElement 或 ImageBitmap)'
HTML:
<body>
<form id="form1">
<div>
<input type="file" id="imageinput" onchange="testit(event)" />
<canvas width="300" height="300" id="mycanvas" style="display: none;"></canvas>
</div>
</form>
</body>
Javascript:
function testit(event) {
var myImage = URL.createObjectURL(event.target.files[0]);
var myCanvas = document.getElementById('mycanvas');
var ctx = myCanvas.getContext('2d');
ctx.drawImage(myImage, 0, 0);
var mydataURL = myCanvas.toDataURL('image/jpg');
alert(mydataURL);
}
为什么这段代码不起作用,伙计们?
【问题讨论】:
-
您需要将该 url 放在 img 标签的 src 上,然后将 img 传递给画布以在加载后进行绘制。
标签: javascript html canvas html5-canvas