HarmonyOS鸿蒙Next中图片地址如何转base64

HarmonyOS鸿蒙Next中图片地址如何转base64 图片地址如何转base64 (file://media/Photo/12/IMG_1721704847_011/IMG_20240723_111907.jpg)

5 回复

调用此方法就可以了.

  1. 将图片转换为buffer
  2. 将buffer 转换为base64字符串.
// 根据image uri 转换为 base64
async transitionImageUri2Base64(uri: string) {
  // 读取图片为buffer
  const file = fs.openSync(uri, fs.OpenMode.READ_ONLY);
  this.photoSize = fs.statSync(file.fd).size;
  console.info('Photo Size: ' + this.photoSize);
  let imageArraybuffer = new ArrayBuffer(this.photoSize);
  fs.readSync(file.fd, imageArraybuffer);
  fs.closeSync(file);

  let buf: buffer.Buffer = buffer.from(imageArraybuffer);
  // ps: data:image/jpg 要根据实际情况调整.
  const base64 = 'data:image/jpg;base64,' + buf.toString('base64', 0, buf.length);
  // 放到image 就可以直接显示出来图片了.
  this.imageBase64 = base64
  console.info(TAG, 'base64: ' + base64);
}

更多关于HarmonyOS鸿蒙Next中图片地址如何转base64的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


图片怎么转二进制文件啊,

图片怎么转二进制文件啊,

转二进制做什么?
转换为pixmap ?

在HarmonyOS鸿蒙Next中,将图片地址转换为Base64可以通过Image组件和ImageSource类实现。首先,使用ImageSource.createFromUri方法从图片地址创建ImageSource对象。然后,通过ImageSource.getPixelMap方法获取PixelMap对象,最后使用PixelMapgetPixelBytes方法获取像素数据,并将其转换为Base64编码。具体代码如下:

import { ImageSource } from '@ohos.multimedia.image';
import { Base64 } from '@ohos.util';

async function imageUrlToBase64(imageUrl: string): Promise<string> {
  const imageSource = await ImageSource.createFromUri(imageUrl);
  const pixelMap = await imageSource.createPixelMap();
  const pixelBytes = pixelMap.getPixelBytes();
  return Base64.encodeFromUint8Array(pixelBytes);
}

该方法返回图片的Base64编码字符串。

在HarmonyOS鸿蒙Next中,将图片地址转换为Base64可以通过以下步骤实现:

  1. 读取图片文件:使用ohos.file.fs模块的File类读取图片文件。
  2. 转换为字节数组:将图片文件内容读取为字节数组。
  3. Base64编码:使用ohos.util.Base64类将字节数组编码为Base64字符串。

示例代码如下:

import fs from '@ohos.file.fs';
import base64 from '@ohos.util.base64';

let filePath = 'your_image_path.jpg';
let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
let buffer = new ArrayBuffer(fs.statSync(filePath).size);
fs.readSync(file.fd, buffer);
let base64Str = base64.encodeToString(new Uint8Array(buffer), false);
fs.closeSync(file);
console.log(base64Str);
回到顶部