使用CSS3的@font-face嵌入字体后,怎样在HTML5中的CANVAS调用

<!doctype html>

 <style type="text/css" media="screen, print">

    @font-face {

      font-family: "Automania";

      src: url("Automaniattf");

    }

</style>

<script type="text/javascript">

function draw() {    

    var ctx = documentgetElementById('shuipai')getContext('2d');    

    var img = new Image();    

    imgonload = function(){         

      ctxdrawImage(img,0,0);    

      ctxbeginPath();    

      ctxfillStyle    = '#000';

      ctxfont         = "60px Automania";

      ctxtextBaseline = 'top';

      ctxfillText('what this font looks', 0, 5);

      ctxstroke();

    }

    imgsrc = '>

Canvas相当于画布,字体的大小格式在Paint上设置才正确, Paint 相当于画笔。代码如下,没有具体参数

Paint paint = new Paint();

paintsetTextSize(textSize);//设置字体大小

paintsetTypeface(typeface);//设置字体类型

canvasdrawText(text, x, y, paint);//使用画笔paint

@Override

public void onDraw (Canvas canvas) {

Rect targetRect = new Rect(50, 50, 1000, 200);

Paint paint = new Paint(PaintANTI_ALIAS_FLAG);

paintsetStrokeWidth(3);

paintsetTextSize(80);

String testString = "测试:ijkJQKA:1234";

paintsetColor(ColorCYAN);

canvasdrawRect(targetRect, paint);

paintsetColor(ColorRED);

FontMetricsInt fontMetrics = paintgetFontMetricsInt();

扩展资料:

Screen Space - Camera

此模式类似Screen Space - Overlay,但区别是此模式将Canvas放置于某个Camera前固定距离。此Camera负责渲染所有UI元素,则摄像机参数(Camera Settings)直接影响UI表现。

比如Camera是透视模式(Perspective),则UI元素会基于Field of View的值而扭曲变形。同样的,若屏幕分辨率变更,或者视觉平截体(CameraFrustrum)改变,则Canvas自动调整自身尺寸作自适应。

参考资料来源:百度百科-canvas

var canvas = documentgetElementById("demoCanvas"); 获取canvas元素

ctx = canvasDomgetContext('2d'); 获取上下文

ctxmoveTo(0,0) 设置起始点

ctxlineTo(100,100) 设置终点

ctxlineWidth = 8; 线宽度

ctxstrokeStyle = "red" 设置颜色

ctxstroke() 显示

ctxfillStyle = "pink"; 填充色

ctxfill() 填充

ctxclosePath() 结束

ctxbeginPath(); 开启一个新状态绘图

ctxrect(x,y,w,h) 绘制一个矩形 //前两参数起始点坐标,后两参数宽高

ctxstrokerect(x,y,w,h) 直接显示矩形,不需要ctxstroke()

ctxfillrect() 被填充直接显示的矩形

ctxclearRect(x,y,w,h) 清除矩形 --重要

ctxarc(x,y,sAngle,eAngle,count) //绘制圆形 x坐标/y坐标/半径/绘制开始角度/绘制结束角度/逆时针绘制

ctxshadowColor="tael" 设置阴影的颜色

ctxshadowBlur=10 设置阴影模糊级别

ctxshadowOffsetX=10 设置阴影距离形状的水平距离

ctxshadowOffsetY=10 设置阴影距离形状的垂直距离

(少用,性能比较差,尽量让UI做)

var grd=ctxcreateLinearGradient(0,0,170,0) 创建一个线性渐变,参数,两个点坐标

grdaddColorStop(0,'pink') // 添加一个新的渐变色

grdaddColorStop(1,'pink') // 添加一个新的渐变色

ctxfillstyle = grd 把渐变设置到填充样式

ctxfillRect(0,0,300,300) 创建一个矩形

ctxtranslate(200,200) 把当前画布移动到坐标点

ctxrotate(30MathPI/180) 旋转画布,参数为度数

ctxscale(2,2) 画布缩小或放大,参数倍数

ctxglobalAlpha=03 设置画布透明度

ctxsave() 把当前上下文状态保存起来

ctxrestore() 把之前保存画布的状态还原

ctxtoDataURL('img',1) 画布保存为base64编码

ctxdrawImage(canvas1,10,10) 把一个画布放到另一个画布上,可以让canvas优化

ctxarcTo(240,100,240,110,40) //做圆角用 端点1坐标,端点2坐标,半径

Konva库的使用

public void drawText(@NonNull String text, float x, float y, @NonNull Paint paint)

绘制文本的时候,参数X,Y并不是绘制的起点,而是文字的底部 比如

绘制A , 这个x,y 是A的左下角的坐标,下图 baseline起点,而不是右上角的坐标。

获取text的长度 使用 paintmeasureText(text); 方法测量文本的长度

获取text的高度 使用float height = paintascent()+paintdescent(); 获取。

关于字体参数可以查看下面。

以上就是关于使用CSS3的@font-face嵌入字体后,怎样在HTML5中的CANVAS调用全部的内容,包括:使用CSS3的@font-face嵌入字体后,怎样在HTML5中的CANVAS调用、canvas属性方法整理、android canvas的drawText方法 如何设置字体大小和格式。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9633710.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存