八戒一区二区三区-午夜A级伦理电影-91好吊色国产欧美日韩在线-欧美国产精品二区三区13p-国产操逼大毛片基地-亚洲第一性爱免费视频网

站長資訊網
最全最豐富的資訊網站

Canvas學習系列一:初識canvas

最近你開始在學習canvas,打算把學習canvas的整個學習過程當中的一些筆記與總結記錄下來,如有什么不足之處還請大神們多多指出。

1. canvas介紹

Canvas元素的出現,可以說開啟的Web世界繪制動畫,圖形的大門,其功能非常強大
canvas 元素是HTML5中功能最強大的元素,它的能力主要是通過Canvas中的Context(繪圖上下文/繪圖環境)對象表現出來的。該對象從canvas本身獲取。

var canvas = getElementById('canvas');var context = canvas.getContext('2d');

2. canvas的后備內容

Canvas元素之間包含的文本,這種文本稱為 "后備內容",只有在瀏覽器不支持canvas元素時才會顯示該文本內容

<canvas>當前瀏覽器不支持canvas元素,請更換瀏覽器</canvas>

3. Canvas的尺寸

canvas元素時默認寬為300px、高為150px。

我們可以通過canvas的width,height屬性去修改canvas的大小,我們也可通過CSS去修改canvas元素的大小。但是二者的修改是有區別的。

canvas實際上有兩套尺寸:

一個是canvas元素的大小,一個是canvas繪圖表面的大小。

當我們用canvas的屬性width,height時實際上我們同時修改了元素的大小與繪圖表面的大小

當我們用CSS來設定時,是會修改canvas元素的大小,不會影響繪圖表面的大小,這時瀏覽器就會對繪圖表面縮放,會出現我們不想得到的效果

width與height屬性修改canvas尺寸大小時的表現

<canvas id="canvas" width="600" height="300">當前瀏覽器不支持canvas,請更換瀏覽器</canvas>  <script type="text/javascript">var canvas = document.getElementById('canvas');var cxt = canvas.getContext('2d');  cxt.font = "38px Arial";  cxt.fillStyle = "#427ACC";  cxt.strokeStyle = "#00116A";  cxt.fillText('Hello Canvas', canvas.width/2 - 110, canvas.height/2 + 15);  cxt.strokeText('Hello Canvas', canvas.width/2 - 110, canvas.height/2 + 15);</script>

Canvas學習系列一:初識canvas

用CSS去修改canvas元素尺寸大小時的表現

<!DOCTYPE html>  <html lang="en">  <head>      <meta charset="UTF-8">      <title>canvas尺寸問題</title>      <style>#canvas {              margin: 0 auto;              padding: 0;              width: 600px;              height: 300px;              border: 1px solid #ccc;          }</style>  </head>  <body>  <img src="" alt="" id="dataImage">  <canvas id="canvas">當前瀏覽器不支持canvas,請更換瀏覽器</canvas>  <script type="text/javascript">var canvas = document.getElementById('canvas');var cxt  = canvas.getContext('2d');      cxt.font = "38px Arial";      cxt.fillStyle = "#427ACC";      cxt.strokeStyle = "#00116A";      cxt.fillText('Hello World', canvas.width/2 - 110, canvas.height/2 + 15);      cxt.strokeText('Hello World', canvas.width/2 - 110, canvas.height/2 + 15);</script>  </body>  </html>

Canvas學習系列一:初識canvas

所以我們在設置Canvas元素的大小時,最好不要使用CSS去設置,我們可以這么去設置

<canvas id="canvas" width="600" height="300">當前瀏覽器不支持canvas,請更換瀏覽器</canvas>

或者

<script type="text/javascript">var canvas = document.getElementById('canvas');  canvas.width = '600'; //canvas的屬性取值為非負整數,所以不能帶有pxcanvas.height = '300';</script>

4. canvas API

canvas元素并未提供很多API,它只提供了兩個屬性三個方法,而繪圖功能的方法與屬性全都是canvas的繪圖環境(context)對象提供。

  1. width:設置/獲取canvas元素繪圖表面的寬度,默認值為300。

  2. height:設置/獲取canvas元素繪圖表面的高度,默認值為150。

  3. getContext(): 返回canvas元素的繪圖環境對象。

  4. toDataURL(): 描述:返回一個data URI:會根據type指定的參數形式將canvas中的圖片編碼成一個UTF-16字符串的形式。

  5. toBold(): 描述:創建Blob對象,用以展示canvas上的圖片;這個圖片文件可以被緩存或保存到本地,由User Agent( 用戶代理端 )自行決定。

  

