国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > HTML > 正文

html5拍照功能實現代碼(htm5上傳文件)

2020-03-24 18:35:55
字體:
來源:轉載
供稿:網友
1、 視頻流HTML5 The Media Capture API提供了對攝像頭的可編程訪問,用戶可以直接用getUserMedia獲得攝像頭提供的視頻流。我們需要做的是添加一個HTML5的Video標簽,并將從攝像頭獲得視頻作為這個標簽的輸入來源(請注意目前僅Chrome和Opera支持getUserMedia)。
復制代碼代碼如下:
videoidvideoid= video autoplay= " /video
script
varvideo_element=document.getElementById( video );
if(navigator.getUserMedia){//operashoulduseopera.getUserMedianow
navigator.getUserMedia( video ,success,error);
}
functionsuccess(stream){
video_element.src=stream;
}
/script
視頻流2、 拍照拍照功能,我們采用HTML5的Canvas實時捕獲Video標簽的內容,Video元素能作為Canvas圖像的輸入,這一點很棒。主要代碼如下:
復制代碼代碼如下:
JavaScript Code復制內容到剪貼板
var canvas=document.createElement( canvas );
var ctx=canvas.getContext( 2d );
var cw=vw;
var ch=vh;
ctx.fill >ctx.fillRect(0,0,cw,ch);
ctx.drawImage(video_element,0,0,vvw,vvh,0,0,vw,vh);
document.body.append(canvas);
3、 圖片獲取下面我們要從Canvas獲取圖片數據,其核心思路是用canvas的toDataURL將Canvas的數據轉換為base64位編碼的PNG圖像,類似于 data:image/png;base64,xxxxx 的格式。
復制代碼代碼如下:
var imgData=canvas.toDataURL( image/png );
因為真正圖像數據是base64編碼逗號之后的部分,所以我們實際服務器處理的圖像數據應該是這部分,我們可以用兩種辦法來獲取。第一種:是在前端截取22位以后的字符串作為圖像數據,例如:
復制代碼代碼如下:
var data=imgData.substr(22);
如果要在上傳前獲取圖片的大小,可以使用:
復制代碼代碼如下:
var length=atob(data).length;//atobdecodesastringofdatawhichhasbeenencodedusingbase-64encoding
第二種:是在后端獲取傳輸的數據后用后臺語言截取22位以后的字符串。例如PHP里:
復制代碼代碼如下:
$image=base64_decode(str_replace( data:image/jpeg;base64, , ,$data);
4、 圖片上傳在前端可以使用html' target='_blank'>Ajax將上面獲得的圖片數據上傳到后臺腳本。例如使用jQuery時:
復制代碼代碼如下:
$.post( upload.php ,{ data :data});

在后臺我們用PHP腳本接收數據并存儲為圖片。

復制代碼代碼如下:
functionconvert_data($data){
$image=base64_decode(str_replace( data:image/jpeg;base64, , ,$data);
save_to_file($image);
}
functionsave_to_file($image){
$fp=fopen($filename, w');
fwrite($fp,$image);
fclose($fp);
}
請注意,以上的解決方案不僅能用于Web App拍照上傳,并且你可以實現把Canvas的輸出轉換為圖片上傳的功能。這樣你可以使用Canvas為用戶提供圖片編輯,例如裁剪、上色、涂鴉的畫板功能,然后把用戶編輯完的圖片保存到服務器上。html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岱山县| 桓台县| 广丰县| 三明市| 桐庐县| 浮山县| 临汾市| 孝义市| 云梦县| 同心县| 惠州市| 千阳县| 长春市| 将乐县| 商都县| 扬州市| 淮滨县| 衡东县| 电白县| 菏泽市| 林周县| 泰和县| 安远县| 巴里| 平度市| 图们市| 页游| 绥中县| 白沙| 临颍县| 宁夏| 噶尔县| 洛浦县| 葵青区| 尼木县| 安庆市| 邛崃市| 即墨市| 宁阳县| 镶黄旗| 庆安县|