本人是个小白,最近接到了开发高拍仪的任务记录一下。

使用高拍仪先从官方网站上下载对应的插件http://www.eloam.cn/down/2014-8-7/702.html

下载完毕之后安装,然后会有个开发手册里面有例子和doc开发文档,资深技术开发就可以完成了,然而我是个小白需要时间研究,我记录一些比较重要的吧。

<!--这两个分别是高拍仪屏幕和照片容器  -->
<object id="view1" type="application/x-eloamplugin" width="786" height="400" name="view"></object>
<object id="thumb1" type="application/x-eloamplugin" width="786" height="150" name="thumb"></object>
<!--这三个select是给高拍仪设置初始化属性用的分辨率、设备名称啥的,如果不用这些标签在js 里面需要写死值-->
<select id="device" style="width: 90px;display:none;" name="device" onchange="changeDev()" ></select> 
<select id="subType" style="width: 90px;display:none;" name="subType" onchange="changesubType()"></select> 
<select id="selRes" style="width: 90px;display:none;" name="selRes"></select>
<!-- 还有些没有明白的问题也说下吧,这些是兼容一些浏览器不加上有时会错,没搞懂!-->
<meta http-equiv="X-UA-Compatible" content="IE=8" >
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >

html其实就是这么多没什么其他的,然后我是放置在模态框里,加载的时候会有样式问题。我解决是在模态框上加上style="postion:fixed",就可以正常加载了。

重点部分就是js部分。前面介绍过我是用模态框做的就是在模态框加载完毕后加载load()事件,不是模态框的话直接body 上使用onload()事件就行调用初始化方法。

$("#myGpyModal").modal();
$('#myGpyModal').on('shown.bs.modal', 
function () {
Load();
});
});

改动不大的方法,在例子里面有我这边就不贴了,这里面我的改动是在load之前先把镜头反初始化掉Unload(),这样如果在没有正确关闭的情况下可以使用。拍照方法的话我改的比较多。

function Scan()
		{	
		var date = new Date();
		var yy = date.getFullYear().toString();
		var mm = (date.getMonth() + 1).toString();
		var dd = date.getDate().toString();
		var hh = date.getHours().toString();
		var nn = date.getMinutes().toString();
		var ss = date.getSeconds().toString();
		var mi = date.getMilliseconds().toString();
                //这是保存的文件名。也是路径
		var Name = "D:\\gpyFile/" + yy + mm + dd + hh + nn + ss + mi + ".jpg";
                //这就是创建图片的方法
		var img = plugin().Video_CreateImage(Video, 0, view().View_GetObject());
		var bSave = plugin().Image_Save(img, Name, 0);
               //将图片放入图像列表,因为我要合成pdf 必须要放入,这个确定是拍的都放进去可选不大
		var alList = plugin().ImageList_Add(Image_List,img);
		if (bSave)
		{
		view().View_PlayCaptureEffect();
                //添加到图像的显示容器中
		thumb().Thumbnail_Add(Name);
                //获取容器图片的数量
		var imgCount = thumb().Thumbnail_GetCount(); 
		for(var i=0;i<=imgCount;i++){
                //循环遍历选中
		thumb().Thumbnail_SetCheck(i,true); 
		}
		}
		plugin().Image_Release(img);
		}

 下面就是上传的部分其实有很多种上传,搞不清楚,我使用的是用容器上传的。

//这个是用容器上传的他内部判定勾选的图片上传,serverAddress 是你的服务器方法可以携带参数
var http =thumb().Thumbnail_HttpUploadCheckImage(serverAddress ,1);
//这个是获得服务器返回的值,这个有一点坑爹,这个是多图上传的,他内部是一个一个发送的就是说你的方法是一个一个进入的,有多少文件进入多少次,相对的也会返回多个数据,但是他内部也有容器接受,然后以##分隔,这个处理起来json需要split处理。
var htInfo = thumb().Thumbnail_GetHttpServerInfo();


//这个方法其实更使用上传pdf和img
var Http_UploadImageFile(var http, var fileName, var remoteName);
//这里的http 和上面的不一样上面的就是返回1或0;这里是创建一个http
//fileName本地路径名字,remoteName上传到服务器的图片名字
var http = plugin().Global_CreateHttp("这里面写你的方法") ;
//这里返回的就是正常的没有经过处理的数据
var infoServer = plugin().Http_GetServerInfo(http);


//注:如果内部有拦截用户登陆的没有登陆的话,可能获取不到session,需要在url加上?jsessionId。
//我chrome 遇到了这个问题

合成pdf.

//合成pdfImage_List是我拍照时候创建的容器,这个2很关键不改的话有可能进不了方法
//具体大神自己研究NamePdf的名字
var bsavepdf = plugin().ImageList_SaveToPDF(Image_List,2,NamePdf, 0);
//将图像列表清空
plugin().ImageList_Clear(Image_List);

注:记录帖,有什么错误多多指正。

再注:高拍仪在chrome44版本32位能运行!以上不行。