jquery - Html5 Canvas 和 base64 图片

标签 jquery html canvas

我有一个看起来像这样的 base64 图像:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAADwCA...... 

有没有一种方法可以使用上面的编码图像在 Canvas 上绘制它?有没有人有这方面的例子。

已编辑:

这对我有用,它只在图像而不是 base64

时绘制图像

这个有效:

<script type="text/javascript">

        var pos = 0, ctx = null, ctx2 = null,saveCB, image = [], image2 = new Image();

        var canvas = document.createElement('canvas');


        var image2 = new Image();

        canvas.setAttribute('width', 320);
        canvas.setAttribute('height', 240);
        ctx = canvas.getContext('2d');
        image = ctx.getImageData(0, 0, 320, 240);

        var saveCB = function (data) {
            var col = data.split(';');
            var img = image;
            for (var i = 0; i < 320; i++) {
                var tmp = parseInt(col[i]);
                img.data[pos + 0] = (tmp >> 16) & 0xff;
                img.data[pos + 1] = (tmp >> 8) & 0xff;
                img.data[pos + 2] = tmp & 0xff;
                img.data[pos + 3] = 0xff;
                pos += 4;
            }

            if (pos >= 4 * 320 * 240) {
                ctx.putImageData(img, 0, 0);
                foto = canvas.toDataURL("image/png");
                $("#photo").val(foto);
                alert($("#photo").val()); 


                ctx2 = document.getElementById("canvas2").getContext("2d");
                ctx2.clearRect(0, 0, 320, 240);
                image2.src = 'http://blackberry12.com/uploads/allimg/110311/2-110311153Z90-L.jpg';
                ctx2.drawImage(image2,0,0);           

                pos = 0;
            }
        };
</script>

如果我将 image2.src 更改为 foto 或 $("#photo").val() 我不会得到任何东西,只是一个白色的 Canvas 。

已编辑 根据我的调查,我每次拍照和编码时都会得到相同的 base64 代码。看来base64码真的是白屏了。任何人都可以在这里提供帮助,看不出我在哪里犯了错误。

最佳答案

当然。

var img = new Image();
img.src = "data:image/png;base64,.............";
ctx.drawImage(img,0,0);

图像可立即用于绘制。

关于jquery - Html5 Canvas 和 base64 图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14529737/

相关文章:

javascript - 如何在从服务器获取数据的动态表的每一行中添加下拉列表?

javascript - jquery 添加元素如果不存在

html - H1标签边框长度可能吗?

canvas - 如何使用 Fabric.js 用 Canvas 中的新图像替换现有图像

Canvas globalCompositeOperation 无法正常工作

javascript - 为什么 Onblur 不起作用(JQuery/Javascript)

jquery - 带有选择框的下拉 div 在 IE9 中不起作用

javascript - 日韩字符显示不好

html - 将 img.src 设置为动态 svg 元素

javascript - HTML Canvas 缩放问题