首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将PNG数据Base64到HTML5画布

将PNG数据Base64到HTML5画布
EN

Stack Overflow用户
提问于 2010-12-10 21:52:33
回答 1查看 137.6K关注 0票数 99

我想加载一个用Base64编码的PNG图像到画布元素。我有这样的代码:

代码语言:javascript
复制
<html>
<head>
</head>
<body>
<canvas id="c"></canvas>
<script type="text/javascript">

var canvas = document.getElementById("c");
var ctx = canvas.getContext("2d");

data =  "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAIAAAACDbGyAAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oMCRUiMrIBQVkAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAADElEQVQI12NgoC4AAABQAAEiE+h1AAAAAElFTkSuQmCC";

ctx.drawImage(data, 0, 0);

</script>
</body>
</html>

在Chrome8中我得到了错误:Uncaught TypeError: Type error

在Firefox的Firebug中,这是这样的:“对象的类型与与对象关联的参数的预期类型不兼容”代码:"17“

在base64中是5x5px黑色PNG正方形,这是我在GIMP中创建的,并在GNU/Linux的程序base64中将其转换为base64。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-10 22:27:10

从外观上看,您实际上需要向drawImage传递一个图像对象,如下所示

代码语言:javascript
复制
var canvas = document.getElementById("c");
var ctx = canvas.getContext("2d");

var image = new Image();
image.onload = function() {
  ctx.drawImage(image, 0, 0);
};
image.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAIAAAACDbGyAAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oMCRUiMrIBQVkAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAADElEQVQI12NgoC4AAABQAAEiE+h1AAAAAElFTkSuQmCC";
代码语言:javascript
复制
<canvas id="c"></canvas>

我已经在chrome上试过了,它工作得很好。

票数 187
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4409445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档