Comment utiliser PHP pour appeler l'appareil photo afin de scanner les codes QR
La numérisation des codes QR par appareil photo est de plus en plus courante dans les applications modernes et peut fournir des méthodes de transfert d'informations et d'interaction pratiques et rapides. Dans l'application Web, nous pouvons utiliser PHP pour appeler la caméra afin de scanner le code QR et utiliser les informations numérisées pour un traitement et un affichage ultérieurs. Cet article explique comment utiliser PHP pour appeler la caméra pour scanner le code QR et fournit des exemples de code correspondants.
Préparation
Avant de commencer, nous devons configurer les bibliothèques d'extensions et les fonctions correspondantes pour l'environnement PHP. Tout d'abord, assurez-vous que votre version de PHP est 5.2.0 ou supérieure, car j'utiliserai la bibliothèque d'extension ZBar de PHP 5.2 ou supérieure pour implémenter la fonction de numérisation de code QR. Deuxièmement, vous devez installer la bibliothèque d'extensions ZBar et activer l'extension correspondante dans php.ini. Pour les étapes d'installation spécifiques, veuillez vous référer au site officiel de ZBar.
Processus de mise en œuvre
Ce qui suit est un exemple de code simple qui montre comment utiliser PHP pour appeler la caméra pour la numérisation du code QR.
<!DOCTYPE html> <html> <head> <title>PHP调用摄像头进行二维码扫描</title> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <style> #preview { width: 320px; height: 240px; border: 1px solid black; margin: 0 auto; } </style> </head> <body> <div id="preview"></div> <script> window.onload = function() { // 调用摄像头 navigator.mediaDevices.getUserMedia({ video: { facingMode: "environment" } }) .then(function (stream) { // 将视频流渲染到页面上 var video = document.createElement("video"); video.srcObject = stream; video.play(); document.getElementById("preview").appendChild(video); // 定时扫描二维码 setInterval(function() { // 创建画布对象 var canvas = document.createElement("canvas"); canvas.width = video.videoWidth; canvas.height = video.videoHeight; var ctx = canvas.getContext("2d"); ctx.drawImage(video, 0, 0, canvas.width, canvas.height); // 获取二维码扫描结果 var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); var code = jsQR(imageData.data, canvas.width, canvas.height); if (code) { alert("扫描结果: " + code.data); } }, 1000); }) .catch(function (error) { console.error("摄像头调用失败:", error); }); }; </script> </body> </html>
Analyse du code
Le code ci-dessus crée dynamiquement un élément vidéo pour restituer le flux vidéo de la caméra. Utilisez ensuite l'élément canvas pour intercepter l'image du flux vidéo et la convertir en un objet ImageData. En appelant la fonction jsQR(imageData.data, canvas.width, canvas.height)
de la bibliothèque jsQR, on peut obtenir les résultats du scan du code QR.
Il convient de noter que puisque la méthode getUserMedia renvoie un objet Promise, nous utilisons .then et .catch pour gérer respectivement les fonctions de rappel de réussite et d'échec.
Conclusion
En utilisant PHP pour appeler la caméra pour la numérisation du code QR, nous pouvons implémenter une fonction de numérisation de code QR rapide et pratique dans les applications Web. J'espère que cet article vous aidera à le comprendre et à le mettre en pratique, et à améliorer vos compétences en développement d'applications.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!