调用摄像头拍照

时间:2021-12-02 13:31:09
我想调用摄像头拍照,该怎么做?
在网页中显示出视频的窗口,点击拍照即可生成图片。

27 个解决方案

#1


请到 web开发——javascript 版面求解

#2


。。。。。。需要自己写ActiveX(DLL)让客户下载,功能:
(1)判断客户端有没有任何摄像头之类的外设;
(2)与客户端摄像头设备DLL进行通信;
(3)打开客户端一个接口,接收服务器发出指令。
以上是简单描述,看看C++或VC++通信部分编程吧。

#3


LZ应该是想要flash,调用摄像头方式

不过就这块,跟php关系几乎没有

#4


flash 获取视频图片信息,php保存.

#5


引用 3 楼 amani11 的回复:
LZ应该是想要flash,调用摄像头方式

不过就这块,跟php关系几乎没有


服务器用的是php,所以来这版求解。不知道javascrip能不能实现。

#6


javascript无法实现
也不需要使用 axtiveX

就用 flash,现在很多网站的在线拍照功能都是用的 flash

flash可以控制摄像头(网上代码比较多),生成图片数据(可以获取到每个像素的颜色值),在客户端根据这些数据生成图片上传到服务器,或者直接将这些数据在flash里面上传到服务器,或者交给javascript上传到服务器,然后服务器用 php 生成图片。

#7


这个功能PHP做不到喔,呵呵

#8


强悍...记得flash可以做到...

#9


我有个文章你可以参考一下
http://hi.baidu.com/jlzan1314/blog/item/f523ae2b1f85ca325243c13d.html

不过讲的flex的flash里面,类应该是一样的,还有我记得ucenter取用户头像就是flash的,你也可以看看.

#10


php可以做到,但默认环境不支持,实现起来成本也比较高,
大众而快捷的做法是做flash,
谷歌搜索关键词" flash摄像 php"文献一大堆。

如果这样还不行再发帖问吧。

that all, good luck to you.

#11


PHP可能做不到这方面的吧,我也找资料看看,还没想到过用PHP调用摄像头的。

#12


一般都是flash+php的。flash实现拍照的功能,并把得到的图象数据传给php,php再来做处理

#13


php是脚本语言,不能对硬件进行操作吧?

如果能操作,也是利用中间件来完成的。,如 C

#14


可以php+flash來進行...你看看那個uchome....
裏面的註冊有.

#15


PHP用MING扩展可以生成SWF,通过actionscript,应该可以实现这个功能。
不过,PHP的MING,生成的,是FLASH4/5。不一定支持最新版的AS.

#17


你可以调用uchome的接口来实现这个功能

#18


引用 10 楼 coolesting 的回复:
php可以做到,但默认环境不支持,实现起来成本也比较高,
大众而快捷的做法是做flash,
谷歌搜索关键词"flash摄像 php"文献一大堆。

如果这样还不行再发帖问吧。

that all, good luck to you.

that all ......是什么语言?!... 调用摄像头拍照

#19


通过flash+php可以实现。php是做不到调用摄像头信息的,它是服务器语言。flash是客户端语言

#20


引用楼主 leeyocool 的回复:
我想调用摄像头拍照,该怎么做?
在网页中显示出视频的窗口,点击拍照即可生成图片。

Discuz!/UCenter 里有一个 Flash 就能做到这个功能,如果想要摘出来用的话,可以参考我的一篇文章:
UCenter中上传头像功能的剥离

调用摄像头拍照
————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具, 分享给大家,欢迎 技术交流 :)

#21


这个还真有

#22


引用楼主 leeyocool 的回复:
我想调用摄像头拍照,该怎么做?
在网页中显示出视频的窗口,点击拍照即可生成图片。


这个功能需要使用flash或者silverlight等插件来实现,PHP本身是无法完成,但是PHP可以和flash进行交互,参考:



分享FLASH(AS2.0)+PHP摄像头抓图法式

最近一个项目需要用摄像头来捕捉视频,并且保存图片,做了个case ,贴到这里,需要的可下载改进,
功能描述:flash抓图,生成像素,然后传递给PHP,用GD渲染出来
浏览:
下载:

