前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高拍仪SDK(文豆FastSnap)

高拍仪SDK(文豆FastSnap)

作者头像
用户11057749
修改2024-04-30 17:16:06
2050
修改2024-04-30 17:16:06

本sdk主要适用于bs(web)架构,可支持谷歌Chrome、火狐Firefox、360极速和安全、Edge、IE10+等支持html5的多种浏览器。

主要功能:设置裁切模式、文件格式、色彩模式、图像质量、裁边、拍照、鼠标轮滑缩放预览画面、旋转、1:1预览、适合屏幕预览、条码识别、多设备切换、分辨率选择、获取Base64 编码字符串、添加图片到PDF及合并PDF、读取身份证信息、HTTP上传文件、返回上传结果、设置色彩模式、设置去黑边、设置去底色、设置文件格式、从摄像头中识别二维码、从图片文件中识别二维码、返回二维码识别结果、添加要合并到PDF的文件、添加合并PDF的文件返回结果等,更多功能可参考开发手册。

js代码部分 首先引入js接口

代码语言:txt
复制
function ConnectServer(callback, value) {

    if ('WebSocket' in window) {
        websocket = new WebSocket(url);
    } else if (window.WebSocket) {
        websocket = new WebSocket(url);
    } else if ('MozWebSocket' in window) {
        websocket = new MozWebSocket(url);
    } else {
        alert("您浏览器版本过低!请使用360、Chrome、Firefox、Edge、IE10+浏览器!");
    }

    websocket.onopen = function (e) {
        connected = true;
        heartCheck();
        isSocketConnect = true;
        clearInterval(intervalId);
        Cam_GetDevCount();
    }
    websocket.onclose = function (e) {
        connected = false;
        isSocketConnect = true;
        reconnect();
    }
    websocket.onmessage = function (e) {
        onMessage(e);
    }
    websocket.onerror = function (e) {
        isSocketConnect = true;
        reconnect();
        alert("点击确定后若无画面,请检查【文豆FastSnap】服务是否已开启!")
    };

}

function sendMessage(jsonStr) {
    connected ? websocket.send(jsonStr) : alert("未连接websocket服务器,请确保已运行服务端!")
}


/*****************************************************************************************************************/
function cameraProduceMessage(jsonObj) {

    if (jsonObj.functionName == "VideoStream") {

        img.src = "data:image/jpg;base64," + jsonObj.imgBase64Str;
        pMainShowStartX = jsonObj.StartX;
        pMainShowStartY = jsonObj.StartY;
        img.onload = function () {

            MainContext.clearRect(0, 0, MainCanvas.width, MainCanvas.height);
            MainContext.drawImage(img, pMainShowStartX, pMainShowStartY);

            if (MainCamCutMode == 2) {
                MainContext.strokeStyle = 'blue';
                MainContext.lineWidth = 2;
                MainContext.beginPath();
                MainContext.rect(pALastX, pALastY, (pACurrentX - pALastX), (pACurrentY - pALastY));
                MainContext.closePath();
                MainContext.stroke();
            }
        }
    }

    else if (jsonObj.functionName == "VideoStream2") {
        img2.src = "data:image/jpg;base64," + jsonObj.imgBase64Str;
        pAssistShowStartX = jsonObj.StartX;
        pAssistShowStartY = jsonObj.StartY;
        img2.onload = function () {

            AssistContext.clearRect(0, 0, AssistContext.width, AssistContext.height);
            AssistContext.drawImage(img2, pAssistShowStartX, pAssistShowStartY);
        }
    }

    else if (jsonObj.functionName == "GetDevCount") {
        var Name = new Array();
        Name = jsonObj.DevName.split('|');
        GetDevCountAndNameResultCB(jsonObj.DevCount, Name);
    }

    else if (jsonObj.functionName == "GetDevResolution") {
        var resArr = new Array();
        resArr = jsonObj.Resolution.split('|');
        GetResolutionResultCB(jsonObj.ResolutionCount, resArr);
    }

    else if (jsonObj.functionName == "Cam_Open") {
        var status = jsonObj.success;
        if (status == 0) {
            isOpenMainCamera = true;
            GetCameraOnOffStatus(0);
        }
        else {
            isOpenMainCamera = false;
            GetCameraOnOffStatus(-1);
        }
    }


    else if (jsonObj.functionName == "TakeDualCameraPhoto") {
        var filePath1 = decodeURIComponent(jsonObj.filePath1);
        var filePath2 = decodeURIComponent(jsonObj.filePath2);
        GetDualCameraPhotoResultCB(jsonObj.success, filePath1, jsonObj.Abase64, filePath2, jsonObj.Bbase64);
    }

上传文件

代码语言:txt
复制
function dataURLtoFile(dataurl, filename) {

    //var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
    //bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
    var bstr = atob(dataurl);
    var n = bstr.length;
    var u8arr = new Uint8Array(n);
    while (n--) {
        u8arr[n] = bstr.charCodeAt(n);
    }

    var suffix = filename.substring(filename.length - 3, filename.length);

    if (suffix == "jpg" || suffix == "JPG")
        return new File([u8arr], filename, { type: 'image/jpg' });
    if (suffix == "png" || suffix == "PNG")
        return new File([u8arr], filename, { type: 'image/png' });
    if (suffix == "tif" || suffix == "TIF")
        return new File([u8arr], filename, { type: 'image/tiff' });
    if (suffix == "pdf" || suffix == "PDF")
        new File([u8arr], filename, { type: 'application/pdf' });

    return new File([u8arr], filename, { type: 'application/jpg' });

本文系转载,前往查看

如有侵权,请联系?cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系?cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
应用安全开发
应用安全开发(Application Security Development,下文中也叫 Xcheck)为您提供优质的代码分析服务。Xcheck 凭借优秀的算法和工程实现,能在极低的误报率和漏报率前提下,以极快的速度发现代码中存在的安全漏洞。Xcheck 采用私有化部署的模式,所以产品使用的整个生命周期,源码都不会流出公司网络,杜绝源码泄露风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com