var g_iCutType = "1"; var g_iCamIdx = "0"; var g_bIsIE = false; var g_iAngle = 0; var g_fileList = ""; var g_timer = null; var g_iAutoPreCode = "0"; var websocket; var connected = false; /** * 初始化webSocket连接 * @param callback * @param value * @constructor */ function ConnectServer(callback, value) { if ("WebSocket" in window) { websocket = new WebSocket(g_strWebsocketServerPath); } else if (window.WebSocket) { websocket = new WebSocket(g_strWebsocketServerPath); } else if ("MozWebSocket" in window) { websocket = new MozWebSocket(g_strWebsocketServerPath); } else { alert("浏览器版本太低!请使用Chrome、Firefox、IE10+浏览器!"); } websocket.onopen = function () { connected = true; callback(value); } websocket.onclose = function (e) { connected = false; } websocket.onmessage = function (e) { onMessage(e); } websocket.onerror = function (e) { alert("未连接websocket服务器,请确保已运行服务端!!!!"); }; } /** * 接收服务器消息 * @param e */ function onMessage(e) { var jsonObj =JSON.parse(e.data); // if(0 != jsonObj.code) // { // document.getElementById("result").innerHTML = "发生错误:" + jsonObj.message + "(" + jsonObj.code + ")"; // } // else // { // document.getElementById("result").innerHTML = "请求成功"; // } if(jsonObj.function == "video_stream") { document.getElementById("img_video_preview").src= "data:image/gif;base64," + jsonObj.image_base64; } if(jsonObj.function == "grab_image") { if(jsonObj.code != 0) { document.getElementById("result").innerHTML = "拍照失败,错误代码:" + jsonObj.code + ",返回信息 = " + jsonObj.message; } else { document.getElementById("result").innerHTML = "图像数量:" + jsonObj.image_count; var images = jsonObj.images; var iCount = jsonObj.image_count; var strImageList = ""; for(var i = 0; i < iCount; i++) { AddImageToList(jsonObj.images[i]); } } } if(jsonObj.function == "get_resolution") { if(jsonObj.code != 0) { document.getElementById("result").innerHTML = "获取分辨率失败,错误代码 = " + jsonObj.code + ",错误信息 = " + jsonObj.message; } else { var select = document.getElementById("resolution"); //获取select下拉框下所有的选项 while(select.options.length > 0) { select.remove(i); } var arrays = jsonObj.resolution.split("|"); for(var i=0; i"; // if(typeof(image.filepath) != "undefined") // { // strImageList += "
点击查看本地文件"; // } // document.getElementById("image_list_div").innerHTML = strImageList + document.getElementById("image_list_div").innerHTML; } function BeginTimer() { if(g_timer == null) { g_timer = setInterval("GetDocumentStatus()", 500); } } function StartAutoCapture() { document.getElementById("result").innerHTML = "开始自动连拍......"; var params = "{\"action\": \"start\"}";// var data = "{\"function\": \"set_cutpage\", \"params\": " + params + "}"; connected ? sendMessage(data) : ConnectServer(sendMessage, data); } function StopAutoCapture() { document.getElementById("result").innerHTML = "停止自动连拍"; var params = "{\"action\": \"stop\"}";// var data = "{\"function\": \"set_cutpage\", \"params\": " + params + "}"; connected ? sendMessage(data) : ConnectServer(sendMessage, data); } function GetDocumentStatus() { var params = "{\"action\": \"status\"}"; var data = "{\"function\": \"detect_doc\", \"params\": " + params + "}"; connected ? sendMessage(data) : ConnectServer(sendMessage, data); } /////////////////////////// 合并、清空 /////////////////////////// function CleanImageList(bShowNullImage) { g_fileList = ""; document.getElementById("result").innerHTML = ""; if(!bShowNullImage) return; /// 填充空白的示意图 var strImage = ""; var strImages = ""; for(var i = 0; i < 3; i++) { strImages += strImage; } document.getElementById("image_list_div").innerHTML = strImages; } function ShowMergedResult(data) { CleanImageList(false); if(typeof(data.image) != "undefined") { AddImageToList(data.image); document.getElementById("image_list_div").innerHTML = "
合并结果:
" + document.getElementById("image_list_div").innerHTML; } else if(typeof(data.filepath) != "undefined") { var strResult = "点击此处,查看合并结果"; document.getElementById("result").innerHTML = strResult; document.getElementById("image_list_div").innerHTML = "
" + strResult; } else { document.getElementById("result").innerHTML = "显示合并结果错误"; } /// 清理掉,下次拍照的时候,会自动清空合并的结果 g_fileList = ""; } function MergeImage(iMergeType) { document.getElementById("result").innerHTML = ""; if (g_fileList == "") { document.getElementById("result").innerHTML = "图像列表为空"; return; } var strWatermark = "{ \"pos\":\"4\", \"content\":\"图像水印\", \"transparency\":\"128\", \"fontsize\":\"80\", \"color\":\"red\" }"; var strStorageInfo = "{ \"xdpi\":\"200\", \"ydpi\":\"200\", \"jpg_quality\":\"60\" }"; var params = "{\"merge_type\":\"" + iMergeType.toString() + "\", \"margin\":\"5\", \"align\":\"1\", \"make_uuid\":\"0\", \"source_images\":[" + g_fileList + "], \"image_storage_info\":" + strStorageInfo + ", \"watermark\":" + strWatermark + "}"; var data = "{\"function\": \"merge_images\", \"params\": " + params + "}"; connected ? sendMessage(data) : ConnectServer(sendMessage, data); } function MergeTB() { MergeImage(1); } function MergeLR() { MergeImage(0); } function MergeDocument(strDocument) { document.getElementById("result").innerHTML = ""; if (g_fileList == "") { document.getElementById("result").innerHTML = "图像列表为空"; return; } var params = "[" + g_fileList + "]";// var data = "{\"function\": \"set_cutpage\", \"params\": " + params + "}"; connected ? sendMessage(data) : ConnectServer(sendMessage, data); } function MergePDF() { MergeDocument("pdf"); } function MergeOFD() { MergeDocument("ofd"); } /////////////////////////// 设备状态、关闭设备 /////////////////////////// function GetVideoStatus() { document.getElementById("result").innerHTML = ""; var params = ""; var data = "{\"function\": \"get_status\", \"params\": " + params + "}"; connected ? sendMessage(data) : ConnectServer(sendMessage, data); } /////////////////////////// 接口调用测试 /////////////////////////// function PostToService() { document.getElementById("result").innerHTML = ""; var params = document.getElementById("para_input").value; connected ? sendMessage(params) : ConnectServer(sendMessage, params); } /////////////////////////////////----------------///////////////////////////////// ///////////////////////////////// 自定义切边专区 ///////////////////////////////// /////////////////////////////////----------------///////////////////////////////// var g_startPageX; var g_startPageY; var g_startImgX; var g_startImgY; var g_bPressed; function InitForCustomCut() { g_bIsIE = IsIE(); if(g_bIsIE) //ie浏览器 { var ui = document.getElementById("img_video_preview"); ui.style.display="none"; ui.style.visibility="hidden"; showVideoOcx.StartPreview(0); } else { var ui = document.getElementById("ocx_div"); ui.style.display="none"; ui.style.visibility="hidden"; } OpenCamera(); SetAutoCut(false); reset_custom_rect(); g_iCutType = "2"; if(g_bIsIE) { showVideoOcx.SetCustomCut(true); } } function GetCustomCutPos() { var rect = showVideoOcx.GetCustomCutPos(); document.getElementById("custom_rect_input").value = rect; } function CatchGetCustomCutRect(szPos) { document.getElementById("custom_rect_input").value = szPos; } function DetectZoom () { var ratio = 0; screen = window.screen; ua = navigator.userAgent.toLowerCase(); if (window.devicePixelRatio !== undefined) { ratio = window.devicePixelRatio; } else if (~ua.indexOf("msie")) { if (screen.deviceXDPI && screen.logicalXDPI) { ratio = screen.deviceXDPI / screen.logicalXDPI; } } else if (window.outerWidth !== undefined && window.innerWidth !== undefined) { ratio = window.outerWidth / window.innerWidth; } if (ratio) ratio = Math.round(ratio * 100); return ratio; }; function custom_rect_mouse_down(event) { if(g_bPressed) return; if(event.button != 2) return; reset_custom_rect(); } function reset_custom_rect() { document.getElementById("custom_rect").style.visibility = "hidden"; document.getElementById("custom_rect").style.width = "0px"; document.getElementById("custom_rect").style.height = "0px"; g_startPageX = 0; g_startPageY = 0; g_startImgX = 0; g_startImgY = 0; } function stream_mouse_down(event) { if(g_iCutType != "2") return; if(event.button != 2) return; var iZoom = DetectZoom(); if(iZoom != 100) { alert("浏览器缩放比例(" + iZoom + ")不为100,手动切边无法正常使用"); return; } document.getElementById("custom_rect").style.position = "absolute"; document.getElementById("custom_rect").style.left = event.pageX + "px"; document.getElementById("custom_rect").style.top = event.pageY + "px"; document.getElementById("custom_rect").style.width = "0px"; document.getElementById("custom_rect").style.height = "0px"; document.getElementById("custom_rect").style.border = "3px solid #0000FF"; document.getElementById("custom_rect").style.visibility = "visible"; var steamElement = document.getElementById("img_video_preview"); g_startImgX = event.clientX - steamElement.x; g_startImgY = event.clientY - steamElement.y; g_startPageX = event.pageX; g_startPageY = event.pageY; g_bPressed = true; } function mouse_up(event) { g_bPressed = false; var rectElement = document.getElementById("custom_rect"); var steamElement = document.getElementById("img_video_preview"); var left = g_startImgX / steamElement.width; left *= 100; var top = g_startImgY / steamElement.height; top *= 100; var right = (g_startImgX + parseInt(rectElement.style.width)) / steamElement.width; right *= 100; var bottom = (g_startImgY + parseInt(rectElement.style.height)) / steamElement.height; bottom *= 100; var jsRect = "{\"left\":\"" + left.toFixed(2) + "%\", \"top\":\"" + top.toFixed(2) + "%\", \"right\":\"" + right.toFixed(2) + "%\", \"bottom\":\"" + bottom.toFixed(2) + "%\"}"; document.getElementById("custom_rect_input").value = jsRect; } function mouse_move(event) { UpdateCustomRect(); } function UpdateCustomRect() { if(!g_bPressed) return; var w = event.pageX - g_startPageX; var h = event.pageY - g_startPageY; document.getElementById("custom_rect").style.width = w + "px"; document.getElementById("custom_rect").style.height = h + "px"; } function doNothing() { window.event.returnValue=false; return false; } function GrabImage_CustomCut() { var jsCustomRect = ", \"custom_rect\":" + document.getElementById("custom_rect_input").value; var strStorageInfo = "{ \"xdpi\":\"200\", \"ydpi\":\"200\", \"jpg_quality\":\"60\" }"; var strImageProcess = "{\"cut_type\":\"" + g_iCutType + "\", \"multi_object\":\"0\", \"rotate\":\"" + g_iAngle.toString() + "\"" + jsCustomRect + "}"; var params = "{\"camidx\":\"" + g_iCamIdx.toString() + "\",\"make_uuid\":\"1\",\"image_storage_info\":" + strStorageInfo + ",\"image_process_info\":" + strImageProcess + "}"; var data = "{\"function\": \"grab_image\", \"params\": " + params + "}"; connected ? sendMessage(data) : ConnectServer(sendMessage, data); }