/**
 * 在线图片地址转base64
 * @param url
 * @returns
 */
async function imageUrlToBase64(url: string): Promise<string> {
  return new Promise((resolve, reject) => {
    // 创建HTTP请求
    const request = http.createHttp();
    // 设置请求方法为GET
    request.request(url, { method: http.RequestMethod.GET }, (err, data) => {
      if (err) {
        reject(err);
        return;
      }
      // 处理响应数据(获取ArrayBuffer)
      if (data.responseCode === 200 && data.result) {
        console.log("imageUrlToBase64", data.result)
        const arrayBuffer: ArrayBuffer = data.result as ArrayBuffer;
        // ArrayBuffer转Uint8Array
        const uint8Array = new Uint8Array(arrayBuffer);
        let base64 = "data:image/jpeg;base64," + new util.Base64Helper().encodeToStringSync(uint8Array)
        console.log("imageUrlToBase64 base64 data", base64)
        resolve(base64);
      } else {
        reject('请求失败或非图片数据');
      }
      // 关闭请求
      request.destroy();
    });
  });
}

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