Image pre processing for upload (html5 + canvas), ie10+html
解決圖片上傳前裁剪、等比縮放,壓縮,支持本地視頻、同域視頻文件截圖功能等。html5
videoFile
, videoWidth
, videoHeight
, duration
。其餘參數爲截圖參數源碼地址:https://github.com/capricornc...git
演示地址:https://capricorncd.github.io...github
npm install image-process --save-dev
ES6+npm
import { ZxImageProcess } from 'image-process' const zxImageProcess = new ZxImageProcess({ // 默認爲空,圖片和視頻文件,前提是瀏覽器支持input[accept=] accept: 'video/*', // 自動裁剪 auto: false, // 觸發文件選擇的元素 selector: '#buttonId', // 限制寬度等比縮放,則只需設置width值 // 限制高度等比縮放,則只需設置height值 // 同時設置了width、height值,則會對圖片按尺寸裁剪 width: 600, height: 400, // 裁剪容器按鈕樣式 submitStyle: '', cancelStyle: 'color: red', // 最大文件限制 maxSize: 50, success: function (result) { // 返回數據 console.log(result); }, error: function (err) { console.error(err); } })
不初始化ZxImageProcess,直接使用期內部方法handleMediaFile(file, options)
,返回promise對象
canvas
import { handleMediaFile } from 'image-process' const options = { // 默認爲空,圖片和視頻文件,前提是瀏覽器支持input[accept=] accept: 'video/*', // 自動裁剪 auto: false, width: 600, height: 400, // 文件大小限制50M maxSize: 50 } // 處理圖片或視頻文件 handleMediaFile(file, options) .then(res => { console.log(res) }) .catch (err => { console.error(err) })
browserpromise
<script src="./dist/image-process-tools.min.js"></script>
https://capricorncd.github.io...瀏覽器
true|false
自動處理圖片,裁剪時不彈出手動位置調整框。默認爲false。#buttonId
選擇圖片按鈕id,支持id、class選擇器,或者HTMLElement
對象(僅ZxImageProcess實例化時有效)width: 640
裁剪或縮放寬度爲640px(可選)服務器
1.限制寬度縮放,則只需設置width值。2.限制高度縮放,則只需設置height值。ide
3.同時設置了width、height值,則會對圖片按尺寸裁剪
640
裁剪或縮放高度爲640px(可選)50
文件大小最大限制,單位M(兆)。默認50Msuccess: function(result){ console.log(result) }
圖片處理完成後的回調函數(僅ZxImageProcess實例化時有效)
base64:base64
圖片base64數據blob:
blobData
處理成功的圖片數據,可直接上傳至服務器,或賦值給input利用form表單提交。element:
canvas
canvas節點對象height:
640
處理完成的圖片寬度width:
640
處理完成的圖片寬度url:
blob:url
raw:
Object
原圖片相關屬性(寬高/文件大小/Base64編碼數據/類型/元素節點)size:
21100
處理完成的圖片文件大小type:
image/png
處理完成的圖片類型
function(err){ alert(err.message); }
處理過程當中的錯誤或警告回調函數(僅ZxImageProcess實例化時有效)color: #f00
裁剪框確認按鈕樣式(僅ZxImageProcess實例化時有效)color: #f00
裁剪框取消按鈕樣式(僅ZxImageProcess實例化時有效)code | message說明 |
---|---|
1 | 初始化參數selector 不合法,非有效字符串或DOM元素 |
2 | 未獲取到body元素 |
3 | 未獲取到selector 對應DOM元素 |
4 | 未選中任何文件 |
5 | 調用方法reCrop() 時,未獲取到以前的文件數據 |
7 | 處理的file非圖片或視頻文件 |
8 | 讀取file文件數據出錯 |
11 | 預加載圖片數據出錯 |
12 | 文件太大,超過了最大限制 |
13 | 視頻截圖失敗,視頻資源可能不在同域中 |
21 | 圖片手動裁剪,設置預覽圖片src失敗 |
22 | 用戶取消了裁剪位置設置 |