婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫(kù) > 使用HTML5 Canvas API控制字體的顯示與渲染的方法

使用HTML5 Canvas API控制字體的顯示與渲染的方法

熱門標(biāo)簽:西寧智能外呼系統(tǒng)加盟 飛亞外呼系統(tǒng) 貸款電銷人工和機(jī)器人哪個(gè)好 百應(yīng)電銷機(jī)器人產(chǎn)業(yè) 杭州營(yíng)銷電銷機(jī)器人供應(yīng)商 電視購(gòu)物電銷外呼系統(tǒng) 電話機(jī)器人如何 聯(lián)通400電話申請(qǐng) 高德地圖標(biāo)注賓館位置

API簡(jiǎn)介
今天我們開始征戰(zhàn)一個(gè)全新的內(nèi)容——HTML5 Canvas的文本API!要知道,藝術(shù)家通常同時(shí)也是一個(gè)書法家,所以我們要學(xué)習(xí)寫字,而且是寫出漂亮的字。是不是很有意思?

好了,先預(yù)告一下Canvas 文本API有哪些。

屬性 描述
font 設(shè)置或返回文本內(nèi)容的當(dāng)前字體屬性
textAlign 設(shè)置或返回文本內(nèi)容的當(dāng)前對(duì)其方式
textBaseline 設(shè)置或返回在繪制文本時(shí)使用的當(dāng)前文本基線

方法 描述
fillText() 在畫布上繪制“被填充的”文本
strokeText() 在畫布上繪制文本(無填充)
measureText() 返回包含指定文本寬度的對(duì)象

看了上面的表格,相信童鞋們以及有了大概的認(rèn)識(shí)。這里,我們先說文本的顯示與渲染,用到了font,fillText()與strokeText()。

基本文本顯示
在Canvas上使用文本,必須得先知道:Canvas上的文本不能使用CSS樣式,雖然font屬性與CSS的屬性相似,但是卻不能夠交換使用。

顯示文本三步走戰(zhàn)略:

1.使用font設(shè)置字體。
2.使用fillStyle設(shè)置字體顏色。
3.使用fillText()方法顯示字體。
這里的font屬性可以不指定,如果沒有指定字體,則默認(rèn)自動(dòng)使用 10px 無襯線體。

下面的代碼簡(jiǎn)單顯示了一段文本

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. <!DOCTYPE html>   
  2. <html lang="zh">   
  3. <head>   
  4.     <meta charset="UTF-8">   
  5.     <title>基本文本顯示</title>   
  6.     <style>   
  7.         body { background: url("./images/bg3.jpg") repeat; }  
  8.         #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; }   
  9.     </style>   
  10. </head>   
  11. <body>   
  12. <div id="canvas-warp">   
  13.     <canvas id="canvas">   
  14.         你的瀏覽器居然不支持Canvas?!趕快換一個(gè)吧!!   
  15.     </canvas>   
  16. </div>   
  17.   
  18. <script>   
  19.     window.onload = function(){   
  20.         var canvas = document.getElementById("canvas");   
  21.         canvas.width = 800;   
  22.         canvas.height = 600;   
  23.         var context = canvas.getContext("2d");   
  24.         context.fillStyle = "#FFF";   
  25.         context.fillRect(0,0,800,600);   
  26.   
  27.         //1. 使用`font`設(shè)置字體。   
  28.         context.font = "50px serif";   
  29.         //2. 使用`fillStyle`設(shè)置字體顏色。   
  30.         context.fillStyle = "#00AAAA";   
  31.         //3. 使用`fillText()`方法顯示字體。   
  32.         context.fillText("《CANVAS--Draw on the Web》",50,300);   
  33.   
  34.     };   
  35. </script>   
  36. </body>   
  37. </html>  

運(yùn)行結(jié)果:

設(shè)置文本字體font
在Canvas中設(shè)置字體樣式非常的容易,font屬性與CSS的設(shè)置字體格式是一樣的,因此只需通過把與CSS兼容的字符串應(yīng)用到font屬性即可。可以設(shè)置字體的樣式、字體的變體、字體的粗細(xì)、字號(hào)和行高、字體外觀等。

基本格式如下。

CSS Code復(fù)制內(nèi)容到剪貼板
  1. context.font =    
  2. "[font-style] [font-variant] [font-weight]   
  3. [font-size/line-height] [font-family]"  

以上五個(gè)參數(shù)均可缺省,各個(gè)參數(shù)間用逗號(hào)隔開。

提示:參數(shù)用中括號(hào)[]包裹起來表示可以缺省。
下面一一來介紹一下這些參數(shù)值的意義。

font-style
font-style 屬性定義字體的風(fēng)格。

