怎么在网页中创建canvas和文字?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么在网页中创建canvas和文字?相关的知识,希望对你有一定的参考价值。

<canvas id="t_con" height="200px" width="200px"></canvas>
<script>

var ele = document.getElementById("t_con");
var ctx = ele.getContext("2d");
// 字号为60px ,字体为impact
ctx.font = "30px impact";

//将文本填充为棕色
ctx.fillStyle = "#960";
//将文本设为居中对齐
ctx.textAlign = 'center'; //规定变换操控点的位置
//设置文字
ctx.fillText("Happy Trails!", 100, 55, 400); //参数为fillText(文本内容, 变换操控点的x坐标, 变换中心的y坐标, 文本最大宽度)
</script>
参考技术A 如果你想在网页当中使用canvas写文字的效果,那你需要好好的找到html5中canvas那段再看一遍,具体需要什么效果,还看自己想要什么效果,就用到canvas的哪个功能。
以下代码来自百度,你随便复制预览效果:
<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>HTML5 Canvas绘制文本文字入门示例</title>

</head>

<body>

<!-- 添加canvas标签,并加上红色边框以便于在页面上查看 -->

<canvas id="myCanvas" width="400px" height="300px" style="border: 1px solid red;">

您的浏览器不支持canvas标签。

</canvas>

<script type="text/javascript">

//获取Canvas对象(画布)

var canvas = document.getElementById("myCanvas");

//简单地检测当前浏览器是否支持Canvas对象,以免在一些不支持html5的浏览器中提示语法错误

if(canvas.getContext)

//获取对应的CanvasRenderingContext2D对象(画笔)

var ctx = canvas.getContext("2d");

//设置字体样式

ctx.font = "30px Courier New";

//设置字体填充颜色

ctx.fillStyle = "blue";

//从坐标点(50,50)开始绘制文字

ctx.fillText("CodePlayer+中文测试", 50, 50);



</script>

</body>

</html>
参考技术B 利用编程,可以实现在网页中显示出我们想要展示的画布与文字。具体的你还可以去百度搜索一下秒秒学,里面的Flash的HTML5开发教程就对这个工具有详细的讲解。里面很多教程都是免费的哦。本回答被提问者采纳 参考技术C <canvas id="canvas" width="500" height="500" style="width:250px;height:250px;"></canvas>

<script type="text/javascript">
var c=document.getElementById("canvas");
var ctx=c.getContext("2d");
//文字
ctx.fillStyle='#0085D0';
ctx.font = " 36px '微软雅黑'";
ctx.fillText('1234', 110, 170);
</script>
参考技术D <canvas id="canvas" width="500" height="500" style="width:250px;height:250px;"></canvas>

<script type="text/javascript">
var c=document.getElementById("canvas");
var ctx=c.getContext("2d");
//文字
ctx.fillStyle='#0085D0';
ctx.font = " 36px '微软雅黑'";
ctx.fillText('1234', 110, 170);
</script>

Three中创建文字的几种方法

1. DOM + CSS

传统html5的文字实现,用于添加描述性叠加文字的方法。一般使用绝对定位,并且保证z-index够大,用于显示在3D场景之上。

优点:
与CSS3D效果一致

缺点:
3d效果和运动还原不好

2. THREE.CanvasTexture

在canvas中绘制文字,然后使用CanvasTexture作为纹理进行贴图
例子

优点:
文字效果较为丰富,方便绘制。

缺点:
一旦生成,分辨率固定,放大会产生失真。

3. THREE.TextGeometry / THREE.TextBufferGeometry

使用原生的TextGeometry进行渲染生成。例子

优点:
效果好,可与场景进行同步

缺点:
单个字体的颜色和动画制作较为复杂,且耗费资源较大

4. 3d字体模型

使用3d制作的字体模型,使用threejs进行加载控制。例子

优点:
效果好,可定制效果

缺点:
加载模型较为耗费资源,字体内容无法自定义

5. 位图字体

通过BmpFont生成文字模板,然后进行加载显示。BMFonts (位图字体) 可以将字形批处理为单个BufferGeometry。BMFont的渲染支持自动换行、字母间距、字句调整、signed distance fields with standard derivatives、multi-channel signed distance fields、多纹理字体等特性。three-bmfont-text

优点:
可自定义字体和效果

缺点:
加载模型较为耗费资源,字体内容无法自定义

6. Three.Sprite

Sprite加载图像纹理

优点:
永远面向相机的平面,适合作为标签显示

缺点:
存在canvasTexture的问题

以上是关于怎么在网页中创建canvas和文字?的主要内容,如果未能解决你的问题,请参考以下文章

Three中创建文字的几种方法

画布 canvas 的相关内容

如何在canvas 画图加文字

在画布中创建复合剪辑

Android 如何在 Canvas 的 onDraw 方法中创建 onClick 事件

如何在 HTML5 Canvas 中创建可拖动的线条?