2

我将画布创建为contenteditable ='true'并将剪贴板中的图像粘贴到画布顶部。该图像出现在画布旁边,而不是在画布顶部,如下图所示。尝试将画布转换为图像时,我得到空图像。这是因为我的画布没有保存我之前粘贴的图像。我如何获得图像?

HTML

<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" media="all" href="css/reset.css" /> <!-- reset css -->
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>

<style>
    body{ background-color: ivory; }
    canvas{border:1px solid red;}
</style>

<script>

  function convert()
  {
    var canvas=document.getElementById("canvas");
    var ctx=canvas.getContext("2d");
    //ctx.fillRect(50,50,150,75);
    var theImage=document.getElementById("toImage");
    theImage.src=canvas.toDataURL();
  }
</script>

</head>

<body>
    <canvas id="canvas" width=300 height=300 contenteditable='true'></canvas>
    <button type="button" onClick="convert()">Click</button>
    <img id="toImage" width=300 height=300>
</body>
</html>

图片 在此处输入图像描述

4

2 回答 2

1

contenteditable属性用于与文本相关的 HTML 元素,对<canvas>元素没有任何作用。

有关. _ _contenteditable

于 2013-07-23T18:40:40.133 回答
1

Canvas 元素也不例外,contexteditablecanvas 元素与其他元素之间的区别在于 canvas 标签内的文本仅处理不支持 canvas 元素时显示的内容。并且contexteditable根据定义处理元素标签内的文本,而不是您实际查找的画布 ctx 上下文。您想在画布上查找绘制图像方法,可以在 w3Schools 网站上找到演示

于 2015-12-31T19:17:00.170 回答