鸿蒙base64编码字符集转化成图片文件

简介: 鸿蒙base64编码字符集转化成图片文件


/**
   * base64编码字符集转化成图片文件。
   *
   * @param base64Str
   * @param path      文件存储路径
   * @return 是否成功
   */
  async base64ToFile(base64Str:string, path:string): Promise<boolean> {
    // 需要将前缀 data:image/jpg;base64, 过滤掉
    if (base64Str.startsWith("data:image")) {
      let splitBase64Str:string[] = base64Str.split(",");
      base64Str = splitBase64Str[1];
    }
    let base64 = new  util.Base64Helper();
    let data:Uint8Array = base64.decodeSync(base64Str, util.Type.MIME);
    for (let i = 0; i < data.length; i++) {
      if (data[i] < 0) {
        //调整异常数据
        data[i] += 256;
      }
    }
    let helper = photoAccessHelper.getPhotoAccessHelper(context);
    try {
      let result_read = await PermissionHelper.getInstance().reqPermissions(PermissionHelper.READ_MEDIA)
      if (result_read) {
        let result_write = await PermissionHelper.getInstance().reqPermissions(PermissionHelper.WRITE_MEDIA)
        if (result_write) {
          // 触发后5秒内通过createAsset接口创建图片文件,5秒后createAsset权限收回。
          let uri = await helper.createAsset(photoAccessHelper_.PhotoType.IMAGE, 'jpg');
          // 使用uri打开文件,可以持续写入内容,写入过程不受时间限制
          let file = await fs.open(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
          fs.writeSync(file.fd, data);
          fs.closeSync(file);
        }
      }
      return true;
    } catch (e) {
      showToast("申请权限");
      e.printStackTrace();
    }
    return false;
  }
目录
相关文章
|
6月前
|
程序员 开发者
纯血鸿蒙来画龙!基于HarmonyOS ArkTS来操作SVG图片
大家好,龙年报喜,大地回春,作为程序员,以代码之名,表达对于龙年的祝福。本节将演示如何在基于HarmonyOS ArkTS的Image组件来实现画一条中国龙,祝大家“码”上“鸿”福到!
193 0
|
9天前
|
UED 开发者
鸿蒙next版开发:ArkTS组件通用属性(图片边框设置)
在HarmonyOS 5.0中,ArkTS提供了灵活的图片边框设置属性,使开发者可以为应用中的图片组件添加各种边框效果,提升视觉效果和用户体验。本文详细解读了ArkTS中图片边框设置的通用属性,并提供了示例代码。通过设置`borderImage`属性,可以控制边框的图源、切割宽度、边框宽度、延伸距离、平铺模式和是否填充。示例代码展示了如何使用这些属性来创建具有不同边框效果的图片组件。图片边框设置在美化界面、区分内容和增强交互方面有重要作用。
28 5
|
1月前
|
存储 人工智能 开发者
三文带你轻松上手鸿蒙的AI语音02-声音文件转文本
三文带你轻松上手鸿蒙的AI语音02-声音文件转文本
74 0
三文带你轻松上手鸿蒙的AI语音02-声音文件转文本
|
Ubuntu 网络协议 Linux
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(四)传输文件
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(四)传输文件
920 1
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(四)传输文件
|
Ubuntu Linux 开发工具
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十二)文件IO
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十二)文件IO
152 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(十二)文件IO
|
Java 开发工具
(0.2)HarmonyOS鸿蒙开发工具DevEco Studio工程文件目录结构
(0.2)HarmonyOS鸿蒙开发工具DevEco Studio工程文件目录结构
516 0
(0.2)HarmonyOS鸿蒙开发工具DevEco Studio工程文件目录结构
|
开发工具
【鸿蒙征程】一.环境配置✨超多图片很详细✨
文章目录 前言 1.下载安装 2.创建工程 3.运行Hello,world程序
【鸿蒙征程】一.环境配置✨超多图片很详细✨
|
API 数据库 开发者
用HarmonyOS ArkUI调用三方库PhotoView实现图片的联播、缩放
本文演示如果用HarmonyOS的ArkUI来调用已经上架到三方库中心的社区库。体验HarmonyOS 3最新的API 9,欢迎大家一起参与构建这个万物互联的时代
216 0
|
存储 数据管理 Java
鸿蒙开发实例|分布式文件服务
鸿蒙开发实例|分布式文件服务
401 0
鸿蒙开发实例|分布式文件服务
|
程序员
鸿蒙都发布了,不要再浑浑噩噩,赶紧来学习计算机底层编码原理(下)
哈喽,大家好,我是指北君。 曾几何时,指北君北原码反码补码绕的有点晕,网上教程也很多,详细的太难理解,容易理解的又有问题。于是乎指北君花了很长时间,肝出了这篇文章,目的是让一个小白看完都能彻底理解。 我们知道日常生活中使用的数分为整数和实数,整数的小数点固定在数的最右边,可以省略不写,而实数的小数点则不固定。在计算机中只能识别和表示“0”和“1”,而无法识别小数点,因此要想使得计算机能够处理日常使用的数据,小数点的问题是不可避免的。 关于计算机系统中实数的表示,在下篇文章中会讲解。本篇博客我们讲解的是整数在计算机系统中如何表示。
鸿蒙都发布了,不要再浑浑噩噩,赶紧来学习计算机底层编码原理(下)