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();
})//插件卸载完成时回调事件
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
目前计算的是在屏幕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
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
但是以上计算不准确。
HarmonyOS
赞
收藏 0
回答 1
相关问题
分享的图片是一个二维码,在分享的时二维码图片能否生成
1180浏览 • 1回复 待解决
有根据二维码照片识别二维码的api吗?
4633浏览 • 1回复 待解决
HarmonyOS QRCode在二维码中间加入logo图片
1073浏览 • 1回复 待解决
HarmonyOS zxing二维码
997浏览 • 1回复 待解决
HarmonyOS 二维码生成失败
794浏览 • 1回复 待解决
如何生成一张二维码并设置二维码颜色?
1246浏览 • 1回复 待解决
HarmonyOS 多个二维码扫码时使用ScanCodeRect获取二维码的位置,位置不准确
1059浏览 • 1回复 待解决
HarmonyOS 二维码生成的demo
1165浏览 • 2回复 待解决
HarmonyOS 二维码条码扫描识别
1334浏览 • 1回复 待解决
HarmonyOS 支持扫描二维码吗?
1174浏览 • 1回复 待解决
HarmonyOS如何无感知扫描二维码
1180浏览 • 1回复 待解决
HarmonyOS 如何识别网络图片的二维码信息
810浏览 • 1回复 待解决
HarmonyOS 二维码显示和导出base64
683浏览 • 1回复 待解决
Scan Kit如何识别图片中是否有二维码?
294浏览 • 0回复 待解决
HarmonyOS 如何使用camera预览摄像头,进行二维码解析
877浏览 • 1回复 待解决
HarmonyOS扫描二维码的方案是什么?
2993浏览 • 1回复 待解决
HarmonyOS 二维码图片或者resource中图片转base64,传给RN
1314浏览 • 1回复 待解决
HarmonyOS APP可以生成二维码,扫码安装
1590浏览 • 1回复 待解决
二维码扫描三方库推荐
957浏览 • 1回复 待解决
HarmonyOS生产的二维码图保存到本地图片无效
1543浏览 • 1回复 待解决
HarmonyOS h5加载二维码屏幕变亮
835浏览 • 1回复 待解决
相册Picker过滤二维码/条码失效,不显示该图片
225浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何实现一个中心带图片的二维码?因为系统自带的二维码是没有这个样式的
912浏览 • 1回复 待解决
Canvas组件实现二维码中心内嵌图标
1580浏览 • 1回复 待解决
HarmonyOS generateBarcode生成的二维码中间如何加logo
1005浏览 • 1回复 待解决
请尝试以下方案:
1、调整下XComponent的宽高设置。原代码:
删除,改为给父组件stack设置宽高。
Xcomponent宽高设置为100%,这一步可以设置相机部分为9:16。
2、改下获取的坐标。相较于原代码,区别在于使用了px2vp换算。