<?php
$w = (int)$_POST['width'];
$h = (int)$_POST['height'];
$img = imagecreatetruecolor($w, $h);
imagefill($img, 0, 0, 0xFFFFFF);
$c_row = explode(',',$_POST['rgb_array']);
for($rows = 0; $rows < $h; $rows++){
    for($cols = 0; $cols < $w; $cols++){
        $value = $c_row[$cols];
        $value = $c_row[count($c_row)-($rows*$w+($w-$cols-1))];
        if($value != ''){
            $hex = $value;
            while(strlen($hex) < 6){
                $hex = '0'.$hex;
            }
            $r = hexdec(substr($hex, 0, 2));
            $g = hexdec(substr($hex, 2, 2));
            $b = hexdec(substr($hex, 4, 2));
            $test = imagecolorallocate($img, $r, $g, $b);
            imagesetpixel($img, $cols, $rows, $test);
        }
    }
}
header("Content-type:image/jpeg");
imagejpeg($img, '', 90);
?>

#23


flash与PHP的交互技巧

在场景中放置一个按钮,点击事件如下:

on(release)
{
 var c = new LoadVars();
 c.action="save";
 c.name="colin";
 c.phone="123456789";
 c.address="china";
 c.sendAndLoad("process.php",c,"POST");
}

process.php执行完毕后把结果变量放到c*flash处理

LoadVars.sendAndLoad()
可用性
Flash Player 6;行为在 Flash Player 7 中发生了变化。

用法
my_lv.sendAndLoad(url, targetObject[, method])

参数
url 要将变量上传到的 URL。如果发布此调用的 SWF 文件运行在 Web 浏览器上,则 url 必须与 SWF 文件位于同一个域中;有关详细信息,请参见下面的“说明”。

targetObject 接收下载变量的 LoadVars 对象。

method HTTP 协议的 GET 或 POST 方法。

返回
字符串。

说明
方法;将 my_lv 对象中的变量发布到指定的 URL。将下载服务器响应,并将其作为变量数据进行分析,然后将结果变量放在 targetObject 对象中。

变量发布的方式与 LoadVars.send() 相同。变量下载到 targetObject 中的方式与 LoadVars.load() 相同。

在运行于 Flash Player 7 以前版本的播放器的 SWF 文件中,url 必须与发布此调用的 SWF 文件位于同一个超级域中。例如,位于 www.someDomain.com 的 SWF 文件可以从位于 store.someDomain.com 的 SWF 文件加载变量,这是因为这两个文件都在同一个超级域 someDomain.com 中。

如果任何版本的 SWF 文件运行在 Flash Player 7 或更高版本中,url 必须处于完全相同的域中(请参见Flash Player 安全功能)。例如,位于 www.someDomain.com 的 SWF 文件只能从同样位于 www.someDomain.com 的 SWF 文件加载变量。如果要从其它域中加载变量,则可以在承载被访问的 SWF 文件的服务器上放置一个跨域策略文件。有关更多信息,请参见关于允许跨域数据加载。

此方法与 XML.sendAndLoad() 相似。

LoadVars.send()
可用性
Flash Player 6。

用法
my_lv.send(url [,target, method])

参数
url 要将变量上传到的 URL。

target 浏览器框架窗口,所有响应都将在其中显示。

method HTTP 协议的 GET 或 POST 方法。

返回
字符串。

说明
方法;将 my_lv 对象中的变量发送到指定的 URL。默认情况下,my_lv 中的所有可枚举变量都将连接为一个 application/x-www-form-urlencoded 格式的字符串,该字符串将通过 HTTP POST 方法被发布到 URL。这与 loadVariables() 动作所用的格式相同。在 HTTP 请求标头中发送的 MIME 内容类型是 my_lv.contentType 的值或默认的 application/x-www-form-urlencoded。除非指定了 GET,否则将使用 POST 方法。

如果指定了 target 参数,则服务器的响应将显示在指定的目标浏览器框架窗口中。如果省略 target 参数,则服务器响应将被丢弃。

此方法与 XML.send() 相似。

#24


谢谢楼上的回答,需要测试一下,哪个好用。

#25


引用 15 楼  的回复:
PHP用MING扩展可以生成SWF,通过actionscript,应该可以实现这个功能。
不过,PHP的MING,生成的,是FLASH4/5。不一定支持最新版的AS.


貌似不太好用!

#26


该回复于2012-10-26 14:19:37被版主删除

#27


discuz的uc里有现成的功能,你可以看下

#1


请到 web开发——javascript 版面求解

#2


。。。。。。需要自己写ActiveX(DLL)让客户下载,功能:
(1)判断客户端有没有任何摄像头之类的外设;
(2)与客户端摄像头设备DLL进行通信;
(3)打开客户端一个接口,接收服务器发出指令。
以上是简单描述,看看C++或VC++通信部分编程吧。

#3


LZ应该是想要flash,调用摄像头方式

不过就这块,跟php关系几乎没有

#4


flash 获取视频图片信息,php保存.

#5


引用 3 楼 amani11 的回复:
LZ应该是想要flash,调用摄像头方式

不过就这块,跟php关系几乎没有


服务器用的是php,所以来这版求解。不知道javascrip能不能实现。

#6


javascript无法实现
也不需要使用 axtiveX

就用 flash,现在很多网站的在线拍照功能都是用的 flash

flash可以控制摄像头(网上代码比较多),生成图片数据(可以获取到每个像素的颜色值),在客户端根据这些数据生成图片上传到服务器,或者直接将这些数据在flash里面上传到服务器,或者交给javascript上传到服务器,然后服务器用 php 生成图片。

#7


这个功能PHP做不到喔,呵呵

#8


强悍...记得flash可以做到...

#9


我有个文章你可以参考一下
http://hi.baidu.com/jlzan1314/blog/item/f523ae2b1f85ca325243c13d.html

不过讲的flex的flash里面,类应该是一样的,还有我记得ucenter取用户头像就是flash的,你也可以看看.

#10


php可以做到,但默认环境不支持,实现起来成本也比较高,
大众而快捷的做法是做flash,
谷歌搜索关键词" flash摄像 php"文献一大堆。

如果这样还不行再发帖问吧。

that all, good luck to you.

#11


PHP可能做不到这方面的吧,我也找资料看看,还没想到过用PHP调用摄像头的。

#12


一般都是flash+php的。flash实现拍照的功能,并把得到的图象数据传给php,php再来做处理

#13


php是脚本语言,不能对硬件进行操作吧?

如果能操作,也是利用中间件来完成的。,如 C

#14


可以php+flash來進行...你看看那個uchome....
裏面的註冊有.

#15


PHP用MING扩展可以生成SWF,通过actionscript,应该可以实现这个功能。
不过,PHP的MING,生成的,是FLASH4/5。不一定支持最新版的AS.

#16


#17


你可以调用uchome的接口来实现这个功能

#18


引用 10 楼 coolesting 的回复:
php可以做到,但默认环境不支持,实现起来成本也比较高,
大众而快捷的做法是做flash,
谷歌搜索关键词"flash摄像 php"文献一大堆。

如果这样还不行再发帖问吧。

that all, good luck to you.

that all ......是什么语言?!... 调用摄像头拍照

#19


通过flash+php可以实现。php是做不到调用摄像头信息的,它是服务器语言。flash是客户端语言

#20


引用楼主 leeyocool 的回复:
我想调用摄像头拍照,该怎么做?
在网页中显示出视频的窗口,点击拍照即可生成图片。

Discuz!/UCenter 里有一个 Flash 就能做到这个功能,如果想要摘出来用的话,可以参考我的一篇文章:
UCenter中上传头像功能的剥离

调用摄像头拍照
————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具, 分享给大家,欢迎 技术交流 :)

#21


这个还真有

#22


引用楼主 leeyocool 的回复:
我想调用摄像头拍照,该怎么做?
在网页中显示出视频的窗口,点击拍照即可生成图片。


这个功能需要使用flash或者silverlight等插件来实现,PHP本身是无法完成,但是PHP可以和flash进行交互,参考:



分享FLASH(AS2.0)+PHP摄像头抓图法式

最近一个项目需要用摄像头来捕捉视频,并且保存图片,做了个case ,贴到这里,需要的可下载改进,
功能描述:flash抓图,生成像素,然后传递给PHP,用GD渲染出来
浏览:
下载:

