
在Canvas画布上绘制图像时,由于图像的加载是异步的,因此需要采用异步调用的方法来确保图像在加载完成后再进行绘制。
在Canvas画布上实现图像上叠加文字是一个常见的需求,通常可以通过以下步骤来完成:
- 创建一个Canvas元素,并获取其绘图上下文。
- 在Canvas上绘制图像。
- 在图像上绘制文字。
下面是一个简单的HTML文件示例,展示了如何在Canvas画布上实现图像上叠加文字:
示例效果与源代码:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Canvas图像上叠加文字示例</title> </head> <body> <canvas id="myCanvas" width="400" height="400" style="border:1px solid #000000;"></canvas> <script> var canvas = document.getElementById('myCanvas'); var ctx = canvas.getContext('2d');
var img = new Image(); img.src = '/examples/canvas-qa/119/image/1.jpg';
img.onload = function() { ctx.drawImage(img, 10, 10);
ctx.font = '24px Arial'; ctx.fillStyle = 'white'; ctx.textAlign = 'center'; ctx.textBaseline = 'middle';
var text = '图形开发学院'; ctx.fillText(text, 100, 30); }; </script> </body> </html>
|
尝试一下 »
在这个示例中,我们首先创建了一个Canvas元素,并设置了其宽度和高度。然后,我们使用JavaScript获取Canvas元素和绘图上下文。接下来,我们创建了一个新的图像对象,并设置了其src
属性为图像的路径(在实际应用中,你需要将/examples/canvas-qa/118/image/1.jpg
替换为你的图像路径)。
当图像加载完成时,我们使用drawImage
方法将图像绘制到Canvas上。然后,我们设置了文字的样式(字体、颜色、对齐方式等),并使用fillText
方法在图像上绘制了文字。
请注意,由于图像加载是异步的,因此我们需要将绘制图像和文字的代码放在img.onload
事件处理函数中,以确保在图像加载完成后才进行绘制。
这个示例展示了如何在Canvas画布上实现图像上叠加文字的基本方法,你可以根据需要进行进一步的定制和扩展。