透明图像背景html5画布
transparent image background html5 canvas
我正在将一个图像插入到我的画布中,其中包含:
ctx.drawImage(myImageObject,0,0);
它工作得很好,只是我插入的图像的某些部分是透明的,而画布似乎忽略了这一点,它只是将应该透明的部分打印为白色像素。
以下是我插入的图像:http://i44.tinypic.com/25ymq.gif
我对这个问题进行了一些研究,有些人通过ctx.getImageData(0,0,width,height).data来解决这个问题,然后在该数组中迭代,手动替换像素以获得透明度。我还读到这是一种糟糕的做法,因为它很慢(我的精灵表可能是1000 x 1000,所以这会很慢)。
有可能做点什么让我的gif中的透明度显示出来吗?当我把它保存在photoshop中时,当我看gif本身时,我可以看到它的透明度,但一旦我把它粘在画布上,它就不再透明了。
edit:我刚刚尝试了另一张gif,透明度很好,但在上面的那张中没有,上面的gif可能有问题吗?
在Mac上的最新Firefox和Chrome测试版中,使用该图像和以下代码对我来说很好。(除了图像本身有一些白色不透明像素,你可以在黑暗的背景上打开,例如在Firefox中看到。)
<!DOCTYPE HTML>
<html>
<head>
<script type="application/x-javascript">
var canvas, ctx;
function init() {
canvas = document.getElementById("canvas");
ctx = canvas.getContext("2d");
var size=500;
ctx.fillStyle = 'yellow';
ctx.beginPath();
ctx.fillStyle = 'yellow';
ctx.moveTo(0,0);
ctx.lineTo(size,0);
ctx.lineTo(size,size);
ctx.lineTo(0,size);
ctx.lineTo(0,0);
ctx.stroke();
ctx.fill();
var img = document.getElementById("img");
ctx.drawImage(img, 0, 0);
}
</script>
</head>
<body onload="init();">
<canvas id="canvas" width="500" height="500"></canvas>
<img id="img" src="test.gif" style="position:absolute; top:500px"></img>
</body>
</html>
相关文章:
- JavaScript HTML5画布未显示
- html5画布动画无法正常工作
- 在HTML5画布上添加按钮和控件
- 如何在运行时在HTML5画布中绘制正方形
- Unicode字符未在HTML5画布中正确呈现
- 鼠标点击HTML5画布绘制矩形
- html5画布在同一行中写入多个字体
- HTML5画布-暂停时的运行时间
- 使用JavaScript和HTML5画布进行冲突检测
- 什么是HTML5画布标记的回退
- 如何在html5画布中绘制圆形作为单独的画布
- 如何在flash html5画布项目中动态更改文本颜色
- HTML5画布支持和Android Webview
- html5画布中的套索工具
- 什么'是在HTML5画布中创建关键事件的最佳方式
- Javascript:延迟在html5画布上循环绘制
- 如何在HTML5画布上呈现音频波形
- HTML5画布动画滑块
- 如何将 html5 画布另存为窗口 8 Metro 应用程序中的图像文件
- HTML5-画布元素&自定义光标