<?php
$w = (int)$_POST['width'];
$h = (int)$_POST['height'];
$img = imagecreatetruecolor($w, $h);
imagefill($img, 0, 0, 0xFFFFFF);
$c_row = explode(',',$_POST['rgb_array']);
for($rows = 0; $rows < $h; $rows++){
    for($cols = 0; $cols < $w; $cols++){
        $value = $c_row[$cols];
        $value = $c_row[count($c_row)-($rows*$w+($w-$cols-1))];
        if($value != ''){
            $hex = $value;
            while(strlen($hex) < 6){
                $hex = '0'.$hex;
            }
            $r = hexdec(substr($hex, 0, 2));
            $g = hexdec(substr($hex, 2, 2));
            $b = hexdec(substr($hex, 4, 2));
            $test = imagecolorallocate($img, $r, $g, $b);
            imagesetpixel($img, $cols, $rows, $test);
        }
    }
}
header("Content-type:image/jpeg");
imagejpeg($img, '', 90);
?>

#23


flash与PHP的交互技巧

在场景中放置一个按钮,点击事件如下:

on(release)
{
 var c = new LoadVars();
 c.action="save";
 c.name="colin";
 c.phone="123456789";
 c.address="china";
 c.sendAndLoad("process.php",c,"POST");
}

process.php执行完毕后把结果变量放到c*flash处理

LoadVars.sendAndLoad()
可用性
Flash Player 6;行为在 Flash Player 7 中发生了变化。

用法
my_lv.sendAndLoad(url, targetObject[, method])

参数
url 要将变量上传到的 URL。如果发布此调用的 SWF 文件运行在 Web 浏览器上,则 url 必须与 SWF 文件位于同一个域中;有关详细信息,请参见下面的“说明”。

targetObject 接收下载变量的 LoadVars 对象。

method HTTP 协议的 GET 或 POST 方法。

返回
字符串。

说明
方法;将 my_lv 对象中的变量发布到指定的 URL。将下载服务器响应,并将其作为变量数据进行分析,然后将结果变量放在 targetObject 对象中。

变量发布的方式与 LoadVars.send() 相同。变量下载到 targetObject 中的方式与 LoadVars.load() 相同。

在运行于 Flash Player 7 以前版本的播放器的 SWF 文件中,url 必须与发布此调用的 SWF 文件位于同一个超级域中。例如,位于 www.someDomain.com 的 SWF 文件可以从位于 store.someDomain.com 的 SWF 文件加载变量,这是因为这两个文件都在同一个超级域 someDomain.com 中。

如果任何版本的 SWF 文件运行在 Flash Player 7 或更高版本中,url 必须处于完全相同的域中(请参见Flash Player 安全功能)。例如,位于 www.someDomain.com 的 SWF 文件只能从同样位于 www.someDomain.com 的 SWF 文件加载变量。如果要从其它域中加载变量,则可以在承载被访问的 SWF 文件的服务器上放置一个跨域策略文件。有关更多信息,请参见关于允许跨域数据加载。

此方法与 XML.sendAndLoad() 相似。

LoadVars.send()
可用性
Flash Player 6。

用法
my_lv.send(url [,target, method])

参数
url 要将变量上传到的 URL。

target 浏览器框架窗口,所有响应都将在其中显示。

method HTTP 协议的 GET 或 POST 方法。

返回
字符串。

说明
方法;将 my_lv 对象中的变量发送到指定的 URL。默认情况下,my_lv 中的所有可枚举变量都将连接为一个 application/x-www-form-urlencoded 格式的字符串,该字符串将通过 HTTP POST 方法被发布到 URL。这与 loadVariables() 动作所用的格式相同。在 HTTP 请求标头中发送的 MIME 内容类型是 my_lv.contentType 的值或默认的 application/x-www-form-urlencoded。除非指定了 GET,否则将使用 POST 方法。

如果指定了 target 参数,则服务器的响应将显示在指定的目标浏览器框架窗口中。如果省略 target 参数,则服务器响应将被丢弃。

此方法与 XML.send() 相似。

#24


谢谢楼上的回答,需要测试一下,哪个好用。

#25


引用 15 楼  的回复:
PHP用MING扩展可以生成SWF,通过actionscript,应该可以实现这个功能。
不过,PHP的MING,生成的,是FLASH4/5。不一定支持最新版的AS.


貌似不太好用!

#26


该回复于2012-10-26 14:19:37被版主删除

#27


discuz的uc里有现成的功能,你可以看下