鴻蒙OS 圖像編碼開(kāi)發(fā)指導(dǎo)

2020-09-18 14:18 更新

場(chǎng)景介紹

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

接口說(shuō)明

ImagePacker 主要用于圖像編碼。

接口名 描述
create() 創(chuàng)建圖像打包器實(shí)例。
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 對(duì)象添加到圖像打包器中。
addImage(ImageSource source) 將圖像數(shù)據(jù)源 ImageSource 中圖像添加到圖像打包器中。
addImage(ImageSource source, int index) 將圖像數(shù)據(jù)源 ImageSource 中指定圖像添加到圖像打包器中。
finalizePacking() 完成圖像打包任務(wù)。
release() 釋放對(duì)象關(guān)聯(lián)的本地資源。

開(kāi)發(fā)步驟

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

   ImagePacker imagePacker = ImagePacker.create();

  1. 設(shè)置編碼輸出流和編碼參數(shù)。設(shè)置 format 為編碼的圖像格式,當(dāng)前支持 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 對(duì)象,進(jìn)行編碼操作。

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)