青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

17站長(zhǎng)網(wǎng)

HTML5 Canvas 繪制文本

html5 Canvas 可以使用各種字體,大小和顏色在html5畫(huà)布上繪制文本,文本的外觀由這些2D Context font屬性控制,要繪制文本,請(qǐng)使用fillText()或strokeText()功能。

在線示例

可以使用各種字體,大小和顏色在HTML5畫(huà)布上繪制文本。
文本的外觀由這些2D Context font屬性控制。此外,您需要根據(jù)要繪制填充文本還是描邊文本來(lái)設(shè)置fillStyle或strokeStyle2D Context屬性。
要繪制文本,請(qǐng)使用fillText()或strokeText()功能
這是一個(gè)簡(jiǎn)單的代碼示例:

<canvas id="ex1" width="500" height="100" style="border: 1px solid #cccccc;">
    HTML5 Canvas not supported
</canvas>
<script>
   var canvas  = document.getElementById("ex1");
   var context = canvas.getContext("2d");
   context.font = "36px Verdana";
   context.fillStyle = "#000000";
   context.fillText("HTML5 Canvas Text", 50, 50);
 
   context.font        = "normal 36px Arial";
   context.strokeStyle = "#000000";
   context.strokeText("HTML5 Canvas Text", 90);
 </script>

這是在畫(huà)布上繪制時(shí)的結(jié)果:

HTML5 Canvas 繪制文本

字體和樣式

在HTML5畫(huà)布上繪制文本時(shí),必須設(shè)置要使用的字體。這是通過(guò)設(shè)置2D上下文font屬性的值來(lái)完成的。此屬性是具有css兼容值的字符串,其格式為:

[font style][font weight][font size][font face]

例如

context.font = "normal normal 20px Verdana";

您可以為字體字符串的每個(gè)部分設(shè)置以下值:

font stylenormal
italic
oblique
inherit
font weightnormal
bold
bolder
lighter
auto
inherit
100
200
300
400
500
600
700
800
900
font size以像素為單位的大小,例如12px,20px等
font face字體,e.g. verdana, arial, serif, sans-serif, cursive, fantasy, monospace etc.

請(qǐng)注意,并非每個(gè)瀏覽器都支持所有值。在依賴它們之前,您將必須測(cè)試計(jì)劃使用的值。
這是另一個(gè)示例:

"italic bold 36px Arial"

繪圖文字

如前所述,在HTML5畫(huà)布上繪制文本時(shí),您可以繪制填充文本或輪廓文本。您可以使用2D上下文函數(shù)fillText()和進(jìn)行操作strokeText()。這些函數(shù)的定義如下:

fillText   (textString, x, y [,maxWidth]);
strokeText (textString,maxWidth]);

該textString參數(shù)是繪制文本。
在x和y代表在文字中得出的位置。該x 參數(shù)是文本開(kāi)始的地方。該y參數(shù)是文本垂直放置的位置,但是確切的表示方式取決于文本基線。文本基線將在后面的部分中介紹。
該maxWidth文本被覆蓋在下面的部分。
這是一個(gè)代碼示例:

context.font      = "36px Verdana";
context.fillStyle = "#000000";
context.fillText("HTML5 Canvas Text", 50);

文字最大寬度

可選maxWidth參數(shù)告訴畫(huà)布,文本在水平方向上不能比給定參數(shù)值占用更多空間。如果文字太寬而無(wú)法容納 maxWidth,則文字的寬度將被壓縮。它沒(méi)有被切斷。這是一個(gè)使用和不使用繪制相同文本的代碼示例maxWidth:

context.font      = "36px Verdana";
context.fillStyle = "#000000";
context.fillText("HTML5 Canvas Text", 50);
context.fillText("HTML5 Canvas Text", 100, 200);

這是在HTML5畫(huà)布上繪制時(shí)這兩個(gè)文本的外觀:

HTML5 Canvas 繪制文本

如您所見(jiàn),第二個(gè)文本的寬度被壓縮以適合maxWidth 200個(gè)像素.

文字顏色

像其他任何形狀一樣,使用2D上下文 的fillStyle和 strokeStyle屬性設(shè)置填充或描邊文本的顏色。在這里,我不會(huì)更詳細(xì)地介紹這些屬性。

測(cè)量文字寬度

2D上下文對(duì)象具有可以測(cè)量文本像素寬度的功能。它無(wú)法測(cè)量高度。該函數(shù)稱為measureText()。這是一個(gè)代碼示例:

var textMetrics = context.measureText("measure this");
 
var width = textMetrics.width;

測(cè)量文本的寬度可用于計(jì)算文本字符串是否適合特定空間等。

文字基線

文本基線確定如何解釋和 的y參數(shù)。換句話說(shuō),垂直放置文本的位置以及該位置的解釋方式。請(qǐng)注意,瀏覽器在解釋此屬性的方式上也可能會(huì)有細(xì)微的差異。 fillText()strokeText()
使用textBaseline2D上下文的屬性設(shè)置文本基線。以下是它可以采用的值及其含義:

