真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

html5照片,HTML5圖片

html5 如何調(diào)用手機(jī)相冊(cè),進(jìn)行上傳照片

cordova

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序定制開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了樅陽(yáng)免費(fèi)建站歡迎大家使用!

用代碼調(diào)用硬件,這里面有個(gè)方法可以調(diào)用手機(jī)的攝像頭,里面我記得還有個(gè)功能查看手機(jī)相冊(cè)

HTML5里如何把4個(gè)照片放一個(gè)盒子里,分別呈左右上下?

最簡(jiǎn)單的可以用position定位,盒子的是relative,照片的是absolute,然后分別調(diào)整圖片的top,left,bottom,right,調(diào)到你覺(jué)得合適的位置。

怎么用html5或js調(diào)用手機(jī)的攝像頭拍照上傳以及調(diào)用手機(jī)相冊(cè)選取照片

1、實(shí)現(xiàn)頭的方法代碼。

2、編寫(xiě)CSS樣式的方法代碼。

3、html上傳代碼。

4、JS處理方法代碼。

5、測(cè)試結(jié)果如下。

注意事項(xiàng):

JavaScript是一種網(wǎng)絡(luò)腳本語(yǔ)言,在web應(yīng)用開(kāi)發(fā)中得到了廣泛的應(yīng)用,它經(jīng)常被用來(lái)為網(wǎng)頁(yè)添加各種動(dòng)態(tài)功能,為用戶提供更加流暢美觀的瀏覽效果,通常JavaScript腳本被嵌入到HTML中來(lái)實(shí)現(xiàn)自己的功能。

如何使用HTML5實(shí)現(xiàn)利用攝像頭拍照上傳功能

HTML5技術(shù)支持WebApp在手機(jī)上拍照,顯示在頁(yè)面上并上傳到服務(wù)器。這是手機(jī)微博應(yīng)用中常見(jiàn)的功能,當(dāng)然你也可以在其它類型應(yīng)用中適當(dāng)使用此技術(shù)。

1、 視頻流

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

video id=”video” autoplay=”"/video

script

var video_element=document.getElementById(‘video’);

if(navigator.getUserMedia){ // opera應(yīng)使用opera.getUserMedianow

navigator.getUserMedia(‘video’,success,error); //success是回調(diào)函數(shù),當(dāng)然你也可以直接在此寫(xiě)一個(gè)匿名函數(shù)

}

function success(stream){

video_element.src=stream;

}

/script

此時(shí),video 標(biāo)簽內(nèi)將顯示動(dòng)態(tài)的攝像視頻流。下面需要進(jìn)行拍照了。

2、 拍照

拍照是采用HTML5的Canvas功能,實(shí)時(shí)捕獲Video標(biāo)簽的內(nèi)容,因?yàn)閂ideo元素可以作為Canvas圖像的輸入,所以這一點(diǎn)很好實(shí)現(xiàn)。主要代碼如下:

var canvas=document.createElement(‘canvas’); //動(dòng)態(tài)創(chuàng)建畫(huà)布對(duì)象

var ctx=canvas.getContext(’2d’);

var cw=vw,ch=vh;

ctx.fillStyle=”#ffffff”;

ctx.fillRect(0,0,cw,ch);

ctx.drawImage(video_element,0,0,cw,ch,0,0,vw,vh); //將video對(duì)象內(nèi)指定的區(qū)域捕捉繪制到畫(huà)布上指定的區(qū)域,可進(jìn)行不等大不等位的繪制。

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

這樣,imgData變量就存儲(chǔ)了一長(zhǎng)串的字符數(shù)據(jù)內(nèi)容,表示的就是一個(gè)PNG圖像的base64編碼。因?yàn)檎嬲膱D像數(shù)據(jù)是base64編碼逗號(hào)之后的部分,所以要讓實(shí)際服務(wù)器接收的圖像數(shù)據(jù)應(yīng)該是這部分,我們可以用兩種辦法來(lái)獲取。

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

