1. 程式人生 > >H5實現拍照並上傳

H5實現拍照並上傳

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no" />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />

    <meta content="telephone=no" name="format-detection" />
    <title>測試</title>
</head>
<body>
<video id="video" width="320" height="240" autoplay></video>
<button id="snap">拍攝</button>
<canvas id="canvas" width="320" height="240"></canvas>
<script>

    window.addEventListener("DOMContentLoaded", function() {
        var canvas = document.getElementById("canvas"),//呼叫canvas介面
                context = canvas.getContext("2d"),
                video = document.getElementById("video"),
                videoObj = { "video": true },
                errBack = function(error) {//錯誤處理

                    console.log("Video capture error: ", error.code);
                };
        if(navigator.getUserMedia) {//呼叫html5拍攝介面
            navigator.getUserMedia(videoObj, function(stream) {
                video.src = stream;//攝像機屬於視訊流,所以當然要輸出到html5的video標籤中了
                video.play();//開始播放
            }, errBack);
        } else if(navigator.webkitGetUserMedia) { //WebKit核心呼叫html5拍攝介面
            navigator.webkitGetUserMedia(videoObj, function(stream){
                video.src = window.webkitURL.createObjectURL(stream);//同上
                video.play();//同上
            }, errBack);
        }
        else if(navigator.mozGetUserMedia) { //moz核心呼叫html5拍攝介面
            navigator.mozGetUserMedia(videoObj, function(stream){
                video.src = window.URL.createObjectURL(stream);//同上
                video.play();//同上
            }, errBack);
        }
    }, false);

    document.getElementById("snap")
            .addEventListener("click", function() {//獲取拍照按鈕繫結事件
                var canvans = document.getElementById("canvas"),//呼叫canvas介面
                        context = canvas.getContext("2d");
                context.drawImage(video, 0, 0, 640, 480);//呼叫canvas介面的drawImage方法繪製當前video標籤中的靜態圖片,其實就是截圖

                var imgData = canvans.toDataURL();//獲取圖片的base64格式的資料
                //這裡就可以寫上傳伺服器程式碼了
            });
</script>
</body>
</html>

相關推薦

H5實現拍照

<!DOCTYPE HTML><html><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, in

前端H5實現多圖片預覽

多檔案上傳並預覽 利用input 的type='file" 可以實現檔案的上傳,不過只支援單個檔案上傳。只有給input加上multiple屬性才能實現多個檔案同時上傳。 好了,下面我們來實現一個簡單的多圖片上傳並預覽的例子 <div class="input-file-box

安卓實現拍照圖片以及剪下圖片

效果圖: 總結一下專案實現的選擇圖片、拍照、以及剪下圖片,再加一下圖片壓縮,上傳到伺服器等功能 網上有好多關於圖片上傳、拍照的方法,我這只是自己專案的一種方式,之前部落格也是總結過圖集上傳,裡面也包含圖片上傳,拍照的相關程式碼,在這我單獨拿出來總結一下,還有關於呼叫系統

Android 呼叫本地相機拍照圖片

