国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

PC端VUE使用視像頭拍照

這篇具有很好參考價值的文章主要介紹了PC端VUE使用視像頭拍照。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

<template>
    <div class="camera_outer">
        <video id="videoCamera" :width="videoWidth" :height="videoHeight" autoplay></video>
        <canvas style="display: none" id="canvasCamera" :width="videoWidth" :height="videoHeight"></canvas>
        <div v-if="imgSrc" class="img_bg_camera">
            <p>效果預覽</p>
            <img :src="imgSrc" alt class="tx_img" />
        </div>
        <div class="button">
            <el-button @click="getCompetence()" type="primary">打開攝像頭</el-button>
            <el-button @click="stopNavigator()" type="warning">關閉攝像頭</el-button>
            <el-button @click="setImage()" type="success">拍照</el-button>
        </div>
    </div>
</template>
<script>
    export default {
        data() {
            return {
                videoWidth: 250,
                videoHeight: 350,
                imgSrc: "",
                thisCancas: null,
                thisContext: null,
                thisVideo: null,
                openVideo: false,
            };
        },
        mounted() {
            this.getCompetence(); //進入頁面就調用攝像頭
        },
        methods: {
            // 調用權限(打開攝像頭功能)
            getCompetence() {
                var _this = this;
                _this.thisCancas = document.getElementById("canvasCamera");
                _this.thisContext = this.thisCancas.getContext("2d");
                _this.thisVideo = document.getElementById("videoCamera");
                _this.thisVideo.style.display = "block";
                // 獲取媒體屬性,舊版本瀏覽器可能不支持mediaDevices,我們首先設置一個空對象
                if (navigator.mediaDevices === undefined) {
                    navigator.mediaDevices = {};
                }
                // 一些瀏覽器實現(xiàn)了部分mediaDevices,我們不能只分配一個對象
                // 使用getUserMedia,因為它會覆蓋現(xiàn)有的屬性。
                // 這里,如果缺少getUserMedia屬性,就添加它。
                if (navigator.mediaDevices.getUserMedia === undefined) {
                    navigator.mediaDevices.getUserMedia = function (constraints) {
                        // 首先獲取現(xiàn)存的getUserMedia(如果存在)
                        var getUserMedia = navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.getUserMedia;
                        // 有些瀏覽器不支持,會返回錯誤信息
                        // 保持接口一致
                        if (!getUserMedia) {
                            //不存在則報錯
                            return Promise.reject(
                                new Error("getUserMedia is not implemented in this browser")
                            );
                        }
                        // 否則,使用Promise將調用包裝到舊的navigator.getUserMedia
                        return new Promise(function (resolve, reject) {
                            getUserMedia.call(navigator, constraints, resolve, reject);
                        });
                    };
                }
                var constraints = {
                    audio: false,
                    video: {
                        width: this.videoWidth,
                        height: this.videoHeight,
                        transform: "scaleX(-1)",
                    },
                };
                navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {
                    // 舊的瀏覽器可能沒有srcObject
                    if ("srcObject" in _this.thisVideo) {
                        _this.thisVideo.srcObject = stream;
                    } else {
                        // 避免在新的瀏覽器中使用它,因為它正在被棄用。
                        _this.thisVideo.src = window.URL.createObjectURL(stream);
                    }
                    _this.thisVideo.onloadedmetadata = function (e) {
                        _this.thisVideo.play();
                    };
                }).catch((err) => {
                    console.log(err);
                });
            },

            //  繪制圖片(拍照功能)
            setImage() {
                var _this = this;
                // canvas畫圖
                _this.thisContext.drawImage(
                    _this.thisVideo,
                    0,
                    0,
                    _this.videoWidth,
                    _this.videoHeight
                );
                // 獲取圖片base64鏈接
                var image = this.thisCancas.toDataURL("image/png");
                _this.imgSrc = image; //賦值并預覽圖片
            },

            // 關閉攝像頭
            stopNavigator() {
                this.thisVideo.srcObject.getTracks()[0].stop();
            },

            // base64轉文件,此處沒用到
            dataURLtoFile(dataurl, filename) {
                var arr = dataurl.split(",");
                var mime = arr[0].match(/:(.*?);/)[1];
                var bstr = atob(arr[1]);
                var n = bstr.length;
                var u8arr = new Uint8Array(n);
                while (n--) {
                    u8arr[n] = bstr.charCodeAt(n);
                }
                return new File([u8arr], filename, { type: mime });
            },
        },
    };
</script>

文章來源地址http://www.zghlxwxcb.cn/news/detail-820452.html