描述
normal 默認(rèn)值。瀏覽器顯示一個(gè)標(biāo)準(zhǔn)的字體樣式。
italic 瀏覽器會(huì)顯示一個(gè)斜體的字體樣式。
oblique 瀏覽器會(huì)顯示一個(gè)斜體的字體樣式。

后兩者通常情況下看上去是沒啥區(qū)別的。但是獲取傾斜效果的方法并不同。italic是使用字體庫(kù)中的斜體字,通常一個(gè)字體庫(kù)是擁有該字體的斜體形式和粗體形式。oblique是直接將字傾斜,如果一個(gè)字體庫(kù)沒有斜體字那么就不能使用italic,想要獲取傾斜字體只能使用oblique。

font-variant
font-variant 屬性設(shè)置小型大寫字母的字體顯示文本,這意味著所有的小寫字母均會(huì)被轉(zhuǎn)換為大寫,但是所有使用小型大寫字體的字母與其余文本相比,其字體尺寸更小。

描述
normal 默認(rèn)值。瀏覽器顯示一個(gè)標(biāo)準(zhǔn)的字體樣式。
small-caps 瀏覽器會(huì)顯示小型大寫字母的字體。

看下面的一張圖片就知道這屬性啥意思啦。

就是這樣,上面一行是使用的默認(rèn)值normal,下面一行使用的是small-caps。效果就是,原本大寫的英文字母不變,小寫的英文字母變成大寫,但是大小不變。

font-weight
font-weight 屬性設(shè)置文本的粗細(xì)。

描述
normal 默認(rèn)值。瀏覽器顯示一個(gè)標(biāo)準(zhǔn)的字體樣式。
bold 定義粗體字符。
bolder 定義更粗的字符。
lighter 定義更細(xì)的字符。
100-900之間的值 定義由粗到細(xì)的字符。400等同于normal,而700等同于bold。

font-size
font-size 屬性可設(shè)置字體的尺寸。

描述
xx-samll 最小字體
x-small 較小字體
samll 小字體。
medium 缺省值。
large 大字體。
x-large 較大字體。
xx-large 較大字體。
任意數(shù)值 單位px,代表字號(hào)值

line-height
line-height 屬性設(shè)置行間的距離(行高)。不允許使用負(fù)值

font-family
font-family 規(guī)定元素的字體系列。

使用@font-face自定義字體
HTML5支持常用字體,如果沒有可以使用@font-face擴(kuò)展字體。但是并不建議使用。

@font-face 能夠加載服務(wù)器端的字體文件,讓客戶端顯示客戶端所沒有安裝的字體。目前支持加載EOT與TTF文件。

示例:代碼過長(zhǎng),略XD

我這里下載的字體庫(kù)只有A-Z這26個(gè)大寫英文字母,所以遇到小寫的自動(dòng)轉(zhuǎn)大寫,遇到漢字或者數(shù)字它指定用星星符號(hào)代替。使用了CSS3中的@font-face即可自定義字體,是不是非常的酷。

文本渲染
同繪制矩形一樣,這里“繪制”文本也給出了兩種方法——fillText()與strokeText()。之所以說一樣,因?yàn)檫@兩個(gè)方法也可以通過fillStyle與strokeStyle設(shè)置對(duì)應(yīng)的屬性,之前說過的顏色填充、漸變填充、甚至是圖案填充都是可以的。

fillText()與strokeText()的參數(shù)表是一樣的,接受4個(gè)參數(shù),分別是String,x,y與maxlen,其中String是指要顯示的字符串,之后x與y是指顯示的坐標(biāo),最后一個(gè)maxlen是可以缺省的數(shù)值型參數(shù),代表顯示的最大寬度,單位是像素。如果文本的長(zhǎng)度超過了這個(gè)maxlen,Canvas就會(huì)將顯示文本橫向壓縮。通常為了保證字體的美觀,我們不設(shè)置maxlen。

即context.fillText(String,x,y,[maxlen])與context.strokeText(String,x,y,[maxlen])。

