项目中使用到高拍仪,用来简单的拍照片上传。

开发完后,看了下网上都是怎么集成的,全是一个版本的良田高拍仪集成vue项目

把demo中的东西直接copy来,就用上了。

这样在原生h5项目中使用无可厚非,但是放到vue项目中,直接操作dom,还是不太习惯。

自己修改了下,顺便整理下过程。

最终效果如下:

image.png

首先安装驱动:

image.png

逐个安装,然后替换video.flt就是了。

连上高拍仪,demoOne走起,确认硬件没问题能用。 主要依赖的是qwebchannel.js。

image.png

既然要集成,首要任务就是引入qwebchannel.js,看了下代码,做的还是比较银杏的,输出了“QWebChannel”。可以直接用了。

image.png

拿来直接引入

import { QWebChannel } from '@/utils/qwebchannel.js'

布局修改

  • 图片质量:

    @change="priResolutionChange">

    :key="index"

    :label="item.label"

    :value="item.value">

  • 图片尺寸:

    @change="setScanSizeChange">

  • 左转

    右转

    拍照

点击图片查看大图

其中,重要是获取图片质量列表,设置图片尺寸,控制拍摄内容左转、右转,以及拍照。

主要是初始化方法openSocket,

data () {

return {

baseUrl: '',

socket: null,

dialog: null,

setScanSize: 'setScanSize_A4',

priResolution: '1280 * 1024',

priResolutionList: [],

send_priImgData: '',

send_priPhotoData: '',

}

},

....

openVisible () {

this.baseUrl = 'ws://127.0.0.1:12345'

this.openSocket()

},

openSocket () {

let self = this

let socket = new WebSocket(this.baseUrl)

socket.onclose = function () {

console.error('web channel closed')

}

socket.onerror = function (error) {

console.error('web channel error: ' + error)

}

socket.onopen = function () {

new QWebChannel(socket, function (channel) {

// 获取注册的对象

self.dialog = channel.objects.dialog

// 网页关闭函数

window.onbeforeunload = function () {

self.dialog.get_actionType('closeSignal')

}

window.onunload = function () {

self.dialog.get_actionType('closeSignal')

}

// 设置图片尺寸

self.dialog.get_actionType(self.setScanSize)

// 服务器返回消息

self.dialog.sendPrintInfo.connect(function (message) {

console.log(message)

if (message.indexOf('savePhoto_success:') >= 0) {

}

// 获取到图片质量列表。(可能存在取不到的情况)

if (message.indexOf('priResolution:') >= 0) {

message = message.substr(14)

self.priResolutionList.push({

label: message,

value: message

})

if (self.priResolutionList.length > 3) {

self.priResolution = self.priResolutionList[1].value

}

console.log(self.priResolutionList)

console.log(self.priResolution)

}

})

// 接收图片流用来展示,多个,较小的base64,主头数据

self.dialog.send_priImgData.connect(function (message) {

self.send_priImgData = 'data:image/jpg;base64,' + message

})

// 接收拍照base64,主头数据

self.dialog.send_priPhotoData.connect(function (message) {

self.send_priPhotoData = 'data:image/jpg;base64,' + message

})

// 网页加载完成信号

self.dialog.html_loaded('one')

self.dialog.set_configValue('set_savePath:C:/eloamFile')

// 检查图片质量列表能否获取到,假如没取到,就(反初始化,在初始化)

if (self.priResolutionList.length == 0) {

self.reloadSignal()

}

})

}

},

// 设置图片尺寸

setScanSizeChange () {

this.dialog.get_actionType(this.setScanSize)

},

// 重新初始化 为了获取图片质量

reloadSignal () {

this.dialog.get_actionType('closeSignal')

setTimeout(() => {

this.dialog.html_loaded('one')

})

},

// 切换图片质量

priResolutionChange () {

console.log(this.priResolution)

this.dialog.devChanged('primaryDev_:' + this.priResolution)

},

handlePhoto (type) {

console.log(type)

switch (type) {

case 'photo':

this.dialog.photoBtnClicked('primaryDev_')

this.dialog.get_actionType('savePhotoPriDev')

break

case 'left':

this.dialog.get_actionType('rotateLeft')

break

case 'right':

this.dialog.get_actionType('rotateRight')

break

case 'close':

break

}

}

完事。

至于上传,这里只能传base64,不能通过文件流传,虽然高拍仪拍照后都是保存在本地了。但是不能静默的取到文件流,除非打开图片所在位置,选择上传。

