logo
积分中心
鸿蒙媒体开发系列17——图片编码与EXIF处理
头像 蓝亭书序 2026-10-28 16:59:28    发布
0 浏览 0 点赞 0 收藏

1、图片编码

图片编码指将PixelMap编码成不同格式的存档图片(当前仅支持打包为JPEG和WebP格式),用于后续处理,如保存、传输等。

鸿蒙媒体开发系列15——图片解码(PixcelMap)

编码步骤如下:

👉🏻 1)创建图像编码ImagePacker对象


// 导入相关模块包
import image from '@ohos.multimedia.image';

const imagePackerApi = image.createImagePacker();


👉🏻 2)设置编码输出流和编码参数

format为图像的编码格式;quality为图像质量,范围从0-100,100为最佳质量。


let packOpts = { format:"image/jpeg", quality:98 };


👉🏻 3)对图片进行编码,保存编码后的图片

编码支持两种对象:PixcelMap和ImageSource。

* 对PixcelMap对象编码代码如下:


imagePackerApi.packing(pixelMap, packOpts).then( data => {
  // data 为打包获取到的文件流,写入文件保存即可得到一张图片
}).catch(error => { 
  console.error('Failed to pack the image. And the error is: ' + error); 
})


* 对ImageSource对象编码的代码如下:


imagePackerApi.packing(imageSource, packOpts).then( data => {
    // data 为打包获取到的文件流,写入文件保存即可得到一张图片
}).catch(error => { 
  console.error('Failed to pack the image. And the error is: ' + error); 
})



2、EXIF处理

EXIF(Exchangeable image file format)是专门为数码相机的照片设定的文件格式,可以记录数码照片的属性信息和拍摄数据。当前仅支持JPEG格式图片。

在图库等应用中,需要查看或修改数码照片的EXIF信息。由于摄像机的手动镜头的参数无法自动写入到EXIF信息中或者因为相机断电等原因经常会导致拍摄时间出错,这时候就需要手动修改错误的EXIF数据,即可使用本功能。

HarmonyOS目前仅支持对部分EXIF信息的查看和修改,具体支持的范围如下:

图片

步骤如下:

👉🏻 1)创建ImageSource图片源对象,获取图片


// 导入相关模块包
import image from '@ohos.multimedia.image';

// 获取沙箱路径创建ImageSource
const fd = ...; // 获取需要被处理的图片的fd
const imageSource = image.createImageSource(fd);


👉🏻 2)读取 / 编辑EXIF信息。


// 读取EXIF信息,BitsPerSample为每个像素比特数
imageSource.getImageProperty('BitsPerSample', (error, data) => {
  if (error) {
    console.error('Failed to get the value of the specified attribute key of the image.And the error is: ' + error);
  } else {
    console.info('Succeeded in getting the value of the specified attribute key of the image ' + data);
  }
})

// 编辑EXIF信息
imageSource.modifyImageProperty('ImageWidth', '120').then(() => {
  const width = imageSource.getImageProperty("ImageWidth");
  console.info('The new imageWidth is ' + width);
})



©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
HarmonyOS
地址:北京市朝阳区北三环东路三元桥曙光西里甲1号第三置业A座1508室 电话:13391790444或(010)62178877
版权所有:电脑商情信息服务集团 北京赢邦策略咨询有限责任公司
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,我司致力于保护作者版权,如有侵权,请与我司联系删除

京ICP备:2022009079号-2

京公网安备:11010502051901号

ICP证:京B2-20230255