HarmonyOS 鸿蒙Next卡证识别成功怎么读取证件的图片
HarmonyOS 鸿蒙Next卡证识别成功怎么读取证件的图片 使用CardRecognition组件识别身份证成功,信息中携带的证件图片url怎么读取文件数据,读取的时候一直提示文件不存在
提供下代码和报错截图吧。
更多关于HarmonyOS 鸿蒙Next卡证识别成功怎么读取证件的图片的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我使用ImagePacker读到了,
由于提供的HTML内容为空或无法读取,无法进行转换。请提供有效的HTML内容以便进行转换。
提单问过了,华为工程师恢复这是beta5系统问题,升级手机系统到60就可以了。
楼主解决了吗,我也遇到同样的问题
我用下面的方法可以读取到
static async readImageFile(filePath: string) {
const file = fs.openSync(filePath, fs.OpenMode.READ_ONLY)
// path为已获得的沙箱路径
const fd = file?.fd;
const imageSource = image.createImageSource(fd)
let stat: fs.Stat = await fs.stat(fd)
let quality: number = stat.size > 256 * 1024 ? Math.ceil((256 * 1024 / stat.size) * 100) : 98
const imagePacker = image.createImagePacker()
let packerOptions: image.PackingOption = {
format: 'image/jpeg',
quality: quality
}
let data: ArrayBuffer = await imagePacker.packing(imageSource, packerOptions)
// 1. 获取的数据转换为base64
let unit8Array = new Uint8Array(data)
let imgBase64 = YTBase64Util.encode(unit8Array)
return imgBase64
}
期待HarmonyOS能在未来推出更多针对企业用户的解决方案。
this.myFile1 = await fs.openSync(params.cardInfo?.back?.cardImageUri, fs.OpenMode.READ_ONLY)
let context = getContext(this);
let pathDir = context.filesDir;
hilog.info(0x0001, TAG, params params cardInfo pathDir: ${JSON.stringify(pathDir)}
)
// 照片都拷贝进应用沙箱
fs.copyFileSync(this.myFile?.fd, pathDir + ‘/wy.jpeg’);
// 取人像面转换成可显示的类型
let imageSourceApi = image.createImageSource(pathDir + ‘/wy.jpeg’);
let pixelMap: image.PixelMap = imageSourceApi.createPixelMapSync();
this.pixelMap = pixelMap
我用下面的方法可以读取到
static async readImageFile(filePath: string) {
const file = fs.openSync(filePath, fs.OpenMode.READ_ONLY)
// path为已获得的沙箱路径
const fd = file?.fd;
const imageSource = image.createImageSource(fd)
let stat: fs.Stat = await fs.stat(fd)
let quality: number = stat.size > 256 * 1024 ? Math.ceil((256 * 1024 / stat.size) * 100) : 98
const imagePacker = image.createImagePacker()
let packerOptions: image.PackingOption = {
format: 'image/jpeg',
quality: quality
}
let data: ArrayBuffer = await imagePacker.packing(imageSource, packerOptions)
// 1. 获取的数据转换为base64
let unit8Array = new Uint8Array(data)
let imgBase64 = YTBase64Util.encode(unit8Array)
return imgBase64
}
在HarmonyOS(鸿蒙)系统中,若卡证识别已成功并希望读取证件的图片,通常涉及以下几个步骤,这些步骤基于鸿蒙系统对图像处理和识别的原生支持:
-
获取识别结果:首先,确保卡证识别模块已经成功识别出证件信息,并返回了包含证件图片的识别结果。这通常是通过调用鸿蒙系统提供的API接口实现的。
-
提取图片数据:从识别结果中提取出证件图片的数据部分。这部分数据可能是以Base64编码的字符串形式存在,也可能是直接以二进制图片数据的形式返回。
-
解码图片:如果图片数据是以Base64编码的,需要将其解码为二进制数据。鸿蒙系统提供了相应的解码API,可以直接使用。
-
显示或保存图片:解码后的图片数据可以直接用于显示(如在应用界面上展示)或保存到本地存储中。鸿蒙系统提供了丰富的UI组件和文件操作API,可以方便地实现这些功能。
请注意,具体实现细节可能因鸿蒙系统版本、开发环境和具体需求而有所不同。如果以上步骤无法直接解决你的问题,可能是由于特定场景或版本差异导致的。此时,建议直接查阅鸿蒙系统的官方文档或联系官网客服获取更具体的帮助。
如果问题依旧没法解决请联系官网客服,官网地址是: https://www.itying.com/category-93-b0.html