top文本根據(jù)文本中最高字形的頂部對(duì)齊
hanging文本根據(jù)似乎懸掛的行對(duì)齊。這幾乎與top相同,并且在許多情況下您看不到差異。
middle文本根據(jù)文本的中間對(duì)齊。
alphabetic垂直定向字形的底部,例如拉丁字母等西方字母
ideographic水平定向字形的底部。
bottom文本是根據(jù)文本中字形的底部對(duì)齊的,該字形在文本中向下延伸最低。

這是一個(gè)示例,該示例y對(duì)所有文本使用相同的值(75)繪制文本,但對(duì)所繪制的每個(gè)文本使用不同的基線。將畫(huà)一條線y=75,向您顯示如何圍繞該y值設(shè)置文本基線。

HTML5 Canvas 繪制文本

下面是生成上述圖形的代碼:

context.stokeStyle = "#000000";
context.linewidth  = 1;
context.beginPath();
context.moveto(  0, 75);
context.lineto(500, 75);
context.stroke();
context.closePath();
 
context.font      = "16px Verdana";
context.fillStyle = "#000000";
 
context.textBaseline = "top";
context.fillText("top", 0, 75);
 
context.textBaseline = "hanging";
context.fillText("hanging", 40, 75);
 
context.textBaseline = "middle";
context.fillText("middle", 120, 75);
 
context.textBaseline = "alphabetic";
context.fillText("alphabetic", 200, 75);
 
context.textBaseline = "ideographic";
context.fillText("ideographic", 300, 75);
 
context.textBaseline = "bottom";
context.fillText("bottom-glyph", 400, 75);

文字對(duì)齊

2D上下文textAlign屬性定義了繪制時(shí)文本如何水平對(duì)齊。換句話說(shuō),該textAlign屬性定義了x繪制文本時(shí)的坐標(biāo).

start緊隨該x位置之后繪制文本
left緊隨x位置之后才繪制文本,例如start。
center文本的中心位于一個(gè)x位置。
end文本的結(jié)尾位于x位置。
right文本的右邊緣位于x位置,例如end。

以下是一些示例,顯示了該textAlign屬性的工作方式。垂直線在處繪制x = 250。所有文本也都繪制有x = 250,但是textAlign屬性的值不同。

這是圖形的代碼示例:

<canvas id="ex4" width="500" height="120" style="border: 1px solid #cccccc;">
    HTML5 Canvas not supported
</canvas>
<script>
var canvas  = document.getElementById("ex4");
var context = canvas.getContext("2d");
 
context.stokeStyle = "#000000";
context.linewidth  = 1;
context.beginPath();
context.moveto( 250, 0);
context.lineto( 250, 250);
context.stroke();
context.closePath();
 
context.font      = "16px Verdana";
context.fillStyle = "#000000";
 
context.textAlign = "center";
context.fillText("center", 250, 20);
 
context.textAlign = "start";
context.fillText("start", 40);
 
context.textAlign = "end";
context.fillText("end", 60);
 
context.textAlign = "left";
context.fillText("left", 80);
 
context.textAlign = "right";
context.fillText("right", 100);
</script>

代碼運(yùn)行結(jié)果如下:  

HTML5 Canvas 繪制文本

返回頂部
主站蜘蛛池模板: 久久精品热老司机 | 国产精品久久人妻无码蜜 | 久久理伦片琪琪电影院 | 日本精品在线观看视频 | 99成人在线| 国产69精品久久久久乱码免费 | 姐姐不~不可以动漫在线观看 | 国产亚洲色婷婷久久精品99 | 日本毛片久久国产精品 | 中文字幕亚洲第一 | 强奸日本美女小游戏 | 俄罗斯XXXXXL18 | 成人国内精品久久久久影 | 精品国产90后在线观看 | 国产精品视频在线自在线 | 亚洲视频成人 | 男人吃奶摸下挵进去啪啪 | 亲胸揉胸膜下刺激视频网站APP | 国产亚洲欧美ai在线看片 | 一受n攻高h全肉np | 轻点慢点1V2啊高H抽插 | 亚洲日本在线不卡二区 | 小SAO货叫大声点妓女 | 九热这里只有精品 | 色悠久久久久综合网小说 | WWW国产亚洲精品久久 | 亚洲精品国产在线观看 | 天天插天天舔 | RUNAWAY韩国动漫免费网 | 久久精品中文字幕 | 久久超碰国产精品最新 | 精品网站一区二区三区网站 | 免费三级播放器 | 青青久 | 动漫美女被爆挤奶歪歪漫画 | 久久国产精品免费A片蜜芽 久久国产精品萌白酱免费 久久国产精品麻豆AV影视 | 岛国片在线看 | 伊人精品久久久大香线蕉99 | 人妻体体内射精一区二区 | 久久久久久电影 | 99久久99久久久精品久久 |