下面我們通過一個(gè)案例來看看文本渲染的效果。

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. <!DOCTYPE html>   
  2. <html lang="zh">   
  3. <head>   
  4.     <meta charset="UTF-8">   
  5.     <title>文本渲染</title>   
  6.     <style>   
  7.         body { background: url("./images/bg3.jpg") repeat; }  
  8.         #canvas { border: 1px solid #aaaaaa; display: block; margin: 50px auto; }   
  9.     </style>   
  10. </head>   
  11. <body>   
  12. <div id="canvas-warp">   
  13.     <canvas id="canvas">   
  14.         你的瀏覽器居然不支持Canvas?!趕快換一個(gè)吧!!   
  15.     </canvas>   
  16. </div>   
  17.   
  18. <script>   
  19.     window.onload = function(){   
  20.         var canvas = document.getElementById("canvas");   
  21.         canvas.width = 800;   
  22.         canvas.height = 600;   
  23.         var context = canvas.getContext("2d");   
  24.         context.fillStyle = "#FFF";   
  25.         context.fillRect(0,0,800,600);   
  26.   
  27.         context.beginPath();   
  28.         context.font = "50px Verdana";   
  29.         var gradient = context.createLinearGradient(0,0,800,0);   
  30.         gradient.addColorStop("0","magenta");   
  31.         gradient.addColorStop("0.5","blue");   
  32.         gradient.addColorStop("1.0","red");   
  33.         context.fillStyle = gradient;   
  34.         context.strokeStyle = "#00AAAA";   
  35.         context.strokeText("airingursb.github.io", 50, 100);   
  36.         context.fillText("airingursb.github.io", 50, 200);   
  37.   
  38.         //限制寬度   
  39.         context.fillText("airingursb.github.io", 50, 300, 200);   
  40.   
  41.         context.beginPath();   
  42.         var img = new Image();   
  43.         img.src = "./images/bg1.jpg";   
  44.         img.onload = function(){   
  45.             var pattern = context.createPattern(img, "repeat");   
  46.             context.fillStyle = pattern;   
  47.             context.fillText("airingursb.github.io", 50, 400);   
  48.         }   
  49.   
  50.         context.beginPath();   
  51.         context.fillStyle = "#00AAAA";   
  52.         context.fillText("Airing的博客,歡迎訪問", 50, 500);   
  53.     };   
  54. </script>   
  55. </body>   
  56. </html>  

運(yùn)行結(jié)果:

這里第一行使用的是一般顏色的strokeText()方法,第二行使用的是漸變色的fillText()方法,第三行設(shè)置了maxlen,第四行給字體填充的是紋理圖案,第五行是廣告……

