當前位置:首頁 » 網頁前端 » 前端520表白相冊
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

前端520表白相冊

發布時間: 2023-08-01 14:31:16

前端使用input選擇圖片(多張)僅提供思路

1.首先前端用input調用android相冊,不能選擇多張圖,需要Android原生調用選擇圖片界面(非系統相冊),可以選擇PictureSelector框架。

在build.gradle中引入

// glide載入圖片

    implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.2.3'

//glide版本慎用,高版本會導致閃退,具體參考github上的文件

    implementation'com.github.bumptech.glide:glide:4.5.0'

2.在叢則webview中使用(可以直接調用相機setselectorPhoto)

3.選擇照帆鄭冊片後得到數據

4.最後轉化uri數組給前端(方法直接復制)

/*2.得到文件地址傳遞態宏前端*/

@SuppressWarnings("null")

@TargetApi(Build.VERSION_CODES.LOLLIPOP)

private void onActivityResultAboveL(int requestCode,int resultCode, Intent data) {

if (requestCode != PictureConfig.CHOOSE_REQUEST

            ||mUploadCallbackAboveL ==null) {

return;

}

Uri[] results =null;

Uri uriData =null;

ArrayList uridatas =new ArrayList<>();

if (resultCode == Activity.RESULT_OK) {

if (data ==null) {

results =new Uri[]{imageUri};

}else {

//  3。得到文件地址集合

            selectList = PictureSelector.obtainMultipleResult(data);

//  4。遍歷轉化uri,添加到uri集合

            for (int i =0; i

uriData = Uri.fromFile(new File(selectList.get(i).getPath()));

uridatas.add(i, uriData);

}

// 5.uri集合轉數組

            results = (Uri[]) uridatas.toArray(new Uri[selectList.size()]);

}

if (results !=null) {

//  6.上傳前端

            mUploadCallbackAboveL.onReceiveValue(results);

mUploadCallbackAboveL =null;

}else {

results =new Uri[]{imageUri};

mUploadCallbackAboveL.onReceiveValue(results);

mUploadCallbackAboveL =null;

}

}else {

mUploadCallbackAboveL.onReceiveValue(null);

}

mUploadCallbackAboveL =null;

}

Ⅱ html5或者JS怎樣調用手機攝像頭或者相冊

你給的網頁用的是 <input accept="image/*" type="file">,在IOS端點擊時會提示選擇圖片或相機,安卓端要看瀏覽器對這兩個屬性的優化,部分瀏覽器會直接跳轉到資源管理器,優化做得好的可以直接提示選擇相冊或相機。

Ⅲ 前端 h5手機端視頻錄制

ios系統要使用input 調用本地攝像,下面是調起錄像的。

<input type="file" name="video" id="video-input" accept="video#zs#" capture="user" onchange="videoChange()" />

Ⅳ 前端開發遇到的問題與怎麼解決的

最終解決方法:願化蝶飛向,註定是錯覺,前端開發遇題與解決只是,不要高估情的美。,對方留下各種各樣的印記。中間的小邪送出了。對每個人微笑。


Ⅳ H5前端調用攝像頭拍照

就需求本身而言,若是交給Native同事去蔽野開發,就是一個自定義相機的功能。可能要看怎麼阻止系統拍攝照片後不進手機系統相冊。
對於此需求若是前端來實現的話,也可以實現。大概就是調起攝像頭後,獲取當前畫面,然後截取當前幀的畫面,轉換成圖片保存。基本步驟如下:

思路問題不大,但是實際這樣開發時,還會有以下幾個問題:
1. 交互神禪體驗不好
window.navigator.mediaDevices.getUserMedia瀏覽器BOM api時,需要用戶手動點擊確認,允許打開攝像頭。游並塵交互體驗不太好。
2. 畫面畫質問題
前端實現本質上和截圖差不多,畫面質量沒有原生拍照效果好。
3. 瀏覽器API mediaDevices為undefined問題
window.navigator.mediaDevices在非以下三種情況下時,會為undefined,所以當為非https的域或者非本地localhost域,則都無法使用。
a. localhost 域
b. 開啟了 HTTPS 的域
c. 使用 file:/// 協議打開的本地文件
【若想在http下也可使用,怎麼辦???】
通過設置chrome瀏覽器,開啟相應flag可以實現。
a.. chrome瀏覽器輸入 chrome://flags/#unsafely-treat-insecure-origin-as-secure
b. 將該 flag 切換成 enable 狀態
c. 輸入框中填寫需要開啟的域名,譬如example.com,多個以逗號分隔

Ⅵ html5怎樣調用手機攝像頭或者相冊

用input type=file capture=camcorder調用攝像頭,會先讓你選擇拍照或者從相冊選取。

首先實現在瀏覽器中調用手機攝像頭,實現拍照功能並且把拍下的照片顯示在頁面並上傳到伺服器上,然後再在伺服器端進行分析。
首先實現在瀏覽器中調用攝像頭,當然用現在火的不行的html5,html5中的<video>標簽,並將從攝像頭獲得視頻作為這個標簽的輸入來源。實現拍照功能的html5代碼:

<article>
<style scoped>
video { transform: scaleX(-1); }
p { text-align: center; }
</style>
<h1>Snapshot Kiosk</h1>
<section id="splash">
<p id="errorMessage">Loading...</p>
</section>
<section id="app" hidden>
<p><video id="monitor" autoplay></video> <canvas id="photo"></canvas>
<p><input type=button value="📷" onclick="snapshot()">
</section>
<script>
navigator.getUserMedia({video:true}, gotStream, noStream);
var video = document.getElementById('monitor');
var canvas = document.getElementById('photo');
function gotStream(stream) {
video.src = URL.createObjectURL(stream);
video.onerror = function () {
stream.stop();
};
stream.onended = noStream;
video.onloadedmetadata = function () {
canvas.width = video.videoWidth;
canvas.height = video.videoHeight;
document.getElementById('splash').hidden = true;
document.getElementById('app').hidden = false;
};
}
function noStream() {
document.getElementById('errorMessage').textContent = 'No camera available.';
}
function snapshot() {
canvas.getContext('2d').drawImage(video, 0, 0);
}
</script>
</article>