1、呼叫本地相機拍照並上傳圖片 Intent cameraIntent = new Intent( "android.media.action.IMAGE_CAPTURE"); startActivityForResult(cameraIntent, m

H5實現多圖與預覽,圖片壓縮

 H5多圖上傳,並實現壓縮(可根據實際情況選擇對多大的圖片進行壓縮,本例為大於512KB的進行壓縮)和預覽 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT

H5實現拍照及相簿圖片

最近在做一個H5的小型電商專案,其中有一個是現金刷卡之後需要上傳憑證圖片的,因此也就需要在H5中實現可以上傳圖片。 我們都知道,input標籤的type為file是可以上傳圖片的,本來想著這麼簡單,有啥難的,可是到後來這樣寫完,看效果的時候,缺發現這個東西它是有相容問題的,IOS和An

python基礎----socketserver多實現、FTP

span end 沒有 res hasattr ret net packet except 一、socketserver多並發 基於tcp的套接字,關

(轉)linux自動備份oracle數據庫到備份服務器 腳本實現

oralce 查看 cal .com 中間 term star 開始 library 實際項目中,備份數據是不可缺少的一步,完成數據的自動備份減少個人的工作量,是我們的目標。之前很少寫過腳本,不過這些簡單的操作還是可以做到的!話不多說,開始具體介紹:oracle版本:10.

WebForm實現文件預覽

image form ict itl lec nbsp style object 是否 實現效果: 頁面代碼: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inh

安卓獲取軟硬件信息給server(Socket實現)

獲取 acad soc 實現 環境 theme info fcm ntop 首先,項目結構如圖--A:分為client部分CheckInfo和server端CheckInfo_Server。CheckInfo獲取手機信息(Mac,Cpu,內存,已安裝軟件信息等)並上

微信端調取相冊和攝像頭,實現圖片到本地服務器

配置 epic 替換 pan source 工具 alert 調試 family 在微信公眾號網頁開發時,遇到了圖片上傳的問題,查看了微信的開發者文檔,裏面的資料比較全。接著我們看一下整個的流程 1、config權限配置 $.ajax({ url:‘wx_getC

HTML5 file API加canvas實現圖片前端JS壓縮 (轉載)

www. 手機 回調 pre lan 瀏覽器中 rdp 效果 二進制 一、圖片上傳前端壓縮的現實意義 對於大尺寸圖片的上傳,在前端進行壓縮除了省流量外,最大的意義是極大的提高了用戶體驗。 這種體驗包括兩方面: 由於上傳圖片尺寸比較小,因此上傳速度會比較快,交互會更

(轉)Android學習-使用Async-Http實現圖片壓縮功能

activit 一次 make down cte hot for lfw ram (轉)Android學習-使用Async-Http實現圖片壓縮並上傳功能 文章轉載自:作者:RyaneLee鏈接:http://www.jianshu.com/p/940fc7ba39e1

前臺Jcrop配合後臺Graphics實現圖片裁剪

模式 ubi ini gin pre log 清空 圖像 ets Jcrop:一個功能強大的圖片裁剪插件 版本:Jcrop v0.9.12 VS版本:vs2015 下載地址:http://code.ciaoca.com/jquery/jcrop/version/Jcrop-

【jQuery插件】使用cropper實現簡單的頭像裁剪

contex 高亮 leo 通過 時也 可能 現在 substring ica 插件介紹 這是一個我在寫以前的項目的途中發現的一個國人寫的jQuery圖像裁剪插件,當時想實現用戶資料的頭像上傳功能,並且能夠預覽圖片,和對圖片進行簡單的裁剪、旋轉,花了不少時間才看到了這個插件

如何有效實現前端壓縮圖片功能

res 滿足 utf boot ade 賦值 als 多次 and   隨著現在手機的像素越來越高,很多照片動輒幾兆甚至十幾兆,上傳後在服務器端壓縮已經越來越不能滿足當今的需求。這對於許多技術人員來說,處理起來這樣的問題往往不知道該怎麽下手,那麽下面就跟大家講解一下如何在前

python 實現腳本遠程服務執行腳本

初學者大神勿噴 python 實現腳本上傳遠程服務並執行腳本 #!/usr/bin/env python #coding:utf-8 import paramiko,os,commands from scp import SCPClient def sshclient_execmd(

簡單實現前端選擇圖片顯示略縮圖

效果 實現程式碼 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>修改資訊</title> <sc

Mac ssh連線遠端伺服器,實現檔案的和下載

使用scp命令實現上傳下載 1、從伺服器上下載檔案 scp [email protected]:/path/filename /Users/mac/Desktop(本地目錄) 例如:scp [email protected]:/root/test.txt /Users/mac/Desk

IntelliJ IDEA實現遠端連線linux,檔案到linux伺服器(SSH會話功能和SFTP功能)

注意: eclipse的SSH會話功能和SFTP功能這裡不會說 點選以下連結可檢視   eclipse的SSH會話功能和SFTP功能 而IntelliJ IDEA(以下簡稱為IDEA)這麼強大的開發工具自然也有該功能,這篇部落格就介紹一下IDEA的SSH會話功能