codecamp

鸿蒙OS 图像编码开发指导

场景介绍

图像编码就是将 PixelMap 图像编码成不同存档格式图片,用于后续其他处理,比如保存、传输等。当前仅支持 JPEG 格式。

接口说明

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() 释放对象关联的本地资源。

开发步骤

  1. 创建图像编码 ImagePacker 对象。

   ImagePacker imagePacker = ImagePacker.create();

  1. 设置编码输出流和编码参数。设置 format 为编码的图像格式,当前支持 jpeg 格式。设置 quality 为图像质量,范围从 0-100,100 为最佳质量。

   FileOutputStream outputStream = new FileOutputStream("/path/to/packed.file");
   ImagePacker.PackingOptions packingOptions = new ImagePacker.PackingOptions();
   packingOptions.format = "image/jpeg";
   packingOptions.quality = 90;
   boolean result = imagePacker.initializePacking(outputStream, packingOptions);

  1. 添加需要编码的 PixelMap 对象,进行编码操作。

   result = imagePacker.addImage(pixelMap);
   long dataSize = imagePacker.finalizePacking();

  1. 编码输出完成后,可以进行后续处理,比如保存、传输等。
鸿蒙OS 图像解码开发指导
鸿蒙OS 位图操作开发指导
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

鸿蒙OS 开发

鸿蒙OS 术语

鸿蒙OS Java API参考

鸿蒙OS ohos.aafwk.ability

鸿蒙OS ohos.aafwk.abilityjet.activedata

鸿蒙OS ohos.aafwk.content

鸿蒙OS java.lang

鸿蒙OS java.Util

鸿蒙OS java.Util class

鸿蒙OS ohos.data.dataability

鸿蒙OS ohos.data.dataability class

鸿蒙OS ohos.agp.components

鸿蒙OS ohos.agp.components interface

鸿蒙OS ohos.agp.components class

鸿蒙OS ohos.global.configuration

鸿蒙OS java.io

鸿蒙OS ohos.data.resultset

鸿蒙OS ohos.data.resultset interface

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }