canvas save()和restore()
save方法儲存當前狀態,而restore方法還原之前儲存的狀態。
兩方法在繪圖中有著重要作用,例如繪圖的時候多顏色切換,save和restore方法比較方便實現此功能。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> canvas { border: 2px dotted #ccc; margin:50px; } </style> <script> window.onload=function(){ var cvs = document.getElementById("myCanvas"); var ctx = cvs.getContext("2d"); ctx.fillStyle = "rgba(255,0,0,1)"; //前面的狀態 ctx.save(); ctx.beginPath(); ctx.rect(100,100, 110, 110); ctx.fill(); //設定畫筆的顏色 ctx.fillStyle = '#0f0'; ctx.fillRect(250, 250, 111, 111); //還原前面儲存的狀態 ctx.restore(); ctx.fillRect(300, 500, 111, 111); } </script> </head> <body> <canvas id="myCanvas" width="700" height="600"></canvas> </body> </html>
上面程式碼僅僅演示這兩個方法的作用,填充,描邊,漸變,畫面位移等都是可以儲存和還原的。
特別說明:
(1).每呼叫一次restore方法就會還原前面的一個狀態。
(2).可能會儲存多個狀態,比如狀態一和狀態二,那麼還原順序是狀態二和狀態一,先儲存的後還原。
在canvas繪製扇形程式碼例項一章節應用到了這兩個方法,可以自行進行分支。
相關文章
- Android 高階UI9 Canvas save和restore例項解析AndroidUICanvasREST
- canvas save()Canvas
- canvas restore()CanvasREST
- percona save/restore buffer pool特性記錄REST
- IPTABLES-SAVE手冊頁&IPTABLES-RESTORE手冊頁REST
- npm install -save 和 -save-devNPMdev
- restore和recover 區別REST
- npm –save-dev –save 的區別NPMdev
- vue 前端實現pdf下載.npm install html2canvas jspdf --saveVue前端NPMHTMLCanvasJS
- Spark SQL:通用的load和save操作SparkSQL
- vue-cli 自定義路徑別名 assets和static資料夾的區別 --save-dev和--save的區別Vuedev
- guarantee restore points-Flashback after RMAN restoreREST
- save() create()區別
- save download pdf
- Oracle rman中recover和restore的區別:OracleREST
- RESTORE POINTREST
- Unable to save settings: Failed to save settings. Please restart PyCharm解決AIRESTPyCharm
- 使用RMAN backup和restore方式部署物理備庫REST
- docker tag save loadDocker
- F. Magic Will Save the World
- Restore ArchivelogRESTHive
- 利用dump和restore實現Linux的備份和還原RESTLinux
- Laravel Lego :Save you from CRUDLaravelGo
- Save and Edit a Report Specification locally
- npm install -g 和npm install --save-dev的關係NPMdev
- DOCKER特性 - LIVE RESTOREDockerREST
- SQL Server Backup & RestoreSQLServerREST
- How restore CBO statisticsREST
- TFS Express backup and restoreExpressREST
- backup and restore tipsREST
- TMS request queue restoreREST
- Canvas&Paint 知識梳理(2) Canvas 的儲存和恢復CanvasAI
- canvas描邊和填充介紹Canvas
- 06.HTML5(SVG和canvas)HTMLSVGCanvas
- Unable to save settings: Failed to save settings. Please restart IntelliJ IDEA 解決方案AIRESTIntelliJIdea
- FMDB使用SQLite事務Save PointSQLite
- iptables-save中文手冊(轉)
- Django大咖之路: 深入理解Django建立物件的create和save方法Django物件