為什麼會有dataurl
在使用javascript撰寫網頁的時候,經常會有動畫生成和製作的需求,然而有時候就會動用到一個東西叫做canvas,而canvas本質上就是一塊畫布,而這個畫布可以繪製圖形甚至製作動畫。
canvas.toDataUrl()
這個方法就會把canvas的內容轉成
dataurl
的格式(這邊默認會是image/png
,shape
的話就會有4個channel rgba
)canvas.tocanvas.toDataUrl(”image/jpeg”)
什麼是dataurl
dataurl
目的地不是一個單獨的網頁或者,一個可以直接被訪問的地方(當你在瀏覽器直接輸入dataurl
你將看不到結果)。其實是通過dataurl
的形式儲存的(資料就在dataurl
裡面),而這樣也就可以使dataurl
可以很方便的在html
內嵌入這是一個
dataurl
的範例(內容是helloworld
)data:text/plain;base64,SGVsbG8sIFdvcmxkIQ
dataurl有幾個部分組成:
data:
前綴表示是dataurl
形式
[media type]
例如text/plain
(MIME type
)都可以
;based64
表示編碼格式(如果是針對圖片的話,就是將2進制的數據通過64進制進行編碼)
,<data>
存放資料內容,前面逗點用於分隔
注意事項
dataurl
在大部分主流的瀏覽器中還是有長度限制的(約65000),且是經過base64
編碼後的長度
dataurl
產生的錯誤不會在瀏覽器中報錯(會直接被忽略)
參考資料
- https://zhuanlan.zhihu.com/p/135405455
MIME type
- https://developer.mozilla.org/zh-TW/docs/Web/HTTP/Basics_of_HTTP/MIME_types