zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    web 移动端 适配
    meta
    meta设置
    时间
    CentOS下配置nginx conf/koi-win为同一文件的各类错误
    CentOS7 配置LAMP
    centos 进度条卡死
    LeetCode02:两数相加
    LeetCode01:两数之和
    单链表类,链表逆置
  • 原文地址:https://www.cnblogs.com/hzj680539/p/5059701.html
Copyright © 2011-2022 走看看