当前位置: 首页 > 面试题库 >

Base64 PNG数据到HTML5画布

薛宜
2023-03-14
问题内容

我想将以Base64编码的PNG图像加载到canvas元素。我有以下代码

<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>

在Chrome 8中,我收到错误消息: Uncaught TypeError: Type error

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

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


问题答案:

从外观上看,您实际上需要像这样传递一个imageImage对象

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";


<canvas id="c"></canvas>

我已经在chrome中尝试过了,效果很好。



 类似资料:
  • 问题内容: 我正在尝试将HTML5画布转换为图像。这是我到目前为止所得到的: 但是问题是我得到了以下代码: 我想要用户可以下载的普通图像路径! 有什么帮助吗? 问题答案: 信息: IE10 +完全不支持以下方法。其他人已经完成了工作并实现了跨浏览器解决方案。 这就是其中之一。 首先,将生成的数据URL添加到标签的属性中。但是,在某些浏览器上,仅此一项就不会触发下载。相反,它将在新页面中打开链接的图

  • 有什么方法可以将HTML画布的内容作为二进制数据读取吗? 目前,我有以下HTML来显示输入文件及其下面的画布: 任何帮助都会很好!干杯

  • 本文向大家介绍HTML5画布转换,包括了HTML5画布转换的使用技巧和注意事项,需要的朋友参考一下 HTML5 canvas提供了允许直接修改转换矩阵的方法。转换矩阵最初必须是身份转换。然后可以使用转换方法对其进行调整。 示例 让我们看一个画布转换的例子:

  • 本文向大家介绍html5-canvas 如何将Html5画布元素添加到网页,包括了html5-canvas 如何将Html5画布元素添加到网页的使用技巧和注意事项,需要的朋友参考一下 示例 HTML5-Canvas ... 是Html5元素。 大多数现代浏览器(Internet Explorer 9+)支持。 是默认情况下透明的可见元素 默认宽度为300px,默认高度为150px。 需要JavaS

  • https://developer.mozilla.org/en/Canvas_tutorial/Transformations http://en.wikipedia.org/wiki/Spirograph 移植一个HTML5画布图像到QML画布非常简单。在成百上千的例子中,我们选择了一个来移植。 螺旋图形(Spiro Graph) 我们使用一个来自Mozila项目的螺旋图形例子来作为我们的基础

  • 问题内容: 我目前正在使用 http://paperjs.org 创建HTML5画布绘图应用程序。我想让用户将图像上传到画布中。我知道我需要进行登录和注册,但是有更简单的方法吗?我已经看到HTML5拖放式上传。 问题答案: 我假设您的意思是将图像加载到画布中,而不是从画布上载图像。 在这里阅读他们所有的画布文章可能是一个好主意 但基本上,您要做的是在javascript中创建图片,然后将image