dataURL

進度
已完成
類別
Net
javascript
作者
Timothychen
Created
May 2, 2022 07:41 AM
製作時間
May 6, 2022 → May 9, 2022

為什麼會有dataurl

在使用javascript撰寫網頁的時候,經常會有動畫生成和製作的需求,然而有時候就會動用到一個東西叫做canvas,而canvas本質上就是一塊畫布,而這個畫布可以繪製圖形甚至製作動畫。
 
canvas.toDataUrl()
這個方法就會把canvas的內容轉成dataurl的格式(這邊默認會是image/pngshape的話就會有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/plainMIME 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