鸿蒙开发-图片管理

本文详细介绍了鸿蒙系统中的图片开发过程,包括图片的获取、解码、处理(如旋转、缩放等)、编码为不同格式以及选择和下载图片的方法,使用了ImageSource、PixelMap、ImagePacker等关键类和API。
摘要由CSDN通过智能技术生成

1.图片开发概述

应用开发中的图片开发是对图片像素数据进行解析、处理、构造的过程,达到目标图片效果,主要涉及图片解码、图片处理、图片编码等。

  1. 获取图片:通过应用沙箱等方式获取原始图片。
  2. 创建ImageSource实例:ImageSource是图片解码出来的图片源类,用于获取或修改图片相关信息。
  3. 图片解码:通过ImageSource解码生成PixelMap。
  4. 图片处理:对PixelMap进行处理,更改图片属性实现图片的旋转、缩放、裁剪等效果。然后通过Image组件显示图片。
  5. 图片编码:使用图片打包器类ImagePacker,将PixelMap或ImageSource进行压缩编码,生成一张新的图片。

2.图片解码

图片解码指将所支持格式的存档图片解码成统一的PixelMap,以便在应用或系统中进行图片显示或图片处理。鸿蒙当前支持的存档图片格式包括JPEG、PNG、GIF、RAW、WebP、BMP、SVG。

  • 全局导入Image模块
import image from '@ohos.multimedia.image';
  • 通过文件路径创建ImageSource
const context : Context = getContext(this);

const filePath : string = context.cacheDir + '/test.jpg';

// path为已获得的沙箱路径

const imageSource : image.ImageSource = image.createImageSource(filePath);
  • 通过文件描述符fd创建ImageSource
const context = getContext(this);

const filePath = context.cacheDir + '/test.jpg';

const file : fs.File = fs.openSync(filePath, fs.OpenMode.READ_WRITE);

const fd : number = file?.fd;

// fd为已获得的文件描述符

const imageSource : image.ImageSource = image.createImageSource(fd);
  • 通过缓冲区数组创建ImageSource
const context : Context = getContext(this);

// 获取resourceManager资源管理器

const resourceMgr : resourceManager.ResourceManager = context.resourceManager;



resourceMgr.getRawFileContent('test.jpg').then((fileData : Uint8Array) => {

console.log("Succeeded in getting RawFileContent")

// 获取图片的ArrayBuffer

const buffer = fileData.buffer;

}).catch((err : BusinessError) => {

console.error("Failed to get RawFileContent")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值