鴻蒙OS 圖像編碼開發(fā)指導

2020-09-18 14:18 更新

場景介紹

圖像編碼就是將 PixelMap 圖像編碼成不同存檔格式圖片,用于后續(xù)其他處理,比如保存、傳輸?shù)?。當前僅支持 JPEG 格式。

接口說明

ImagePacker 主要用于圖像編碼。

接口名 描述
create() 創(chuàng)建圖像打包器實例。
initializePacking(byte[] data, PackingOptions opts) 初始化打包任務(wù),將字節(jié)數(shù)組設(shè)置為打包后輸出目的。
initializePacking(byte[] data, int offset, PackingOptions opts) 初始化打包任務(wù),將帶偏移量的字節(jié)數(shù)組設(shè)置為打包后輸出目的。
initializePacking(OutputStream outputStream, PackingOptions opts) 初始化打包任務(wù),將輸出流設(shè)置為打包后輸出目的。
addImage(PixelMap pixelmap) 將 PixelMap 對象添加到圖像打包器中。
addImage(ImageSource source) 將圖像數(shù)據(jù)源 ImageSource 中圖像添加到圖像打包器中。
addImage(ImageSource source, int index) 將圖像數(shù)據(jù)源 ImageSource 中指定圖像添加到圖像打包器中。
finalizePacking() 完成圖像打包任務(wù)。
release() 釋放對象關(guān)聯(lián)的本地資源。

開發(fā)步驟

  1. 創(chuàng)建圖像編碼 ImagePacker 對象。

   ImagePacker imagePacker = ImagePacker.create();

  1. 設(shè)置編碼輸出流和編碼參數(shù)。設(shè)置 format 為編碼的圖像格式,當前支持 jpeg 格式。設(shè)置 quality 為圖像質(zhì)量,范圍從 0-100,100 為最佳質(zhì)量。

   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. 編碼輸出完成后,可以進行后續(xù)處理,比如保存、傳輸?shù)取?/li>
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號