vue项目中使用词云_如何在vue项目中使用高拍仪
项目中使用到高拍仪,用来简单的拍照片上传。
开发完后,看了下网上都是怎么集成的,全是一个版本的良田高拍仪集成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项目中使用高拍仪相关推荐
- 怎样在表格中选出同一类_如何在excel表格中同一个框选择下一行 - 卡饭网
在excel表格中怎样设置选择下拉列表? 在excel表格中怎样设置选择下拉列表? 在excel表格制作中,经常会遇到固定选项输入,例如性别( 男 女),婚否(是, 否),在制作考勤表的时候也可以利 ...
- 思源高拍仪万能驱动_动态展示和教学 良田YL1050AF高拍仪评测
高拍仪的一大特点就是灵活多样,通过不同的工业设计用于文件扫描.视频展示.多媒体教学.信息采集.体温监测等等.良田最新款YL1050AF教学高拍仪通过巧妙的设计和专业的软件,为教学.培训.实时展示等应用 ...
- 如何将一个完整项目推到码云_怎么将本地项目放到码云(gitee)上面?图文详解
原标题:怎么将本地项目放到码云(gitee)上面?图文详解 git的好处什么的,在此就不多赘述.现在很多公司都在用git了. 那么怎么将本地已经有的项目放到码云(gitee)上呢? 前置条件说明: 1 ...
- 如何提取edit control中输入的数据_如何在Power Query中提取数据——列表篇(1)
表名为列表,第一步骤名称为源 (一)从头开始提取 1. 获取列表第一个 List.First(list as list, optionaldefaultValue as any)as any 返回列表 ...
- ux设计中的各种地图_如何在UX设计中使用颜色
ux设计中的各种地图 Color is the mother tongue of the subconscious. 颜色是潜意识的母语. - Carl Jung -荣格 Color has more ...
- 如何在代码中让按钮高亮_如何在C代码中插入移位寄存器
上期内容:AI Engine到底是什么? 众所周知,标准C或C++代码是没有HDL代码的并行性和时序性的,那么如何在C代码中插入寄存器呢?Vivado HLS提供了IP库,这些IP库使得HLS可直接从 ...
- excel中 复制工作表_如何在Excel 2013中轻松移动或复制工作表
excel中 复制工作表 There may be times when you want to create a new Excel worksheet based on an existing w ...
- 怎样在dos窗口中启动mysql服务器_如何在dos命令中启动mysql或sql server 服务器的一些操作...
========================dos命令启动mysql或者sql srever 的步骤================= 一.dos命令启动mysql 1.进入dos命令窗口 2.启 ...
- scala中map添加值_如何在Scala Map中反转键和值
scala中map添加值 A Map is a data structure that stores data as key: value pair. 映射是一种将数据存储为键:值对的数据结构. Sy ...
- mvc中嵌入ssrs报表_如何在SSRS报表中过滤多维OLAP多维数据集
mvc中嵌入ssrs报表 Ever since the early days of my career, SQL Server Reporting Services (SSRS) has been o ...
最新文章
- mysql limit offset
- 【已解决】mysql连接出错:ERROR 1040 (HY000): Too many connections
- 在AngularJS控制器之间共享数据
- java小知识_java小知识点简单回顾
- 如何初始化结构体中的指针结构体_跟我一起学习go语言(五)golang中结构体的初始化方法...
- 在虚拟机中安装Windows Server 2008企业版
- The Preliminary Contest for ICPC Asia Nanjing 2019ICPC南京网络赛
- 怎么清理句柄_JAR文件句柄:混乱后清理!
- (二)单元测试利器 JUnit 4
- 【牛客 - 289K】这是一个沙雕题III(贪心,思维枚举,技巧trick,计算上下界)
- python中的画布背景设置_教你用python画图—Turtle详细教程
- 【Kafka】kafka Current offset xxx for partition xxx out range
- 好久不写日志了,现在开始,好好写了。。
- python程序设计实验七_Python程序设计实验报告七:组合数据类型
- myelicpse无法连接mysql_myeclipse连接不到mysql
- php 文件上传框架,Laravel框架实现文件上传的方法分析
- 腾讯的bugly的更新和热更新
- doapk java环境_关于有的Apk无法反编译的探究
- 一篇文章搞懂富人的内在逻辑|普通人如何改变命运?【财富02】
- 十大简单易用的免费在线HTML编辑器