External
1  | <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>  | 
HTML
1  | <input id="upload" accept="image/*" type="file" />  | 
Note
- input選擇
type="file",並使用accept屬性來驗證檔案格式。 - canvas預覽用
 
Javascript
1  | $('#upload').change(function () {  | 
Note
- jQuery的change方法對input做類似監聽的效果,監聽是否資料被存取
 - 建立一個img,其onload裡設定canvas的長寬,並用drawImage將圖片畫到canvas上,用revokeObjectURL()釋放記憶體
- createObjectURL()都會產生一個新的URL。
為了最佳化效能與記憶體用量,不再需要時便用revokeObjectURL()釋放 
 - createObjectURL()都會產生一個新的URL。
 - HTML5 Web API 的 createObjectURL()對input上的檔案建立一個Blob物件,並設為img的src來源  
- 不使用readAsDataURL(),因為曾在iOS拍照上踩過雷
(無法toDataURL(),會變白圖片) - 好處請看:黑暗執行緒
 
 - 不使用readAsDataURL(),因為曾在iOS拍照上踩過雷