鸿蒙开发记录

1.@BuilderParam装饰器

初始化方式有两种,1.父组件直接在外层定义@builder函数 2.尾随闭包形式,只支持一个BuilderParam的场景。
问题:两种初始化方式不同,在父组件内效果也不同,方式一 组件支持通用属性和方法 方式二不支持

2.关于base64图片格式转buffer

在js中将base64使用fs写到本地

const fs = require('fs');  
const path = require('path');  
  
// 假设canvas是您的Canvas对象  
const canvas = document.getElementById('myCanvas');  
  
// 将canvas转换为DataURL  
const dataURL = canvas.toDataURL();  
  
// 将DataURL转换为ArrayBuffer  
const base64Data = dataURL.split(',')[1];  
const binaryString = atob(base64Data);  
const bytes = new Uint8Array(binaryString.length);  
for (let i = 0; i < binaryString.length; i++) {  
  bytes[i] = binaryString.charCodeAt(i);  
}  
  
// 将ArrayBuffer写入本地文件  
const filePath = path.join(__dirname, 'output.png'); // 指定输出文件的路径和名称  
fs.writeFile(filePath, Buffer.from(bytes), (err) => {  
  if (err) {  
    console.error('写入文件时发生错误:', err);  
  } else {  
    console.log('文件已成功写入:', filePath);  
  }  
});

上面例子中使用到了atob()函数,但是此方法在ArkTS中不支持,实现方式如下

import buffer from '@ohos.buffer';

const base64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAjCAIAAABzZz93AAA"
let bufferdata = buffer.from(base64.spit(',')[1], 'base64');
const file = fs.open(savepath,fs.OpenMode.REAN_WRITE | fs.OpenMode.CREATE)
fs.write(file.fd,bufferdata.buffer)

3.不支持解构赋值写法

4.获取gif动图的第一帧写到本地

见demo吧

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值