toDataURL():

  type 可選參數

  圖片格式,默認為 image/png

  encoderOptions 可選參數

  當圖片格式為 image/jpeg 或 image/webp的情況下,可以從 0 到 1 的區間內選擇圖片的質量。

  如果超出取值范圍,將會使用默認值 0.92,默認分辨率為96dpi。

   這里值得注意:

  • 如果canvas的高度或者寬度為0時,會返回字符串 "data:,"

  • 如果傳入的類型不是 "image/png", 但是返回的值以 "data: image/png"開頭,說明傳入的類型不支持

  • Chrome支持“image/webp”類型

  盡管在默認情況下canvas對象是一副位圖,但是并不是HTML中的img元素,所以我們可以利用toDataURL方法創建一幅表示canvas的圖像;也可以利用此方法創建和操作緩沖canvas。 

<!DOCTYPE html>  <html lang="en">  <head>      <meta charset="UTF-8">      <title>canvas尺寸問題</title>      <style>#canvas {              margin: 0 auto;              padding: 0;              display: none;          }</style>  </head>  <body>  <img src="" alt="" id="dataImage">  <canvas id="canvas">當前瀏覽器不支持canvas,請更換瀏覽器</canvas>  <script type="text/javascript">var canvas = document.getElementById('canvas');var dataImage = document.getElementById('dataImage');      canvas.width = '600'; //canvas的屬性取值為非負整數,所以不能帶有pxcanvas.height = '300';var cxt  = canvas.getContext('2d');      cxt.font = "38px Arial";      cxt.fillStyle = "#427ACC";      cxt.strokeStyle = "#00116A";      cxt.fillText('Hello World', canvas.width/2 - 110, canvas.height/2 + 15);      cxt.strokeText('Hello World', canvas.width/2 - 110, canvas.height/2 + 15);var dataUrl = canvas.toDataURL();      dataImage.src = dataUrl;</script>  </body>  </html>

toBold():

目前該方法只有Firefox與IE10瀏覽器支持


參考文章:

