• html5 canvas 笔记三(绘制文本和图片)


    绘制文本

    • fillText(text, x, y [, maxWidth])   在指定的(x,y)位置填充指定的文本,绘制的最大宽度是可选的.
    • strokeText(text, x, y [, maxWidth]) 在指定的(x,y)位置绘制文本边框,绘制的最大宽度是可选的.

    实例:

    1 function draw() {
    2   var ctx = document.getElementById('canvas').getContext('2d');
    3   ctx.font = "48px serif";
    4   ctx.fillText("Hello world", 10, 50);
    5   ctx.strokeText("Hello world", 10, 250);
    6 }

    设置文本样式

    • font = value    当前我们用来绘制文本的样式. 这个字符串使用和 CSS font 属性相同的语法. 默认的字体是 10px sans-serif.
    • textAlign = value   文本对齐选项. 可选的值包括: start, end, left, right or center. 默认值是 start.
    • textBaseline = value    基线对齐选项. 可选的值包括: top, hanging, middle, alphabetic, ideographic, bottom. 默认值是 alphabetic.
    • direction = value   文本方向. 可能的值包括: ltr, rtl, inherit. 默认值是 inherit.

    文本测量

    • measureText()  将返回一个 TextMetrics对象的宽度、所在像素,这些体现文本特性的属性

    实例:获取文本宽度

    1 function draw() {
    2   var ctx = document.getElementById('canvas').getContext('2d');
    3   var text = ctx.measureText("foo"); // TextMetrics object
    4   text.width; // 16;
    5 }

    绘制图片

    引入图像到canvas里需要以下两步基本操作:

    1. 获得一个指向HTMLImageElement的对象或者另一个canvas元素的引用作为源,也可以通过提供一个URL的方式来使用图片
    2. 使用drawImage()函数将图片绘制到画布上

    1>使用相同页面内的图片

    • document.images集合
    • document.getElementsByTagName()方法
    • 如果你知道你想使用的指定图片的ID,你可以用document.getElementById()获得这个图片

    2>由零开始创建图像

    1 var img = new Image();   // 创建img元素
    2 img.onload = function(){
    3   // 执行drawImage语句
    4 }
    5 img.src = 'myImage.png'; // 设置图片源地址

    注意:若调用 drawImage 时,图片没装载完,那什么都不会发生,因此你应该用load时间来保证不会在加载完毕之前使用这个图片.

    绘制图片

    • drawImage(image, x, y)  其中image 是 image 或者 canvas 对象,xy 是其在目标 canvas 里的起始坐标。

    实例:

     1 function draw() {
     2     var ctx = document.getElementById('canvas').getContext('2d');
     3     var img = new Image();
     4     img.onload = function(){
     5       ctx.drawImage(img,0,0);
     6       ctx.beginPath();
     7       ctx.moveTo(30,96);
     8       ctx.lineTo(70,66);
     9       ctx.lineTo(103,76);
    10       ctx.lineTo(170,15);
    11       ctx.stroke();
    12     }
    13     img.src = 'images/backdrop.png';
    14   }

    缩放 Scaling

    • drawImage(image, x, y, width, height)

    切片 Slicing

    • drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
  • 相关阅读:
    centos 关于防火墙的命令
    jsp 时间格式
    @OneToMany
    CentOS7 关闭防火墙
    Centos系统中彻底删除Mysql数据库
    电脑装windows与Centos双系统时引导问题
    如何用C#代码查找某个路径下是否包含某个文件
    计算机中的正斜杠(/)与反斜杠()的区别
    MVC小例子
    vs怎么创建MVC及理解其含义
  • 原文地址:https://www.cnblogs.com/hzj680539/p/5059701.html
Copyright © 2020-2023  润新知