⑴ 在jsp中嵌入照相程序,就是使用调用摄像头采集照片保存,有没有这程序插件,或者程序代码
这个需求蛮酷的 不过感觉用C做起来去实现会比较容易 java的话感觉有点鸡肋 毕竟涉及到硬件的平台了
我突然想到了用Java的runtime。。没准可以实现。
⑵ Java嵌入式包括摄像头吗
ava嵌入式包括摄像头的。
嵌入式开发一般是关于硬件底层开发,比如驱动开发。
java是运行于JVM虚拟机之上的,如果没有JVM java是运行不起来,JVM又需要操作系统的支持。
java不能直接和硬件打交道,不算嵌入式开发语言。
C语言属于嵌入式开发语言,它能够直接操作寄存器,可以直接和硬件打交道。
⑶ 一台电脑能不能调用另一台电脑的摄像头
方法有很多
1. 在笔记本上开启远程桌面连接·
然后台式电脑用远程桌面连接笔记本·
2.下载一个灰鸽子软件。
台式电脑用客户端把生成文件发送到笔记本上
3.QQ远程可以打开
4.
在另一台电脑上右键点击摄像头
选择共享,设置一个共享名。
可以选择设置密码或者不设置密码。
在另一个本局域网电脑上的网上邻居里找到这个电脑。
直接或者凭密码访问摄像头即可。
⑷ 程序员的工作保密性怎样,上班不能带有摄像头的手机吗
摘要 如果你的工作是公司的核心位置,一般会让你签保密协议,至于手机也要看公司的具体要求。
⑸ 摄像头浏览器中打开,不需要加载插件,且不限定浏览器种类!
从我们目前所做的工程来说,一般ie分控客户端一般只有两种选择:
一,打开ie时提示加载控件后才能登陆浏览,
二,给客户提供封包的exe程序提醒客户安装,
所以,你们最好是将控件打包成exe文件供客户安装最方便,顺便在web做文字性的引导和下载链接也能解决一时的问题,至于降低浏览器才能安装控件,那就是程序员的问题了,不好意思无法解答您!
⑹ java远程访问摄像头怎么实现
OpenOffice java api:
简单的说就是利用java程序可以操作OpenOffice的所有功能,比如创建doc文档,插入文字,设置文字格式等等。
1. OpenOffice 给程序员提供了一个叫UNO (UniversalNetwork Objects)的组件技术.我理解的UNO: OpenOffice 类似于web程序中的服务器,程序员写的代码类似于客户端,利用UNO提供的接口和服务去完成对OpenOffice文档的操作。所以写程序首先要搭建 UNO环境:
1. 下载 OpenOffice
2.复制UNO提供的jar包: unoil.jar, java_uno.jar, juh.jar, jurt.jar, ridl.jar, unoloader.jar. (ps: 安装了SDK之后在文件夹找)到自己的工程中,引入它们。
3. 下载文档:DevelopersGuide.pdf.
4. 安装了SDK后,重新启动一下机器,然后就可以按照 DevelopersGuide 来学习 UNO 编程了。
5. 需要ava 环境。
补充: 安装了SDK后, java, c++帮助文档,样例程序,其他关于sdk的信息 都放在本地openOffice安装路径一个叫sdk目录下面,enjoy it !
总结一下已经实现的功能和碰到的问题汇总:
1. 首先要得到远程office组件的上下文.通过:
com.sun.star.uno.XComponentContext xContext = com.sun.star.comp.helper.Bootstrap.bootstrap();
得到,如果OpenOffice安装路径不是在工程的路径下面(我自己猜的), 就会报:
com.sun.star.comp.helper.BootstrapException: no office executable found!
解决办法: 黑其源代码, 看了源代码就会发现其实OpenOffice是在寻找本地的soffice的shell文件,所以弄个变量来保存soffice在系统中的路径,重新写一 个Bootstrap就可以了。详细请参照:论坛 。
2. 得到 XMultiComponentFactory (ComponentFactory 工厂)
com.sun.star.lang.XMultiComponentFactory xMCF = xContext.getServiceManager();
3. 得到各种组件可以通过下面代码:
// docType 是 与 soffice 同目录下面的OpenOffice的其他shell文件,swrite等等
protected XComponent newDocComponent(String docType)
throws java.lang.Exception {
String loadUrl = "private:factory/" + docType;
mxRemoteServiceManager = this.getRemoteServiceManager();
Object desktop = mxRemoteServiceManager.createInstanceWithContext(
"com.sun.star.frame.Desktop", mxRemoteContext);
XComponentLoader xComponentLoader = (XComponentLoader) UnoRuntime
.queryInterface(XComponentLoader.class, desktop);
PropertyValue[] loadProps = new PropertyValue[0];
return xComponentLoader.loadComponentFromURL(loadUrl, "_blank", 0,
loadProps);
}
4.得到 XTextDocument
XComponent xEmptyWriterComponent = newDocComponent("swriter");
XTextDocument mxDoc = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class,
xEmptyWriterComponent);
5. 得到一个文档的引用
XText mxDocText = mxDoc.getText();
6. 得到文档的属性列表
XPropertySet mxDocProps = (XPropertySet) UnoRuntime.queryInterface(
XPropertySet.class, mxDoc);
7. 建立光标,用来插入新的内容。
XTextCursor mxDocCursor = mxDocText.createTextCursor();
XSentenceCursor xSentenceCursor = (XSentenceCursor) UnoRuntime
.queryInterface(XSentenceCursor.class, mxDocCursor);
XWordCursor xWordCursor = (XWordCursor) UnoRuntime.queryInterface(
XWordCursor.class, mxDocCursor);
8.得到光标属性列表
XPropertySet xCursorProps = (XPropertySet) UnoRuntime .queryInterface(XPropertySet.class, mxDocCursor);
9.设置插入文字格式
xCursorProps.setPropertyValue("CharFontName", "宋体");
xCursorProps.setPropertyValue("CharWeight", new Float(FontWeight.BOLD));
xCursorProps.setPropertyValue("CharHeight", new Float(10.5));
// 居中显示
xCursorProps.setPropertyValue("ParaAdjust", com.sun.star.style.ParagraphAdjust.CENTER);
10.在该光标处插入信息
mxDocText.insertString(xSentenceCursor, “Hello World", true);
11. 保存的关键代码
protected void storeDocComponent(XComponent xDoc, String storeUrl)
throws java.lang.Exception {
XStorable xStorable = (XStorable) UnoRuntime.queryInterface(
XStorable.class, xDoc);
PropertyValue[] storeProps = new PropertyValue[1];
storeProps[0] = new PropertyValue();
storeProps[0].Name = "FilterName";
storeProps[0].Value = "MS Word 97";
openOfficeJavaLogger.debug("... store \"" + xDoc.toString() + "\" to \"" + storeUrl
+ "\".");
xStorable.storeAsURL(storeUrl, storeProps);
}
⑺ 程序员的工作保密性怎样,上班不能带有摄像头的手机吗
有些公司不让带手机进入,比如华为。
大部公司没有禁止。
⑻ 如何实现嵌入式linux下USB摄像头视频采集
在linux下所有设备都是文件。所以对摄像头的操作其实就是对文件的操作。USB摄像头的设备文件就是在/dev目录下的video0(假如只有一个摄像头)。在linux下操作摄像头就是使用v4l2对摄像头进行视频的操作,操作步骤如下
1. 打开设备文件。
int fd=open(”/dev/video0″,O_RDWR);
2. 取得设备的capability,看看设备具有什么功能,比如是否具有视频输入,或者音频输入输出等。VIDIOC_QUERYCAP,struct v4l2_capability
v4l2_std_idstd;
do{
ret=ioctl(fd,VIDIOC_QUERYSTD,&std);
}while(ret==-1&&errno==EAGAIN);
switch(std){
caseV4L2_STD_NTSC:
//……
caseV4L2_STD_PAL:
//……
}
3. 选择视频输入,一个视频设备可以有多个视频输入。VIDIOC_S_INPUT,struct v4l2_input(可不要)
4. 设置视频的制式和帧格式,制式包括PAL,NTSC,帧的格式个包括宽度和高度等。
VIDIOC_S_STD,VIDIOC_S_FMT,struct v4l2_std_id,struct v4l2_format
structv4l2_formatfmt;
memset(&fmt,0,sizeof(fmt));
fmt.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;
fmt.fmt.pix.width=320;
fmt.fmt.pix.height=240;
fmt.fmt.pix.pixelformat=V4L2_PIX_FMT_JPEG;
if(ioctl(fd,VIDIOC_S_FMT,&fmt)<0)
{
printf("setformatfailed ");
//return0;
}
5. 向驱动申请帧缓冲,一般不超过5个。struct v4l2_requestbuffers
structv4l2_requestbuffersreq;
memset(&req,0,sizeof(req));
req.count=4;
req.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;
req.memory=V4L2_MEMORY_MMAP;
if(ioctl(fd,VIDIOC_REQBUFS,&req)==-1)
{
perror("VIDIOC_REQBUFSerror ");
//return-1;
}
6.申请物理内存
将申请到的帧缓冲映射到用户空间,这样就可以直接操作采集到的帧了,而不必去复制。将申请到的帧缓冲全部入队列,以便存放采集到的数据.VIDIOC_QBUF,struct v4l2_buffer
VideoBuffer*buffers=calloc(req.count,sizeof(VideoBuffer));
printf("sizeof(VideoBuffer)is%d ",sizeof(VideoBuffer));
structv4l2_bufferbuf;
for(numBufs=0;numBufs<req.count;numBufs++)
{
memset(&buf,0,sizeof(buf));
buf.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;
buf.memory=V4L2_MEMORY_MMAP;
buf.index=numBufs;
if(ioctl(fd,VIDIOC_QUERYBUF,&buf)<0)
{
printf("VIDIOC_QUERYBUFerror ");
//return-1;
}
printf("buflenis%d ",sizeof(buf));
//内存映射
buffers[numBufs].length=buf.length;
buffers[numBufs].offset=(size_t)buf.m.offset;
buffers[numBufs].start=mmap(NULL,buf.length,PROT_READ|PROT_WRITE,MAP_SHARED,fd,buf.m.offset);
printf("buffers.length=%d,buffers.offset=%d,buffers.start[0]=%d ",buffers[numBufs].length,buffers[numBufs].offset,buffers[numBufs].start[0]);
printf("buf2lenis%d ",sizeof(buffers[numBufs].start));
if(buffers[numBufs].start==MAP_FAILED)
{
perror("bufferserror ");
//return-1;
}
if(ioctl(fd,VIDIOC_QBUF,&buf)<0)
{
printf("VIDIOC_QBUFerror ");
//return-1;
}
}
7. 开始视频的采集。
enumv4l2_buf_typetype;
type=V4L2_BUF_TYPE_VIDEO_CAPTURE;
if(ioctl(fd,VIDIOC_STREAMON,&type)<0)
{
printf("VIDIOC_STREAMONerror ");
//return-1;
}
8. 出队列以取得已采集数据的帧缓冲,取得原始采集数据。VIDIOC_DQBUF, 将缓冲重新入队列尾,这样可以循环采集。VIDIOC_QBUF
if(ioctl(fd,VIDIOC_DQBUF,&buf)<0)
{
perror("VIDIOC_DQBUFfailed. ");
//return-1;
}
buf.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;
buf.memory=V4L2_MEMORY_MMAP;
unsignedchar*ptcur=buffers[numBufs].start;
DEBUG("buf.bytesused=%d ",buf.bytesused);
inti1;
for(i1=0;i1<buf.bytesused;i1++)
{
if((buffers[numBufs].start[i1]==0x000000FF)&&(buffers[numBufs].start[i1+1]==0x000000C4))
{
DEBUG("huffmantablefinded! buf.bytesused=%d FFC4=%d ",buf.bytesused,i1);
break;
}
}
if(i1==buf.bytesused)printf("huffmantabledon'texist! ");
inti;
for(i=0;i<buf.bytesused;i++)
{
if((buffers[numBufs].start[i]==0x000000FF)&&(buffers[numBufs].start[i+1]==0x000000D8))break;
ptcur++;
}
DEBUG("i=%d,FF=%02x,D8=%02x ",i,buffers[numBufs].start[i],buffers[numBufs].start[i+1]);
intimagesize=buf.bytesused-i;
DEBUG("buf.bytesused=%d ",buf.bytesused);
DEBUG("imagesize=%d ",imagesize);
9. 停止视频的采集。VIDIOC_STREAMOFF
10. 关闭视频设备。close(fd);
⑼ 高手进 VB 支持 UVC摄像头吗
vb并不直接兼容uvc摄像头。
Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。是一种可用于微软自家产品开发的语言。“Visual” 指的是开发图形用户界面 (GUI) 的方法——不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象add到屏幕上的一点即可。 “Basic”指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 语言,是一种在计算技术发展历史上应用得最为广泛的语言。
Visual Basic源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建Active X控件,用于高效生成类型安全和面向对象的应用程序。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。
UVC全称为USB Video Class,即:USB视频类,是一种为USB视频捕获设备定义的协议标准。是Microsoft与另外几家设备厂商联合推出的为USB视频捕获设备定义的协议标准,已成为USB org标准之一。
如今的主流操作系统(如Windows XP SP2 and later, Linux 2.4.6 and later, MacOS 10.5 and later)都已提供UVC设备驱动,因此符合UVC规格的硬件设备在不需要安装任何的驱动程序下即可在主机中正常使用。使用UVC技术的包括摄像头、数码相机、类比影像转换器、电视棒及静态影像相机等设备。
⑽ 程序员工作保密性很高吗,上班不能带有摄像头的手机
如果你的工作是公司的核心位置,一般会让你签保密协议,至于手机也要看公司的具体要求。