var data=imgData.substr(22);

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

var length=atob(data).length; //atob 可解碼用base-64解碼的字串

第二種:是在后端獲取傳輸?shù)臄?shù)據(jù)后用后臺(tái)語(yǔ)言截取22位以后的字符串(也就是在前臺(tái)略過(guò)上面這步直接上傳)。例如PHP里:

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

4、 圖片上傳

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

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

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

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拍照上傳,也可以通過(guò)Canvas的編輯功能函數(shù)提供圖片編輯,例如裁剪、上色、涂鴉、圈點(diǎn)等功能,然后把用戶編輯完的圖片上傳保存到服務(wù)器上。

在還在不斷補(bǔ)充修正的HTML5的驅(qū)動(dòng)下,Web App與Native App之間的距離將越來(lái)越小。在可預(yù)見(jiàn)的不遠(yuǎn)的未來(lái),越來(lái)越多老的和新的開(kāi)發(fā)項(xiàng)目必將會(huì)遷移到WEB應(yīng)用上來(lái)。

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

(為便于閱讀,對(duì)原文進(jìn)行了不失原意的適當(dāng)修改,包括代碼中一些錯(cuò)誤的重復(fù),并作了注釋)

HTML5技術(shù)支持WebApp在手機(jī)上拍照,顯示在頁(yè)面上并上傳到服務(wù)器。這是手機(jī)微博應(yīng)用中常見(jiàn)的功能,當(dāng)然你也可以在其它類型應(yīng)用中適當(dāng)使用此技術(shù)。

1、 視頻流

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

video id=”video” autoplay=”"/video

script

var video_element=document.getElementById(‘video’);

if(navigator.getUserMedia){ // opera應(yīng)使用opera.getUserMedianow

navigator.getUserMedia(‘video’,success,error); //success是回調(diào)函數(shù),當(dāng)然你也可以直接在此寫(xiě)一個(gè)匿名函數(shù)

}

function success(stream){

video_element.src=stream;

}

/script

此時(shí),video 標(biāo)簽內(nèi)將顯示動(dòng)態(tài)的攝像視頻流。下面需要進(jìn)行拍照了。

2、 拍照

拍照是采用HTML5的Canvas功能,實(shí)時(shí)捕獲Video標(biāo)簽的內(nèi)容,因?yàn)閂ideo元素可以作為Canvas圖像的輸入,所以這一點(diǎn)很好實(shí)現(xiàn)。主要代碼如下:

var canvas=document.createElement(‘canvas’); //動(dòng)態(tài)創(chuàng)建畫(huà)布對(duì)象

var ctx=canvas.getContext(’2d’);

var cw=vw,ch=vh;

ctx.fillStyle=”#ffffff”;

ctx.fillRect(0,0,cw,ch);

ctx.drawImage(video_element,0,0,cw,ch,0,0,vw,vh); //將video對(duì)象內(nèi)指定的區(qū)域捕捉繪制到畫(huà)布上指定的區(qū)域,可進(jìn)行不等大不等位的繪制。

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

這樣,imgData變量就存儲(chǔ)了一長(zhǎng)串的字符數(shù)據(jù)內(nèi)容,表示的就是一個(gè)PNG圖像的base64編碼。因?yàn)檎嬲膱D像數(shù)據(jù)是base64編碼逗號(hào)之后的部分,所以要讓實(shí)際服務(wù)器接收的圖像數(shù)據(jù)應(yīng)該是這部分,我們可以用兩種辦法來(lái)獲取。

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

var data=imgData.substr(22);

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

var length=atob(data).length; //atob 可解碼用base-64解碼的字串

第二種:是在后端獲取傳輸?shù)臄?shù)據(jù)后用后臺(tái)語(yǔ)言截取22位以后的字符串(也就是在前臺(tái)略過(guò)上面這步直接上傳)。例如PHP里:

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

