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 restore()CanvasREST
- canvas save()Canvas
- npm install -save 和 -save-devNPMdev
- vue 前端實現pdf下載.npm install html2canvas jspdf --saveVue前端NPMHTMLCanvasJS
- guarantee restore points-Flashback after RMAN restoreREST
- Spark SQL:通用的load和save操作SparkSQL
- npm –save-dev –save 的區別NPMdev
- Save Water
- DOCKER特性 - LIVE RESTOREDockerREST
- save download pdf
- Oracle rac使用nid和dbms_backup_restore包修改dbid和dbnameOracleREST
- Unable to save settings: Failed to save settings. Please restart PyCharm解決AIRESTPyCharm
- docker tag save loadDocker
- save() create()區別
- npm install -g 和npm install --save-dev的關係NPMdev
- DBMS_BACKUP_RESTORE.DBMS_BACKUP_RESTORE用於特殊情況下的恢復REST
- git操作之二:git restoreGitREST
- provider for back&restore app datyaIDERESTAPP
- [LeetCode] 93. Restore IP AddressesLeetCodeREST
- F. Magic Will Save the World
- Tensorflow儲存神經網路引數有妙招:Saver和Restore神經網路REST
- git restore極簡使用記錄GitREST
- Crunchy PostgreSQL database restore via pgo commandSQLDatabaseRESTGo
- Reboot Restore Rx Pro中文版bootREST
- python leetcode 93. Restore IP AddressesPythonLeetCodeREST
- [20190228]Backup Restore Throttle sleep.txtREST
- 【Lintcode】1601. Boats to Save People
- canvas描邊和填充介紹Canvas
- 06.HTML5(SVG和canvas)HTMLSVGCanvas
- RMAN restore validate database報ORA-19693RESTDatabase
- Django 中的資料庫update() 和 save() 方法的機制的不同Django資料庫
- Django大咖之路: 深入理解Django建立物件的create和save方法Django物件
- Linux基礎命令---iptables-saveLinux
- 一文了解npm install -g和npm install --save-dev的關係NPMdev
- db2備份恢復(backup restore)DB2REST
- rman 還原歸檔日誌(restore archivelogRESTHive
- Django模型中的save方法 精講Django模型