很多站长朋友们都不太清楚php如何调用相机,今天小编就来给大家整理php如何调用相机,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 手机访问PHP时,怎么让它支持调用手机拍照 2、 有没大神指点php在手机上怎么调用摄像头扫描二维码 3、 如何通过html5调用摄像头拍照 4、 php+html5调用摄像头实现拍照 5、 用php实现手机拍照+本地相册实现图片上传功能,需要统一样式 6、 html5或者JS怎样调用手机摄像头或者相册? 手机访问PHP时,怎么让它支持调用手机拍照调用照相机,php是做不到的,之前用链接访问浏览器可以通过js调用摄像头的功能,调照相机你可以在查查吧,反正php做不到,js获取可以
有没大神指点php在手机上怎么调用摄像头扫描二维码PHP无法调用手机的摄像头,因为没权限。
而且PHP、NET、JSP这些对于手机来说都不过是HTML网页而已
就算你有能力在手机上配置PHP的环境,也是无法调用摄像头的。
但你不要灰色,我只是纠正一下你问问题的方式。
其实HTML5是可以调用手机的摄像头的,下面直接上代码
<input type="file" accept="image/*" capture="camera">
<input type="file" accept="video/*" capture="camcorder">
<input type="file" accept="audio/*" capture="microphone">
看清楚了,第一行是调用摄像头,第二行估计也是,第三行是调用音乐播放器。如果非要和PHP扯上点关系那就这样写
<?php echo '<input type="file" accept="image/*" capture="camera">
<input type="file" accept="video/*" capture="camcorder">
<input type="file" accept="audio/*" capture="microphone">' ;?>
如何通过html5调用摄像头拍照1. 项目背景
网站项目基于HTML5+AngularJs开发,正在做一个由HTML5调用摄像头拍照,从而实现修改头像的功能。起初觉得HTML5拍照很简单,但是做的时候才发现HTML5获取摄像头并不是那么容易。
2. 如何调用摄像头
$scope.photoErr = false;
$scope.photoBtnDiable = true;
var mediaStream = null,track = null;
navigator.getMedia = (navigator.getUserMedia ||
navigator.webkitGetUserMedia || navigator.mozGetUserMedia ||
navigator.msGetUserMedia);
if (navigator.getMedia) {
navigator.getMedia(
{
video: true
},
// successCallback
function (stream) {
var s = window.URL.createObjectURL(stream);
var video = document.getElementById('video');
video.src = window.URL.createObjectURL(stream);
mediaStream = stream;
track = stream.getTracks()[0];
$scope.photoBtnDiable = false; $scope.$apply();
},
// errorCallback
function (err) {
$scope.errorPhoto();
console.log("The following error occured:" + err);
});
} else {
$scope.errorPhoto();
}
代码解析:
navigator为浏览器对象,包含浏览器的信息,这里就是用这个对象打开摄像头。$scope为AndularJs语法。第一步声明navigator.getMedia来调用浏览器不同的打开摄像头函数,目前仅有getUserMedia、webkitGetUserMedia、mozGetUserMedia、msGetUserMedia四种方式分别对应通用浏览器、Google浏览器、火狐浏览器和IE浏览器,浏览器会自动判断调用哪一个函数。第二步是调用打开浏览器,包含三个参数,分别为需要使用的多媒体类型、获取成功返回的流数据处理函数以及操作失败返回错误消息处理函数。其中,使用时不仅可以设置视频还能设置使用麦克风,设置方式为:
{
video: true,
audio: true
}
调用成功即打开摄像头后返回视频流数据,我们可以将流数据设置到video标签在界面上实时显示图像。mediaStream用来记录获取到的流数据,track在Chrome浏览器中用来跟踪摄像头状态,这两个变量都能用来关闭摄像头。
3. 拍照
$scope.snap = function () {
var canvas = document.createElement('canvas');
canvas.width = "400";
canvas.height = "304";
var ctx = canvas.getContext('2d');
ctx.drawImage(video, 0, 0, 400, 304);
$scope.closeCamera();
$uibModalInstance.close(canvas.toDataURL("image/png"));
};
拍照时需要使用到canvas标签,创建一个canvas标签,设置我们需要拍照的尺寸大小,通过drawImage函数将video当前的图像保存到canvas标签,最后将图像数据转换为base64数据返回并关闭摄像头,这样就完成了我们的拍照功能。这里的$uibModalInstance对象是我们项目中打开弹出层的一个对象,用来控制弹出层的显示。
4. 如何关闭摄像头
$scope.closeCamera = function () {
if (mediaStream != null) {
if (mediaStream.stop) {
mediaStream.stop();
}
$scope.videosrc = "";
}
if (track != null) {
if (track.stop) {
track.stop();
}
}
}
正如前面所说,关闭摄像头的方式是通过mediaStream和track变量,只不过,track只能关闭Chrome浏览器中的摄像头,这也是Chrome 45版本以上关闭摄像头的方式。
5. 集成到AndularJs
事实上,前面所说的都是在AndularJs中实现的,当然,这里只是实现了拍照并返回拍照数据,我们想要在其他地方也使用,就需要将这部分独立出来,这里我们用到了AngularJs中的service机制,将这部分单独做成一个service并在项目中注入,然后就可以在其他地方调用了。
service注册:
app().registerService("h5TakePhotoService", function ($q, $uibModal) {
this.photo = function () {
var deferred = $q.defer();
require([config.server + "/com/controllers/photo.js"], function () {
$uibModal.open({
templateUrl: config.server + "/com/views/modal_take_photo.html",
controller: "photoModalController",
windowClass: "modal-photo"
}).result.then(function (e) {
deferred.resolve(e);
});
});
return deferred.promise;
}
});
调用方式:
$scope.takePhoto = function () {
h5TakePhotoService.photo().then(function (res) {
if (res != null res != "") {
$scope.myImage = res;
}
});
}
h5TakePhotoService为控制器中注入的拍照service对象,最后处理返回的图像数据,设置数据显示到界面上。
6. 兼容问题
主要存在Chrome浏览器中,本地测试时,Chrome浏览器中能够正常使用,但是部署到服务器后就不能正常使用,报错消息为 [object NavigatorUserMediaError],这是因为Chrome浏览器在使用摄像头时只支持安全源访问,所以只能通过https访问才能正常使用。
最后需要说一下,测试时只能通过访问才能使用,不能通过方式访问,即我们需要将代码部署才能访问,可以在Visual Studio、 java web、php中完成。
php+html5调用摄像头实现拍照不清楚php能否实现,之前我有和别人一起写过类似的东西用的是flash actionscript(貌似已经有不少现成的actionscript集成,直接在php页面里面加载就好了)。 可以参考
用php实现手机拍照+本地相册实现图片上传功能,需要统一样式PHP?很遗憾,PHP无法启动手机的拍照功能,这个需要调用手机的内部资源,通俗来说就是只有APP获取了这个权限才能去打开拍照公告,PHP是无法办到的。对于文件上传,目前还真的只有 <input type="file">,至于样式自己可以 去调试,关于你说的兼容性太差了,这个很不解,麻烦描述清楚点。
html5或者JS怎样调用手机摄像头或者相册?你给的网页用的是 <input accept="image/*" type="file">,在IOS端点击时会提示选择图片或相机,安卓端要看浏览器对这两个属性的优化,部分浏览器会直接跳转到资源管理器,优化做得好的可以直接提示选择相册或相机。
移动设备和桌面电脑上的客户端API起初并不是同步的。最初总是移动设备上先拥有某些功能和相应的API,但慢慢的,这些API会出现在桌面电脑上。其中一个应用接口技术就是getUserMedia API,它能让应用开发者访问用户的摄像头或内置相机。
关于php如何调用相机的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php如何调用相机 php调用opencv的详细内容...