我在绘制画布时需要实现这一点:
首先我用画布绘制图像作为背景
然后用另一张图像的颜色绘制文本
=> 问题是 bg-image 与 text-img 重叠
这是我的代码:
window.onload = function() {
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
var img1 = document.getElementById("bg-img");
var img2 = document.getElementById("text-img");
// draw the first image as background
ctx.drawImage(img1, 0, 0);
// put text on canvas
ctx.save();
ctx.beginPath();
ctx.font = "50pt Verdana";
ctx.fillText("XBOX", 10, 100);
ctx.fill();
// use compositing to draw the background image
// only where the text has been drawn
ctx.beginPath();
ctx.globalCompositeOperation = "source-atop";
ctx.drawImage(img2, 0, 0, img2.width, img2.height, 0, 0, canvas.width, canvas.height);
ctx.restore();
};
<p>Image to use:</p>
<img id="bg-img" src="http://www.html5canvastutorials.com/demos/assets/darth-vader.jpg" alt="">
<img id="text-img" src="http://www.html5canvastutorials.com/demos/assets/yoda.jpg" alt="">
<p>Canvas:</p>
<canvas id="myCanvas" width="220" height="297"
style="border:1px solid #d3d3d3;">
</canvas>
测试链接: http: //jsfiddle.net/1x5dfgty/14/
翻阅古今
相关分类