HarmonyOS 二维码在图片和预览界面中的坐标
自定义相机使用双路预览,通过ScanKit中detectBarcode.decodeImage方法对ImageReceiver获取的图片进行扫码,目前得到二维码坐标。怎样转换成在图片中的坐标和界面上(XComponent)的坐标?
目前设置的制定相机的profile为1920*1080XComponent设置如下,XComponent设置的是全屏宽度,目前根据文档,计算出来还是有偏差。
XComponent({
//组件的唯一标识
id: 'LOXComponent',
// surface:EGL/OpenGLES和媒体数据写入 component:开发者定制绘制内容
type: XComponentType.SURFACE,
//应用Native层编译输出动态库名称,仅XComponent类型为"surface"时有效
libraryname: 'LOSingleXComponent',
//给组件绑定一个控制器,通过控制器调用组件方法,仅XComponent类型为"surface"时有效
controller: this.mXComponentController
})//插件加载完成时回调事件
.onLoad(() => {
this.mXComponentController.setXComponentSurfaceSize({ surfaceWidth: 1920, surfaceHeight:1080 });
// 获取Surface ID
this.xComponentSurfaceId = this.mXComponentController.getXComponentSurfaceId();
})//插件卸载完成时回调事件
目前计算的是在屏幕XComponent中的点并绘制,主要代码:
let scaleRadio = display.getDefaultDisplaySync().width * 9 / 16 / 1080
console.log("我的变换大小" + scaleRadio)
console.log(display.getDefaultDisplaySync().width.toString())
console.log(display.getDefaultDisplaySync().height.toString())
let bottomRight: Point = {
x: (1080 - singleScanResult.cornerPoints![0].y) * scaleRadio,
y: (singleScanResult.cornerPoints![0].x) * scaleRadio
}
// 左下角(x, y):(1080 - cornerPoints[1].y, cornerPoints[1].x)
let bottomLeft: Point = {
x: (1080 - singleScanResult.cornerPoints![1].y) * scaleRadio,
y: (singleScanResult.cornerPoints![1].x) * scaleRadio
}
// 左上角(x, y):(1080 - cornerPoints[2].y, cornerPoints[2].x)
let topLeft: Point = {
x: (1080 - singleScanResult.cornerPoints![2].y) * scaleRadio,
y: (singleScanResult.cornerPoints![2].x * scaleRadio)
}
// 右上角(x, y):(1080 - cornerPoints[3].y, cornerPoints[3].x)
let topRight: Point = {
x: (1080 - singleScanResult.cornerPoints![3].y) * scaleRadio,
y: singleScanResult.cornerPoints![3].x * scaleRadio
}
但是以上计算不准确。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
分享的图片是一个二维码,在分享的时二维码图片能否生成
560浏览 • 1回复 待解决
有根据二维码照片识别二维码的api吗?
3980浏览 • 1回复 待解决
HarmonyOS QRCode在二维码中间加入logo图片
292浏览 • 1回复 待解决
HarmonyOS zxing二维码
271浏览 • 1回复 待解决
HarmonyOS 二维码生成失败
100浏览 • 1回复 待解决
如何生成一张二维码并设置二维码颜色?
700浏览 • 1回复 待解决
HarmonyOS 多个二维码扫码时使用ScanCodeRect获取二维码的位置,位置不准确
330浏览 • 1回复 待解决
HarmonyOS 二维码条码扫描识别
782浏览 • 1回复 待解决
HarmonyOS 二维码生成的demo
456浏览 • 2回复 待解决
HarmonyOS 支持扫描二维码吗?
576浏览 • 1回复 待解决
HarmonyOS如何无感知扫描二维码
539浏览 • 1回复 待解决
HarmonyOS 如何识别网络图片的二维码信息
106浏览 • 1回复 待解决
HarmonyOS 二维码显示和导出base64
178浏览 • 1回复 待解决
HarmonyOS 如何使用camera预览摄像头,进行二维码解析
221浏览 • 1回复 待解决
HarmonyOS APP可以生成二维码,扫码安装
891浏览 • 1回复 待解决
HarmonyOS扫描二维码的方案是什么?
2298浏览 • 1回复 待解决
HarmonyOS 二维码图片或者resource中图片转base64,传给RN
838浏览 • 1回复 待解决
二维码扫描三方库推荐
378浏览 • 1回复 待解决
HarmonyOS h5加载二维码屏幕变亮
250浏览 • 1回复 待解决
HarmonyOS生产的二维码图保存到本地图片无效
868浏览 • 1回复 待解决
Canvas组件实现二维码中心内嵌图标
1052浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现一个中心带图片的二维码?因为系统自带的二维码是没有这个样式的
362浏览 • 1回复 待解决
HarmonyOS generateBarcode生成的二维码中间如何加logo
310浏览 • 1回复 待解决
HarmonyOS 从相册获取图片进行二维码和条形码扫描能力相关问题
487浏览 • 1回复 待解决
HarmonyOS有没有生成二维码(二维码中间自定义图片)可以转pixelMap的官方api,还是只能用三方库zxing实现
700浏览 • 1回复 待解决
请尝试以下方案:
1、调整下XComponent的宽高设置。原代码:
删除,改为给父组件stack设置宽高。
Xcomponent宽高设置为100%,这一步可以设置相机部分为9:16。
2、改下获取的坐标。相较于原代码,区别在于使用了px2vp换算。