日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

html5拍照上传 java_如何使用HTML5实现拍照上传应用

發(fā)布時間:2025/3/21 HTML 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html5拍照上传 java_如何使用HTML5实现拍照上传应用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在HTML5規(guī)范的支持下,WebApp在手機(jī)上拍照已經(jīng)成為可能。在下面,我將講解Web App如何用手機(jī)進(jìn)行拍照,顯示在頁面上并上傳到服務(wù)器。

1、? 視頻流

HTML5 The Media Capture API提供了對攝像頭的可編程訪問,用戶可以直接用getUserMedia獲得攝像頭提供的視頻流。我們需要做的是添加一個HTML5的Video標(biāo)簽,并將從攝像頭獲得視頻作為這個標(biāo)簽的輸入來源(請注意目前僅Chrome和Opera支持getUserMedia。補(bǔ)充:請使用Opera支持HTML5的新版本,如果是Chrome,版本需為Chrome 18.0.1008+,并使用about:flags來開啟WebRTC,請看下圖)。

var video_element = document.getElementById('video');

if (navigator.getUserMedia) { // opera should use opera.getUserMedia now, chrome use webkitGetUserMedia

navigator.getUserMedia('video',success, error);

}

function success(stream) {

video_element.src =stream;

}

視頻流2、? 拍照

拍照功能,我們采用HTML5的Canvas實時捕獲Video標(biāo)簽的內(nèi)容,Video元素能作為Canvas圖像的輸入,這一點很棒。主要代碼如下:

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”的格式。

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

因為真正圖像數(shù)據(jù)是base64編碼逗號之后的部分,所以我們實際服務(wù)器處理的圖像數(shù)據(jù)應(yīng)該是這部分,我們可以用兩種辦法來獲取。

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

var data = imgData.substr(22);

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

var length = atob(data).length;// atob decodes a string of data which has been encoded using base-64 encoding

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

$image = base64_decode( str_replace('data:image/jpeg;base64,', '',$data);

4、? 圖片上傳

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

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

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

function convert_data($data){

$image = base64_decode( str_replace('data:image/jpeg;base64,', '',$data);

save_to_file($image);

}

function save_to_file($image){

$fp = fopen($filename, 'w');

fwrite($fp, $image);

fclose($fp);

}

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

Canvas涂鴉功能

在HTML5的驅(qū)動下,Web App與Native App之間是否還有不可逾越的鴻溝?我將會在3月23日百度開發(fā)者大會上現(xiàn)場來解答這個問題,敬請期待。

相關(guān)規(guī)范:

相關(guān)The Media Capture示例:

原創(chuàng)文章,轉(zhuǎn)載請標(biāo)明出處:蔣宇捷的專欄

總結(jié)

以上是生活随笔為你收集整理的html5拍照上传 java_如何使用HTML5实现拍照上传应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产高清一 | 国产精品色在线网站 | 欧美呦呦 | 天天射影院 | 日本黄色片 | 色婷婷www | 强行糟蹋人妻hd中文 | 韩日午夜在线资源一区二区 | 一本—道久久a久久精品蜜桃 | 日韩免费网站 | 黄频在线 | 黄色片地址 | 国产丰满农村老妇女乱 | 久久丁香 | 成人黄色在线播放 | 人妖一级片 | 国产精品aⅴ | 国产主播在线一区 | 中文字幕在线观看av | 毛片毛片毛片毛片毛片毛片毛片毛片 | 激情av在线播放 | 国产无遮挡又黄又爽又色视频 | 日本成人动漫在线观看 | 成年人深夜福利 | 国产亚洲精品美女 | 日韩精品电影 | 一级免费黄色大片 | 日韩色图在线观看 | 亚洲精品久久久久中文字幕二区 | 大胸美女被爆操 | 日韩精品一区二区三区久久 | 亚洲视频精品在线 | 人人玩人人弄 | 日韩国产欧美 | 久久黄色一级片 | 熟女少妇a性色生活片毛片 亚洲伊人成人网 | 久久成人午夜 | 欧美大片视频在线观看 | 国产精品美女久久久久av爽 | 国产精品久久久久久一区 | 国产激情精品一区二区三区 | 国产成人无码aa精品一区 | 香蕉久久网| 日本午夜一级 | 800av免费在线观看 | 综合精品视频 | 免费av网站在线播放 | 成人av网站大全 | 国产色视频 | 亚洲黄v| 拔萝卜91| 阿娇全套94张未删图久久 | 在线观看国产三级 | 久久久久久国产精品免费 | 欧美两根一起进3p做受视频 | 久久艹在线视频 | 久久一热 | 少妇乱淫| 一级片大片 | 日本性生活一级片 | 国产精品视频网站 | 久久久久久香蕉 | 日日夜夜狠狠爱 | 亚洲免费色视频 | 日本激情免费 | 99re这里只有精品在线观看 | 91精品国产色综合久久不卡电影 | 成人av视屏| 成人在线免费小视频 | 经典三级在线视频 | 俄罗斯精品一区二区三区 | 国产免费叼嘿网站免费 | 干极品美女 | 午夜激情毛片 | 性高湖久久久久久久久aaaaa | 美女伦理水蜜桃4 | 一本毛片| 精品国产a线一区二区三区东京热 | 成人毛片av | 国产专区一区二区三区 | 最近日韩免费视频 | 制服丝袜第二页 | 97精品久久 | 99精品久久99久久久久 | 国产欧美激情视频 | 国产精品视频一区二区三区在3 | 精品久久久久久久久久久久久 | 国产成人欧美 | 久久不卡 | 天海翼视频在线观看 | 欧美性xxxx | 久久婷婷五月综合 | 日韩欧美国产一区二区 | 男女av网站 | 欧美性视频一区二区三区 | 精品国产网 | 嫩草视频在线观看视频 | 成人91免费视频 | 看av的网址 |