立即注册
查看: 288|回复: 0

[鸿蒙OS技术分享] HarmonyOS图像功能开发:图像编码开发指导

已绑定手机
发表于 2021-11-20 11:44:07 | 显示全部楼层 |阅读模式 来自 广东省深圳市
1、场景介绍
图像编码就是将PixelMap图像编码成不同存档格式图片,用于后续其他处理,比如保存、传输等。当前仅支持JPEG格式。

接口说明
ImagePacker主要用于图像编码。
图像编码类ImagePacker的主要接口:
接口名描述
create()创建图像打包器实例。
initializePacking(byte[] data, PackingOptions opts)初始化打包任务,将字节数组设置为打包后输出目的。
initializePacking(byte[] data, int offset, PackingOptions opts)初始化打包任务,将带偏移量的字节数组设置为打包后输出目的。
initializePacking(OutputStream outputStream, PackingOptions opts)初始化打包任务,将输出流设置为打包后输出目的。
addImage(PixelMap pixelmap)将PixelMap对象添加到图像打包器中。
addImage(ImageSource source)将图像数据源ImageSource中图像添加到图像打包器中。
addImage(ImageSource source, int index)将图像数据源ImageSource中指定图像添加到图像打包器中。
finalizePacking()完成图像打包任务。
release()释放对象关联的本地资源。


3、开发步骤
1)创建图像编码ImagePacker对象。
ImagePacker imagePacker = ImagePacker.create();

2)设置编码输出流和编码参数。设置format为编码的图像格式,当前支持jpeg格式。设置quality为图像质量,范围从0-100,100为最佳质量。
// 传入本地图片路径,图片格式需要与packingOptions.format相对应
FileOutputStream outputStream = null;
try {
    outputStream = new FileOutputStream("/path/to/packed.file");
} catch (FilenNotFoundException e) {
    e.printStackTrace();
}
ImagePacker.PackingOptions packingOptions = new ImagePacker.PackingOptions();
packingOptions.format = "image/jpeg";
packingOptions.quality = 90;
boolean result = imagePacker.initializePacking(outputStream, packingOptions);

3)添加需要编码的PixelMap对象,进行编码操作。
result = imagePacker.addImage(pixelMap);
long dataSize = imagePacker.finalizePacking();

4)编码输出完成后,可以进行后续处理,比如保存、传输等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表