標(biāo)簽:晉中 牡丹江 內(nèi)蒙古 安慶 煙臺(tái) 邯鄲 撫州 玉溪

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用HTML5 Canvas API控制字體的顯示與渲染的方法》,本文關(guān)鍵詞  使用,HTML5,Canvas,API,控制,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《使用HTML5 Canvas API控制字體的顯示與渲染的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于使用HTML5 Canvas API控制字體的顯示與渲染的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    色婷婷av一区二区三区之一色屋| 亚洲.国产.中文慕字在线| 亚洲日本电影在线| 亚洲香蕉伊在人在线观| 黄页视频在线91| 在线91免费看| 亚洲欧洲性图库| 99re6这里只有精品视频在线观看| 日韩欧美在线一区二区三区| 喷水一区二区三区| 日韩欧美亚洲国产另类| 国产精品一区二区在线播放| 久久久久国产精品人| 狠狠久久亚洲欧美| 欧美精品一区二区久久久| 国产一区二区三区精品视频| 中文字幕精品一区二区三区精品| 91丨porny丨蝌蚪视频| 欧美另类变人与禽xxxxx| 麻豆国产一区二区| 国产亚洲成av人在线观看导航| 成人一区二区三区视频在线观看 | 欧美午夜宅男影院| 色综合天天综合给合国产| 亚洲小少妇裸体bbw| 欧美一二三区精品| 成人精品免费看| 夜夜嗨av一区二区三区| 日韩欧美国产三级| 91在线无精精品入口| 亚洲国产一区二区在线播放| 欧美人体做爰大胆视频| 国产精品亚洲а∨天堂免在线| 日韩毛片在线免费观看| 日韩视频在线永久播放| 91蜜桃在线观看| 精品一区二区三区免费观看| 一区二区三区在线视频播放 | 在线观看亚洲精品| 捆绑紧缚一区二区三区视频| 国产无一区二区| 欧美日韩aaaaa| 成人av在线资源网站| 日韩福利电影在线观看| 中文字幕一区二区三区视频| 欧美一区日韩一区| 欧美午夜不卡视频| 成人在线视频首页| 激情欧美日韩一区二区| 石原莉奈在线亚洲二区| 亚洲在线一区二区三区| 国产色婷婷亚洲99精品小说| 日韩一区和二区| 在线观看亚洲成人| 91啪亚洲精品| 91色综合久久久久婷婷| 国产乱淫av一区二区三区| 琪琪一区二区三区| 日韩精品三区四区| 国产不卡免费视频| 精品一区二区在线播放| 蜜臀av性久久久久蜜臀av麻豆 | 欧美一区二区三区免费大片| 色婷婷av一区| 欧美亚洲图片小说| 色婷婷av一区二区三区之一色屋| 成人三级伦理片| www.日韩在线| 久久国产精品99久久久久久老狼| 奇米色一区二区| 久久99蜜桃精品| 国产凹凸在线观看一区二区| 国产黄色精品视频| 菠萝蜜视频在线观看一区| 99久久99久久精品国产片果冻| 94-欧美-setu| 欧美视频中文字幕| 欧美日韩国产综合视频在线观看| 欧美久久久影院| 日韩精品一区二区三区老鸭窝| 日韩欧美在线不卡| 国产精品丝袜久久久久久app| www成人在线观看| 国产欧美精品一区aⅴ影院| 中文av字幕一区| 中文字幕在线观看不卡| 亚洲精品久久久蜜桃| 欧美精品丝袜久久久中文字幕| 欧美色成人综合| 欧美一区二区大片| 91精品国产综合久久婷婷香蕉| 欧美精品一区二区三区一线天视频| 日韩午夜激情av| 亚洲视频一区在线观看| 亚洲欧美视频在线观看| 蜜臀av性久久久久av蜜臀妖精| 亚洲一区二区三区四区不卡| 久久精品国产亚洲a| 北条麻妃国产九九精品视频| 不卡一卡二卡三乱码免费网站| 99精品国产99久久久久久白柏| 免费在线观看日韩欧美| 久久99国产精品久久99| 美女尤物国产一区| 国产精品1024| 在线免费观看一区| 日韩免费电影网站| 国产欧美久久久精品影院| 亚洲va欧美va天堂v国产综合| 日韩精品亚洲一区二区三区免费| 成人97人人超碰人人99| 色婷婷久久综合| 欧美国产97人人爽人人喊| 亚洲丝袜精品丝袜在线| 久久精品免费看| 成人av在线影院| 久久精品日产第一区二区三区高清版 | 久久久另类综合| 久久婷婷国产综合精品青草| 亚洲成人激情自拍| 轻轻草成人在线| 欧美日韩另类国产亚洲欧美一级| 欧美精品一区二| 另类成人小视频在线| 99久久久久久| 中文字幕欧美国产| 亚洲国产精品成人综合色在线婷婷| 国产亚洲精品7777| 午夜精品福利在线| 成人在线视频首页| 国产精品美女久久久久aⅴ国产馆| 亚洲一二三区视频在线观看| 色综合久久九月婷婷色综合| 欧美v亚洲v综合ⅴ国产v| 久久电影国产免费久久电影| 久久久九九九九| 一区二区三区自拍| 麻豆91在线播放| 久久在线观看免费| 亚洲aaa精品| 91麻豆精品91久久久久久清纯| 国产精品美女久久福利网站| 95精品视频在线| 欧美日韩一区二区三区在线看 | 欧洲精品一区二区| 亚洲欧美激情视频在线观看一区二区三区 | 国产蜜臀av在线一区二区三区| 国产中文字幕精品| 欧美哺乳videos| 国产精品一区在线观看乱码| 日韩亚洲欧美一区| 国产v综合v亚洲欧| 日韩一级高清毛片| 国产成人a级片| 精品国产不卡一区二区三区| 国产精品538一区二区在线| 日本午夜一区二区| 久久先锋影音av鲁色资源| 亚洲不卡av一区二区三区| 欧美一区二区三区在线电影| 亚洲成人激情av| 精品国产乱子伦一区| 美女视频黄a大片欧美| 久久综合国产精品| 国产露脸91国语对白| 亚洲色图欧美激情| 91亚洲精品久久久蜜桃网站 | 一区视频在线播放| 欧美日韩在线观看一区二区| 亚洲精品国产成人久久av盗摄| 欧美视频中文字幕| 成人免费av网站| 亚洲综合一区二区三区| 91国偷自产一区二区开放时间 | 97se亚洲国产综合自在线不卡| 国产精品久久久久aaaa樱花| 欧美在线观看视频一区二区| 亚洲综合视频在线| 欧美精品精品一区| 激情综合五月天| 国产精品国产自产拍在线| 色综合久久天天| 日韩二区三区在线观看| 久久色在线观看| 日韩一区二区在线免费观看| 韩国欧美国产一区| 欧美va天堂va视频va在线| 国产一区二区三区久久久 | 日韩一区在线播放| 国产精品影视在线| 亚洲视频在线一区| 欧美久久一二区| 色狠狠桃花综合| 欧美va日韩va| 日本高清免费不卡视频| 国产成人免费视频| 亚洲v中文字幕| 亚洲地区一二三色| 亚洲国产精品国自产拍av| 26uuu久久综合|