MDN Web 技術文檔

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
人妻三级日本香港三级极97| 久久久久久久波多野结衣高潮| 无码视频一区二区三区| 欧美男生射精高潮视频网站| 久久久久久久久久久精品尤物| 浪潮国产AV一区二区熟女| 狠狠色噜噜狠狠狠777米奇小说| 国产成人亚洲精品无码高潮| А√天堂资源中文最新版地址 | 亚洲日本乱码在线观看| 性XXXX18免费观看视频| 天天摸天天摸色综合舒服网| 人妻熟妇av又粗又爽| 天干天干啦夜天干天天爽| 日日猛噜噜狠狠扒开双腿小说| 欧亚精品卡一卡二卡三7174| 欧美VIDEOSGRATIS杂| 麻豆一二三四区乱码| 久久国产欧美日韩精品| 乖宝真紧H嘶爽老子H| 成人永久免费高清视频在线观看| 把腿张开老子臊烂你的黄漫| WWW插插插无码免费视频网站| av色欲无码人妻中文字幕| 777成了乱人视频| 中文字幕无码日韩AV| 中文日产无乱码AV在线观| 在线观看片免费人成视频无码| 一本之道加勒比在线观看| 一本岛V免费不卡一二三区| 一边亲着一面膜下奶韩剧| けんじゃたいむMANA原神| 国产老熟女精品一区熟女AV| 国产午夜成人免费看片| 韩国19禁床震无遮掩免费| 狠狠躁夜夜躁人人爽天天5| 好吊色欧美一区二区三区视频| 狠狠色噜噜狠狠狠7777米奇| 女人18片毛片免费| 欧美又粗又长XXXXBBBB疯| 无码中文亚洲AV影音先锋无码| 岳丰满多毛的大隂户| 国产AV无码一区二区二三区J| 国产激情无码一区二区| 国产一区二区三区日韩精品| 极品尤物一区二区三区| 久久久久久久久精品成人| 日小骚B少妇真舒服| 亚洲熟妇AV一区二区三区宅男| 中国西西大胆女人裸体艺术 | 精品香蕉久久久午夜福利| 久久久久久久精品免费看| 日韩一区二区三区人妻系列| 亚洲中文无码永久免| 48熟女嗷嗷叫国产毛片小说| 锕锕锕锕锕锕锕好痛免费网址| 国产尤物亚洲精品不卡| 欧洲无码精品A码无人区| 四虎影视新紧急入口| 影音先锋无码A∨男人资源站| A级大胆欧美人体大胆666| 国产又粗又黄又爽的大片| 人妻人人做人碰人人添| 亚洲熟妇无码中文高清| 丰满少妇XXXⅩBBBB视频| 国产亚洲美女精品久久久久| 人马畜禽CORPORATION| 无码人妻久久久一区二区三区| 亚洲国产成人精品无码区在线| 在线观看成人无码中文AV天堂| 国产精品久久久久久久久爆乳| 精品亚洲韩国一区二区三区| 内射合集对白在线| 少妇搡BBBB搡| 亚洲精品乱码久久久久久蜜桃不卡| 中文字幕亚洲一区二区VA在线| 波多野结衣迅雷下载| 国产亚洲AV浪潮A∨尹人Av| 人妻少妇中文字幕久久| 又粗又硬又黄A级毛片| 草莓视频APP无限观看| 国产又大又粗又黄又爽白丝| 日本XXXX裸体XXXX免费| 亚洲AV综合色区无码一二三区| 性欧美乱妇COME | 国内国外日产一区二区| 老旺大肉蟒进进出出电影免费| 人与禽性视频77777| 玉蒲团2之玉女心经| 国产亚洲日韩在线A不卡| 日韩欧美亚洲国产精品字幕久久久| 亚洲AV成人噜噜无码网站| 中文字幕无码AV不卡一区| 精品国产精品久久一区免费式| 欧美亚洲一区二区三区| 野花影视免费观看高清| 激情久久AV一区AV二区AV三| 无码精品一区二区三区在线| 中国CHINESE老熟女| 国产成人精品一区二区三区无码| 久久精品水蜜桃AV综合天堂| 三更2饺子截取一小段| A级毛片在线观看| 和人妻隔着帘子按摩中字| 偷玩朋友熟睡人妻| 中文字幕丰满伦子无码| 久久精品国产亚洲AV麻豆蜜芽| 亚洲成AV人片在线观看WW| YY111111人妻影院| 内谢少妇XXXXX8老少交| 玉蒲团Ⅲ艳乳叶媚子| 久久久久久精品免费免费直播| 亚洲娇小被黑人巨大撑爆| 成人免费一区二区三区视频软件 | 大香伊蕉在人线国产最新2005| 精品欧美一区二区在线观看| 日本一区二区三区久久久久久久久| 亚洲男同帅GAY片在线观看| 城中村勾搭老熟女啪啪| 久久精品国产亚洲AV麻豆图片| 亚洲第一无码AV播放器下载| 国精品午夜福利视频不卡| 性少妇JEAⅠOUSVU片| 被黑人猛男连续高潮视频| 久久久久久国产精品免费免费| 亚洲乱码AV中文一区二区| 精品国产亚洲一区二区三区在线观 | 无码色AV一二区在线播放| 国产刺激男女视频在线| 玩弄老太婆BBW视频| AV免费无码天堂在线| 欧美丰满熟妇BBBBBB百度| 亚洲MV砖码砖区2021在线| 好男人好资源影视在线| 亚洲国产精品久久久久婷婷图片| 精品国产国偷自产在线观看| 亚洲中文自拍另类AV片| 乱码一卡2卡3卡4卡精品| 亚洲AV无码专区在线电影APP| 成人欧美一区二区三区性视频| 日韩A级成人免费无码视频| 中文字幕爆乳JULIA女教师| 男人边吃奶边揉好爽免费视频| 亚洲乱码一区AV春药高潮图片| 久久AV秘 一区二区三区蜜桃| 野花香在线观看免费观看大全动漫 | JIZZJIZZ中国18大学生| 老熟妇高潮一区二区三区网| 最新版天堂资源官网在线| 欧美巨大XXXX做受| 大象大象视频WWW在线观看 | 欧美最猛黑人XXXXX猛交| 吃警察爸爸的擎天柱视频| 我是你可爱的小猫| 狠狠色欧美亚洲综合色| 一本一道波多野毛片结衣AV黑人| 男人天堂2018| 成人午夜福利视频后入| 午夜无码大尺度福利视频| 国产成人AV一区二区三区在线观 | 色欲欲WWW成人网站| 伴郎粗大的内捧猛烈进出| 爽爽AV浪潮AV一区二区| 成在线人AV免费无码高潮喷水 | 怡红院亚洲第一综合久久| 欧美国产日韩久久MV| 动漫RH男男车车好快的车车| 人妻少妇精品久久久久久| 国产成人精品无码青草| 亚洲VA中文字幕| 蜜臀人妻四季AV一区二区不卡| 一本一本大道香蕉久在线精品| 欧美丰满熟妇XXXX性PPX人| 丰满饥渴老女人HD| 亚洲国产精彩中文乱码AV| 母与子之间的阴阳调和| 粉嫩小泬无遮挡久久久久久小说| 亚洲AV片在线观看| 好男人 好资源在线 视频| 中国CHINESE壮男GⅤ军警| 色老头在线一区二区三区| 绯色AV一区二区三区蜜臀| 亚洲AV无码专区在线播放| 男人猛戳女人30分钟视频大全 | 旧里番6080在线观看| 爆乳2把你榨干哦在线观看| 亚洲AV成人一区二区三区AV| 蜜桃无码一区二区三区| 国产SUV精品一区二区| 野花电影在线观看免费720| 久久蜜桃86人妻arvi| 一线产区与二线产区的定义| 日本少妇情视频WWW| 护士爽到疯狂潮喷好爽| EEUSS影院鲁丝片A无码| 亚洲 欧洲 日韩 综合 第一页| 男女做AJ视频免费的网站| 国产乱子伦农村XXXX| 亚洲国产成人久久综合电影| 强壮公弄得我次次高潮|