html5 - 請問利用font-face定義的字體怎么在canvas里應用?
問題描述
請問利用font-face定義的字體怎么在canvas里應用?
問題解答
回答1:<style> @font-face { font-family: '_________'; //下劃線填字體名稱 src: url('_________'); //下劃線填字體文件 }</style><script type='text/javascript'> function draw() { var ctx = document.getElementById(’canvas’).getContext(’2d’); var img = new Image(); img.onload = function(){ ctx.drawImage(img,0,0); ctx.beginPath(); ctx.fillStyle = ’#000’; ctx.font = '60px Automania'; ctx.textBaseline = ’top’; ctx.fillText(’what this font looks’, 0, 5); ctx.stroke();}img.src = ’img.png’; }</script><input onclick='draw()' type='button' value='test' /><canvas height='800'></canvas>
不過不建議在canvas中使用自定義字體,因為字體文件加載太慢。。
回答2:1.必須再等到字體下載完成之后再去渲染canvas,字體才能有作用 2.canvas中所引用的字體必須在文檔流中有標簽(span,p等)引用改字體!!!這就是最大的坑了!!!
相關文章:
1. webpack - vue-cli寫的項目(本地跑沒有問題),準備放到Nginx服務器上,有什么配置需要改的?還有怎么部署?2. 極光推送 - Android app消息推送 百度 極光 個推 信鴿哪個好一些?3. 什么是前后端分離?用vue angular等js框架就能實現前后分離了嗎?4. 聽了幾節課,不明白VUE在項目中有啥實際用5. javascript - SuperSlide.js火狐不兼容怎么回事呢6. ddos - apache日志很多其它網址,什么情況?7. android - 百度地圖加載完成監聽8. 這是什么情況???9. android - 百度地圖拖拽圖標后原來位置的圖標還在?10. docker 下面創建的IMAGE 他們的 ID 一樣?這個是怎么回事????