到了這里,關于PC端VUE使用視像頭拍照的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • VUE+websocket編寫實現(xiàn)PC web端控制攝像頭

    VUE+websocket編寫實現(xiàn)PC web端控制攝像頭

    目錄 前言 一、WebSocket簡介 二、API接口 三、后臺服務器 四、實例 視頻流框 類“遙控器”模塊控制視頻畫面 五、完整功能展示(視頻不懂上傳,淚目) 六、完整代碼 總結 ? ? ? ? ?WebSocket是一種全雙工通信的數據通信協(xié)議。WebSocket的主要功能用處是允許服務器主動地向客戶

    2023年04月08日
    瀏覽(31)
  • vue2使用rtsp視頻流接入??低晹z像頭(純前端)

    vue2使用rtsp視頻流接入海康威視攝像頭(純前端)

    ??低暪俜降腞TSP最新取流格式如下: rtsp://用戶名:密碼@IP:554/Streaming/Channels/101 用戶名和密碼 IP就是登陸攝像頭時候的IP(筆者這里IP是192.168.1.210) 所以筆者的rtsp流地址就是 rtsp://用戶名:密碼@192.168.1.210:554/Streaming/Channels/101 1.1關閉 螢石云的接入 1.2 調整視頻編碼為H.264 在此下載

    2024年04月26日
    瀏覽(25)
  • Vue前端壓縮圖片后上傳,拍照上傳最佳實踐

    Vue前端壓縮圖片后上傳,拍照上傳最佳實踐

    最近有一個需求,通過手機拍照后上傳圖片到服務器,大家應該都知道,現(xiàn)在的手機像素實在是太高了,隨便拍一張都是 10M 以上,直接上傳到服務器一方面是浪費存儲空間,另外就是特別浪費流量,如果網絡不好還很慢。所以想尋求一種前端壓縮圖片的方案。 在網上找了很

    2024年02月10日
    瀏覽(28)
  • Vue實現(xiàn)攝像頭視頻分屏, 使用flv.js接收rtmp/flv視頻流

    Vue實現(xiàn)攝像頭視頻分屏, 使用flv.js接收rtmp/flv視頻流

    1. 現(xiàn)有的平臺系統(tǒng)播放實時視頻。 因為用戶電腦都是Linux系統(tǒng),無法直接使用??登岸薙DK,討論決定由后臺推視頻流,簡單調研后發(fā)現(xiàn)最流行的是flv,而且有B站開源的flv.js適配。前期后臺推給我RTMP前綴的視頻流,我嘗試使用video.js,西瓜視頻等都失敗了,后來后端改為http前

    2024年02月03日
    瀏覽(27)
  • 在前端開發(fā)中,何時應該使用 jQuery,何時應該使用 Vue.js

    如果您是最近才開始進入 Web 前端開發(fā)領域的開發(fā)人員,那么您可能會聽說過 jQuery。jQuery 是一個小巧而功能強大的 JavaScript 庫,旨在簡化跨瀏覽器 DOM 操作、事件處理、動畫效果和 AJAX 等方面的操作,可以讓開發(fā)人員更輕松地開發(fā)出高質量的網站和 Web 應用程序。 何時應該使

    2024年02月02日
    瀏覽(25)
  • 【前端Vue】Vue從0基礎完整教程第3篇:面經PC端-element (上)【附代碼文檔】

    【前端Vue】Vue從0基礎完整教程第3篇:面經PC端-element (上)【附代碼文檔】

    Vue從0基礎到大神學習完整教程完整教程(附代碼資料)主要內容講述:vue基本概念,vue-cli的使用,vue的插值表達式,{{ gaga }},{{ if (obj.age 18 ) { } }},vue指令,綜合案例 - 文章標題編輯vue介紹,開發(fā)vue的方式,基本使用,如何覆蓋webpack配置,目錄分析與清理,vue單文件組件的說明,

    2024年03月20日
    瀏覽(24)
  • 如何使用前端框架(React、Angular、Vue.js等)?該如何選擇?

    如何使用前端框架(React、Angular、Vue.js等)?該如何選擇?

    聚沙成塔·每天進步一點點 前端入門之旅:探索Web開發(fā)的奇妙世界 歡迎來到前端入門之旅!感興趣的可以訂閱本專欄哦!這個專欄是為那些對Web開發(fā)感興趣、剛剛踏入前端領域的朋友們量身打造的。無論你是完全的新手還是有一些基礎的開發(fā)者,這里都將為你提供一個系統(tǒng)而

    2024年02月07日
    瀏覽(23)
  • Vue + JS + tauri 開發(fā)一個簡單的PC端桌面應用程序

    Vue + JS + tauri 開發(fā)一個簡單的PC端桌面應用程序

    Tauri 1 是一款應用構建工具包,讓您能夠為使用 Web 技術的所有主流桌面操作系統(tǒng)構建軟件。tauri 框架與 electron 非常相似。 tauri electron 體積 10MB 100MB 打包速度 2s 17s Tauri 由一個可搭配任何前端來構建桌面應用的框架和 Rust 核心構成。 創(chuàng)建窗口并向其提供原生功能支持的 Rust 二

    2024年01月17日
    瀏覽(25)
  • 使用JavaScript和Vue.js框架開發(fā)的電子商務網站,實現(xiàn)商品展示和購物車功能

    引言: 隨著互聯(lián)網的快速發(fā)展和智能手機的普及,電子商務行業(yè)正迎來一個全新的時代。越來越多的消費者選擇網上購物,而不再局限于傳統(tǒng)的實體店。這種趨勢不僅僅是改變了消費者的習慣購物,也給企業(yè)帶來了巨大的商機。為了不斷滿足消費者的需求,電子商務網站需要

    2024年02月15日
    瀏覽(26)
  • VUE+faceApi.js實現(xiàn)攝像頭拍攝人臉識別

    VUE+faceApi.js實現(xiàn)攝像頭拍攝人臉識別

    需求:前端獲取到攝像頭信息,通過模型來進行判斷人像是否在鏡頭中,鏡頭是否有被遮擋。 實現(xiàn)步驟: 1、通過video標簽來展示攝像頭中的內容 2、通過canvas來繪制視頻中信息進行展示 3、在拍照時候將canvas的當前幀轉成圖片 下載依賴 face-api.js是核心依賴必須要下 element-ui為

    2024年02月01日
    瀏覽(40)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包