vue项目中使用词云_如何在vue项目中使用高拍仪相关推荐

  1. 怎样在表格中选出同一类_如何在excel表格中同一个框选择下一行 - 卡饭网

    在excel表格中怎样设置选择下拉列表? 在excel表格中怎样设置选择下拉列表? 在excel表格制作中,经常会遇到固定选项输入,例如性别( 男  女),婚否(是, 否),在制作考勤表的时候也可以利 ...

  2. 思源高拍仪万能驱动_动态展示和教学 良田YL1050AF高拍仪评测

    高拍仪的一大特点就是灵活多样,通过不同的工业设计用于文件扫描.视频展示.多媒体教学.信息采集.体温监测等等.良田最新款YL1050AF教学高拍仪通过巧妙的设计和专业的软件,为教学.培训.实时展示等应用 ...

  3. 如何将一个完整项目推到码云_怎么将本地项目放到码云(gitee)上面?图文详解

    原标题:怎么将本地项目放到码云(gitee)上面?图文详解 git的好处什么的,在此就不多赘述.现在很多公司都在用git了. 那么怎么将本地已经有的项目放到码云(gitee)上呢? 前置条件说明: 1 ...

  4. 如何提取edit control中输入的数据_如何在Power Query中提取数据——列表篇(1)

    表名为列表,第一步骤名称为源 (一)从头开始提取 1. 获取列表第一个 List.First(list as list, optionaldefaultValue as any)as any 返回列表 ...

  5. ux设计中的各种地图_如何在UX设计中使用颜色

    ux设计中的各种地图 Color is the mother tongue of the subconscious. 颜色是潜意识的母语. - Carl Jung -荣格 Color has more ...

  6. 如何在代码中让按钮高亮_如何在C代码中插入移位寄存器

    上期内容:AI Engine到底是什么? 众所周知,标准C或C++代码是没有HDL代码的并行性和时序性的,那么如何在C代码中插入寄存器呢?Vivado HLS提供了IP库,这些IP库使得HLS可直接从 ...

  7. excel中 复制工作表_如何在Excel 2013中轻松移动或复制工作表

    excel中 复制工作表 There may be times when you want to create a new Excel worksheet based on an existing w ...

  8. 怎样在dos窗口中启动mysql服务器_如何在dos命令中启动mysql或sql server 服务器的一些操作...

    ========================dos命令启动mysql或者sql srever 的步骤================= 一.dos命令启动mysql 1.进入dos命令窗口 2.启 ...

  9. scala中map添加值_如何在Scala Map中反转键和值

    scala中map添加值 A Map is a data structure that stores data as key: value pair. 映射是一种将数据存储为键:值对的数据结构. Sy ...

  10. mvc中嵌入ssrs报表_如何在SSRS报表中过滤多维OLAP多维数据集

    mvc中嵌入ssrs报表 Ever since the early days of my career, SQL Server Reporting Services (SSRS) has been o ...

最新文章

  1. mysql limit offset
  2. 【已解决】mysql连接出错:ERROR 1040 (HY000): Too many connections
  3. 在AngularJS控制器之间共享数据
  4. java小知识_java小知识点简单回顾
  5. 如何初始化结构体中的指针结构体_跟我一起学习go语言(五)golang中结构体的初始化方法...
  6. 在虚拟机中安装Windows Server 2008企业版
  7. The Preliminary Contest for ICPC Asia Nanjing 2019ICPC南京网络赛
  8. 怎么清理句柄_JAR文件句柄:混乱后清理!
  9. (二)单元测试利器 JUnit 4
  10. 【牛客 - 289K】这是一个沙雕题III(贪心,思维枚举,技巧trick,计算上下界)
  11. python中的画布背景设置_教你用python画图—Turtle详细教程
  12. 【Kafka】kafka Current offset xxx for partition xxx out range
  13. 好久不写日志了,现在开始,好好写了。。
  14. python程序设计实验七_Python程序设计实验报告七:组合数据类型
  15. myelicpse无法连接mysql_myeclipse连接不到mysql
  16. php 文件上传框架,Laravel框架实现文件上传的方法分析
  17. 腾讯的bugly的更新和热更新
  18. doapk java环境_关于有的Apk无法反编译的探究
  19. 一篇文章搞懂富人的内在逻辑|普通人如何改变命运?【财富02】
  20. 十大简单易用的免费在线HTML编辑器

热门文章

  1. 快速学习-视频播放器解决方案
  2. 【GlobalMapper精品教程】005:影像拼接与裁切(分幅)作业案例教程
  3. 相似度计算方法(一) 皮尔森相关系数
  4. 64位 java 数据类型_java 数据类型
  5. 目标检测---搬砖一个ALPR自动车牌识别的环境
  6. 九联UNT401H零配置、芒果、南传、百视通等版本通刷固件及教程
  7. python数据挖掘与分析心得体会_Python数据挖掘——文本分析
  8. [Android] 选项卡组件TabHost
  9. windows环境下安装selenium
  10. sql——手机号码归属地、身份证前六位归属地、省市区级联