4、 圖片上傳

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

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

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

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拍照上傳,也可以通過(guò)Canvas的編輯功能函數(shù)提供圖片編輯,例如裁剪、上色、涂鴉、圈點(diǎn)等功能,然后把用戶編輯完的圖片上傳保存到服務(wù)器上。

在還在不斷補(bǔ)充修正的HTML5的驅(qū)動(dòng)下,Web App與Native App之間的距離將越來(lái)越小。在可預(yù)見(jiàn)的不遠(yuǎn)的未來(lái),越來(lái)越多老的和新的開(kāi)發(fā)項(xiàng)目必將會(huì)遷移到WEB應(yīng)用上來(lái)。

如何用HTML5實(shí)現(xiàn)拍照功能

//簡(jiǎn)單實(shí)例?用html5?拍攝照片?平在照片上實(shí)時(shí)標(biāo)注GPS?并上傳到服務(wù)器?存入數(shù)據(jù)庫(kù)

//需要?gumwrapper.min.js?支持

function?opencam(){

//alert?("opencam");

if?(cam_is_open==0){

var?video_html='video?id="myVideo"?width="320"?height="240"?/video';

$("#web_cam").html(video_html);//動(dòng)態(tài)加入一個(gè)video元素

$("#web_cam").show();????

function?showSuccess(video)?{

//?alert('Hey,?it?works!?Dimensions:?'?+?video.videoWidth?+?'?x?'?+?video.videoHeight);

}

function?showError(error)?{

alert('Oops:?'?+?error.message);

}

gum?=?new?GumWrapper({video:?'myVideo'},?showSuccess,?showError);

gum.play();

cam_is_open=1;

$("#opencam_btn").attr("value","關(guān)閉鏡頭");

}else{

location.reload();

}????

}

function?short_cam(){

$("#photo_div").show();

$("#msg_tips").text("正在生成圖片");

var?now?=?new?Date();

var?cur_time=(now.getHours()10?"0":"")+now.getHours()+":";

cur_time+=(now.getMinutes()10?"0":"")+now.getMinutes()+":";

cur_time+=(now.getSeconds()10?"0":"")+now.getSeconds();

? send_time=now.getFullYear()+"-"+((now.getMonth()+1)10?"0":"")+(now.getMonth()+1)+"-"+(now.getDate()10?"0":"")+now.getDate();

send_time+="?"+cur_time;

send_lon=$("#cur_lon").text();

??send_lat=$("#cur_lat").text();

var?video_cam=document.getElementById("myVideo");

var?canvasobj=document.getElementById("photo_canvas");

var?ct1=canvasobj.getContext('2d');

ct1.fillStyle="#ffffff";

ct1.fillRect(0,0,640,480);

ct1.drawImage(video_cam,0,0);

ct1.font="25px?Georgia";

ct1.fillStyle="#ff4444";

ct1.fillText(send_time,10,50);

ct1.fillText("緯度:"+?send_lat,10,80);

ct1.fillText("經(jīng)度:"+?send_lon,10,110);

var?img_data=canvasobj.toDataURL("mage/png");

var?imgobj=document.getElementById("cur_img");

imgobj.src=img_data;

$("#web_cam").hide();

$("#msg_tips").text("生成圖片完成");

}

?? function?reshort_photo(){

$("#photo_div").hide();

$("#web_cam").show();

}

function?send_photo()?{

$("#msg_tips").text("圖片上傳中");

?var? imgobj=document.getElementById("cur_img").src;

?//alert?(imgobj);

?$.ajax({

? type:"post",

url:"updategpsp.php",

async:true,

dataType:"text",

data:{img_data:imgobj,send_time:send_time,

rel_lat:rel_lat,rel_lon:rel_lon,

send_lat:send_lat,send_lon:send_lon},

success:?function(msg){

if?(msg=1){

$("#msg_tips").text("圖片上傳完畢");

alert("上傳數(shù)據(jù)成功");

reshort_photo();

}else{

alert("上傳數(shù)據(jù)失??!?請(qǐng)重新傳送");

alert(msg);

}

}

?});

}

