Menggunakan HTML5 untuk mengambil gambar contoh kod_html5 petua tutorial
WBOYasal
2016-05-16 15:49:011477semak imbas
Alamat demo: Demo pengambilan foto HTML5 Mula-mula, mari kita lihat struktur kod HTML Sudah tentu, bahagian kandungan DOM ini harus dimuatkan secara dinamik dan dijana selepas pengguna membenarkan penggunaan acara kamera mereka. Nota: Kami menggunakan resolusi 640X480 Jika anda menggunakan JS untuk menjananya secara dinamik, anda boleh mengawal peleraian secara fleksibel.
Salin kod
Kod tersebut adalah seperti berikut:
-- Sebaik-baiknya elemen ini tidak dicipta sehingga ia disahkan bahawa klien menyokong video/kamera, tetapi demi menggambarkan elemen yang terlibat, ia dicipta dengan markup (bukan JavaScript) -->
JavaScript Selagi elemen HTML di atas dicipta, bahagian JavaScript akan menjadi mudah Ia lebih mudah daripada yang anda fikirkan:
Salin kodKodnya adalah seperti berikut :
/ / Tetapkan mendengar acara, pemuatan kandungan DOM selesai dan kesannya serupa dengan $.ready() jQuery. window.addEventListener("DOMContentLoaded", function() { // Elemen kanvas akan digunakan untuk menangkap var canvas = document.getElementById("canvas"), context = canvas. getContext( "2d"), // elemen video, yang akan digunakan untuk menerima dan memainkan strim data kamera video = document.getElementById("video"), videoObj = { "video" : true }, // Fungsi panggil balik ralat, mencetak maklumat ralat pada konsol errBack = function(error) { if("objek" === typeof window.console){ console.log ("Ralat tangkapan video: ", error.code); }; // Letakkan pendengar video pada tempatnya // Untuk pelayar standard if(navigator. getUserMedia ) { // Standard navigator.getUserMedia(videoObj, function(strim) { video.src = stream; video.play(); }, errBack); else if(navigator.webkitGetUserMedia) { // WebKit-prefixed navigator.webkitGetUserMedia(videoObj, function(strim){ video.src = window.webkitURL.createObjectURL(strim); video.play( ) ; }, errBack); } // Pemantauan acara untuk butang foto document.getElementById("snap").addEventListener("click", function() { / Lukis ke kanvas context.drawImage(video, 0, 0, 640, 480); }, palsu); untuk mengatakan Letakkan halaman web anda di bawah pelayan web dan aksesnya melalui protokol http. Selain itu, versi penyemak imbas perlu lebih baharu dan menyokong ciri baharu HTML5. Penterjemah tidak layak kerana tidak menterjemah mengikut teks asal. Pelayar yang digunakan ialah chrome 28. Akhir sekali, tampal kod lengkap, yang agak membosankan.
Salin kod
Kod tersebut adalah seperti berikut:
" content="EditPlus">
<script> <br>// Event-Listening festlegen, DOM-Inhalt wird geladen und der Effekt ist ähnlich wie bei $.ready() von jQuery. <br>window.addEventListener("DOMContentLoaded", function() { <br>// Das Canvas-Element wird zum Erfassen verwendet <br>var canvas = document.getElementById("canvas"), <br>context = Canvas. getContext( "2d"), <br>// Videoelement, das zum Empfangen und Abspielen des Datenstroms der Kamera verwendet wird <br>video = document.getElementById("video"), <br>videoObj = { "video" : true }, <br>// Eine Fehlerrückruffunktion, gibt Fehlerinformationen auf der Konsole aus <br>errBack = function(error) { <br>if("object" === typeof window.console){ <br> console.log ("Videoaufnahmefehler: ", error.code); <br>} <br>// Video-Listener einrichten <br>// Für Standardbrowser<br>if(navigator. getUserMedia ) { // Standard <br>navigator.getUserMedia(videoObj, function(stream) { <br>video.src = stream; <br>video.play(); <br>}, <br>} else if(navigator.webkitGetUserMedia) { // WebKit-Präfix <br>navigator.webkitGetUserMedia(videoObj, function(stream){ <br>video.src = window.webkitURL.createObjectURL(stream); <br>video.play( ) ; <br>}, errBack); <br>} <br>// Ereignisüberwachung für den Foto-Button<br>document.getElementById("snap").addEventListener("click", function() { <br> // Auf Leinwand zeichnen <br>context.drawImage(video, 0, 0, 640, 480); <br></script> /head>
: 640 *480, Natürlich kann es dynamisch gesteuert werden! -->
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn