校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > html5拍照功能實(shí)現(xiàn)代碼(htm5上傳文件)

html5拍照功能實(shí)現(xiàn)代碼(htm5上傳文件)

熱門標(biāo)簽:臨海地圖標(biāo)注app 四川移動(dòng)電銷外呼客戶管理系統(tǒng) 怎么做百度地圖標(biāo)注 咸陽(yáng)穩(wěn)定外呼系統(tǒng)軟件 百度地圖標(biāo)注為什么總是封號(hào) 智能芯電話機(jī)器人 小朱地圖標(biāo)注 400開(kāi)頭的電話好申請(qǐng)不 地圖標(biāo)注柱狀圖

1、 視頻流

HTML5 The Media Capture API提供了對(duì)攝像頭的可編程訪問(wèn),用戶可以直接用getUserMedia獲得攝像頭提供的視頻流。我們需要做的是添加一個(gè)HTML5的Video標(biāo)簽,并將從攝像頭獲得視頻作為這個(gè)標(biāo)簽的輸入來(lái)源(請(qǐng)注意目前僅Chrome和Opera支持getUserMedia)。


復(fù)制代碼
代碼如下:

<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實(shí)時(shí)捕獲Video標(biāo)簽的內(nèi)容,Video元素能作為Canvas圖像的輸入,這一點(diǎn)很棒。主要代碼如下:

 

復(fù)制代碼
代碼如下:

JavaScript Code復(fù)制內(nèi)容到剪貼板
var canvas=document.createElement(‘canvas’);
var ctx=canvas.getContext(’2d’);
var cw=vw;
var ch=vh;
ctx.fillStyle=”#ffffff”;
ctx.fillRect(0,0,cw,ch);
ctx.drawImage(video_element,0,0,vvw,vvh,0,0,vw,vh);
document.body.append(canvas);

3、 圖片獲取

下面我們要從Canvas獲取圖片數(shù)據(jù),其核心思路是用canvas的toDataURL將Canvas的數(shù)據(jù)轉(zhuǎn)換為base64位編碼的PNG圖像,類似于“data:image/png;base64,xxxxx”的格式。


復(fù)制代碼
代碼如下:

var imgData=canvas.toDataURL(“image/png”);

因?yàn)檎嬲龍D像數(shù)據(jù)是base64編碼逗號(hào)之后的部分,所以我們實(shí)際服務(wù)器處理的圖像數(shù)據(jù)應(yīng)該是這部分,我們可以用兩種辦法來(lái)獲取。

第一種:是在前端截取22位以后的字符串作為圖像數(shù)據(jù),例如:


復(fù)制代碼
代碼如下:

var data=imgData.substr(22);

如果要在上傳前獲取圖片的大小,可以使用:

 

復(fù)制代碼
代碼如下:

var length=atob(data).length;//atobdecodesastringofdatawhichhasbeenencodedusingbase-64encoding

第二種:是在后端獲取傳輸?shù)臄?shù)據(jù)后用后臺(tái)語(yǔ)言截取22位以后的字符串。例如PHP里:


復(fù)制代碼
代碼如下:

$image=base64_decode(str_replace(‘data:image/jpeg;base64,’,”,$data);

4、 圖片上傳

在前端可以使用Ajax將上面獲得的圖片數(shù)據(jù)上傳到后臺(tái)腳本。例如使用jQuery時(shí):


復(fù)制代碼
代碼如下:

$.post(‘upload.php’,{‘data’:data});

 在后臺(tái)我們用PHP腳本接收數(shù)據(jù)并存儲(chǔ)為圖片。

復(fù)制代碼
代碼如下:

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);
}

請(qǐng)注意,以上的解決方案不僅能用于Web App拍照上傳,并且你可以實(shí)現(xiàn)把Canvas的輸出轉(zhuǎn)換為圖片上傳的功能。這樣你可以使用Canvas為用戶提供圖片編輯,例如裁剪、上色、涂鴉的畫板功能,然后把用戶編輯完的圖片保存到服務(wù)器上。

標(biāo)簽:南平 黃石 公主嶺 陜西 平頂山 山南 黃石

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《html5拍照功能實(shí)現(xiàn)代碼(htm5上傳文件)》,本文關(guān)鍵詞  html5,拍照,功能,實(shí)現(xiàn),代碼,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《html5拍照功能實(shí)現(xiàn)代碼(htm5上傳文件)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于html5拍照功能實(shí)現(xiàn)代碼(htm5上傳文件)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 吕梁市| 宕昌县| 潜山县| 甘德县| 宁阳县| 金昌市| 纳雍县| 乌苏市| 仪陇县| 永修县| 彭水| 上虞市| 永康市| 旬邑县| 黔西县| 灵丘县| 铜陵市| 色达县| 广南县| 揭东县| 浮山县| 诸暨市| 张家界市| 栖霞市| 磐石市| 鄂州市| 平凉市| 三明市| 洞头县| 荔波县| 丹巴县| 惠州市| 镇沅| 张家口市| 宜川县| 泉州市| 方正县| 龙岩市| 敖汉旗| 丰原市| 沁水县|