經本人測試在android手機的opera瀏覽器瀏覽器下可以正常實現手機拍照功能。android手機下的google chrome瀏覽器還不行,自帶的瀏覽器也測試沒有通過。iphone手機的safari瀏覽器也是不支持的。
想了解更多關於html5調用手機攝像頭的內容可以點擊http://dev.w3.org/2011/webrtc/editor/getusermedia.html。
圖片的獲取:
下面我們要從Canvas獲取圖片數據,其核心思路是用canvas的toDataURL將Canvas的數據轉換為base64位編碼的PNG圖像,類似於「data:image/png;base64,xxxxx」的格式。
Html代碼
var imgData =canvas.toDataURL("image/png");
因為真正圖像數據是base64編碼逗號之後的部分,所以我們實際伺服器處理的圖像數據應該是這部分,我們可以用兩種辦法來獲取。
第一種:是在前端截取22位以後的字元串作為圖像數據,例如:
Html代碼
var data = imgData.substr(22);
如果要在上傳前獲取圖片的大小,可以使用:
Html代碼
var length = atob(data).length;// atob decodes a string of data which has been encoded using base-64 encoding
第二種:是在後端獲取傳輸的數據後用後台語言截取22位以後的字元串。例如PHP里
php代碼:
$image = base64_decode( str_replace('data:image/jpeg;base64,', '',$data);
圖片上傳:
在前端可以使用Ajax將上面獲得的圖片數據上傳到後台腳本。例如使用jQuery時:
js代碼
$.post('upload.php',{ 'data' : data } );
在後台我們用PHP腳本接收數據並存儲為圖片。
php代碼

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拍照上傳,並且你可以實現把Canvas的輸出轉換為圖片上傳的功能。這樣你可以使用Canvas為用戶提供圖片編輯,例如裁剪、上色、塗鴉的畫板功能,然後把用戶編輯完的圖片保存到伺服器上。

Ⅶ 關於前端響應式的問題

@media響應式媒介尺寸,這個是我以前看到收藏的 你得知道自己特定設備的尺寸來對應相應的@media媒體查詢;望採納!!!!

    一、定義斷點

    手機的屏幕比較小,寬度通常在600像素以下;PC的屏幕寬度,一般都在1000像素以上(目前主流寬度是1366×768)設置相應的min-width和max-width值

    所以響應式設計一般對600px下,1000px上針對各版本做@media細化。

    主要的有:

    1.第一個斷點群體就是針對於智能手機設置,他的寬度是小於480px(

    2.第二個斷點是高智能移動設備,比如說Ipads設備,他的寬度是小於768px(

    3.第三個斷點就是針對於大設備,比如說PC端,他的寬度是大於768px(>768px)

    為了完美一些,我們還可以添加另外幾種斷點:

    1.添加一個小於320px的斷點,針對於小型的移動設備;(

    2.還可以添加適用於平板設備的斷點,大於768px小於1024px(>768px 和

    3.最後還可以為超寬的桌面設置一個斷點,大於1024px(>1024px)

    綜合下來,設置斷點把握三個要點:

    1.滿足主要的斷點;

    2.有可能的話添加一些別的斷點;

    3.設置高於1024px的桌面斷點

    PC端一般常用尺寸:

    @mediascreenand(max-width:2059px){

    ol.dribbbles{

    max-width:1750px

    }

    }

    @mediascreenand(max-width:1809px){

    ol.dribbbles{

    max-width:1500px

    }

    }

    @mediascreenand(max-width:1559px){

    ol.dribbbles{

    max-width:1250px

    }

    }

    @mediascreenand(max-width:1309px){

    ol.dribbbles{

    max-width:1000px

    }

    }

    @mediascreenand(max-width:1059px){

    ol.dribbbles{

    max-width:750px

    }

    }

    @mediascreenand(max-width:809px){

    ol.dribbbles{

    max-width:500px

    }

    }

    @mediaonlyscreenand(max-width:870px){

    }

    @mediascreenand(max-width:520px){

    }

    /*各種手機的@media媒介*/

    參考:http://www.bluesdream.com/blog/jquery-css-fixed-toolbar-compatible-ie6.html

    @mediascreenand(max-height:475px){

    }

    /*此參數為iphone4的高度限制*/

    @mediascreenand(max-height:480px)and(max-width:320px){

    }

    /*此參數為iphone4-iphone5的高度限制*/

    @mediascreenand(min-height:481px)and(max-height:568px){

    }

    /*此參數為iphone5-iphone6的高度限制*/

    @mediascreenand(min-height:480px)and(max-height:667px){

    }

    /*聯想的尺寸*/

    @mediascreenand(min-height:668px)and(max-height:735px){

    }

    /*此參數為iphone6plus的高度*/

    @mediascreenand(min-height:736px){

    }

    /*此參數為紅米Note判斷*/

    @mediascreenand(min-height:737px){

    }

    或者適配iphone和ipad等設備

    @mediascreenand(min-width:321px)and(max-width:375px){html{font-size:11px}}

    @mediascreenand(min-width:376px)and(max-width:414px){html{font-size:12px}}

    @mediascreenand(min-width:415px)and(max-width:639px){html{font-size:15px}}

    @mediascreenand(min-width:640px)and(max-width:719px){html{font-size:20px}}

    @mediascreenand(min-width:720px)and(max-width:749px){html{font-size:22.5px}}

    @mediascreenand(min-width:750px)and(max-width:799px){html{font-size:23.5px}}

    @mediascreenand(min-width:800px){html{font-size:25px}}