html文件

!DOCTYPE?html

html?lang="en"

head

meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/

meta?name="viewport"?content="width=device-width,?user-scalable=yes"

titlewebcap?Test/title

style

body,?html,#main_div{width:?100%;height:?100%;overflow:?hidden;margin:0;}

#float_div{position:?absolute;top:?5px;?left:25px?border-right:?activeborder?1px?solid;

?border-top:?activeborder?1px?solid;?border-left:?activeborder?1px?solid;

?border-bottom:?activeborder?1px?solid;?z-index:9999,width:?300px;height:?auto;?

?overflow:?hidden}

#web_cam{width:320px;?height:240px;?}

#ctrl_bar_div{width:auto;?height:auto;

border:1px?dotted?blue;?margin:0px;

padding:3px;}

.span1{background-color:#afa;?}

#cur_img{width:320px;?height:240px;}

#msg_tips{color:red;background-color:#afa;}

#allmap?{width:?auto;height:?100%;overflow:?hidden;margin:0;font-family:"微軟雅黑";}

/style

script?type="text/javascript"?src="../js/jquery.min.js"/script

script?src="./js/gumwrapper.min.js"/script

script?src="../js/Float_math.js"/script

script?type="text/javascript"?src=";ak=自己申請(qǐng)的授權(quán)碼"/script

script?src="./js/testhtml5.js"/script

script?type="text/javascript"?

var?gps_star=0;

var?lat_offset=1.0001390158;

var?lon_offset=1.0001029614;

var?bm;

var?old_Position;

var?cur_marker;

var?prive_position;

var?cam_is_open=0;?//記錄鏡頭的打開(kāi)狀態(tài)?,?默認(rèn)為沒(méi)有開(kāi)?狀態(tài)=0

var?gum;

var?send_time="";

var?send_lat="";

var?send_lon="";

var?rel_lat="";

var?rel_lon="";

var?cur_offset_zt=0;

//alert?(cur_marker);

$(document).ready(function()?{

drawbaiduMap();???

bm.centerAndZoom("東莞",18);?

});

/script

/head

body

div?id="main_div"

???div?id="allmap"/div

/div

div?id="float_div"

div?id="ctrl_bar_div"

span?class="span1"???緯度:/span

span?class="span1"?id="cur_lat"?000.000000?/span

span??class="span1"??經(jīng)度:/span

span?class="span1"?id="cur_lon"?000.000000?/span

input?id="is_ver_off_set"?type="button"?onclick="ver_offset_zt()"?value="校正"?/

br

input?id="gps_btn"?type="button"?value="開(kāi)\關(guān)GPS"?onclick="getLocation()"/

input?id="opencam_btn"?type="button"?value="打開(kāi)鏡頭"??onclick="opencam()"/

span??id="msg_tips"GPS狀態(tài):關(guān)閉span

/div

div?id="web_cam"??style="display:none"?onclick="set_timeout_short()"?

/div

div?id="photo_div"?style="display:none"

div?id="send_btn_div"

input?id="res_hort_btn"?type="button"?value="重拍"?onclick="reshort_photo()"/

input?id="send_photo_btn"?type="button"?value="發(fā)送"?onclick="send_photo()"/

input?id="canc_btn"?type="button"?value="取消"?onclick="can_photo()"/

/div

div?id="canvas_div"?style="display:none"

canvas?id="photo_canvas"?width="640"?height="480"??

"不支持"

/canvas

/div

div?id="img_div"

img?id="cur_img"/

/div

/div

/div

/body

/html


本文題目:html5照片,HTML5圖片
分享網(wǎng)址:http://weahome.cn/article/dsddigo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部