鸿蒙媒体开发系列17——图片编码与EXIF处理

news2024/12/29 9:18:46

如果你也对鸿蒙开发感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。

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';// 获取沙箱路径创建ImageSourceconst fd = ...; // 获取需要被处理的图片的fdconst 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);})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2183069.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

完整网络模型训练(一)

文章目录 一、网络模型的搭建二、网络模型正确性检验三、创建网络函数 一、网络模型的搭建 以CIFAR10数据集作为训练例子 准备数据集: #因为CIFAR10是属于PRL的数据集,所以需要转化成tensor数据集 train_data torchvision.datasets.CIFAR10(root&quo…

《OpenCV》—— 指纹验证

用两张指纹图片中的其中一张对其验证 完整代码 import cv2def cv_show(name, img):cv2.imshow(name, img)cv2.waitKey(0)def verification(src, model):sift cv2.SIFT_create()kp1, des1 sift.detectAndCompute(src, None)kp2, des2 sift.detectAndCompute(model, None)fl…

消费电子制造企业如何使用SAP系统提升运营效率与竞争力

在当今这个日新月异的消费电子市场中,企业面临着快速变化的需求、激烈的竞争以及不断攀升的成本压力。为了在这场竞赛中脱颖而出,消费电子制造企业纷纷寻求数字化转型的突破点,其中,SAP系统作为业界领先的企业资源规划(ERP)解决方…

Python批量下载PPT模块并实现自动解压

日常工作中,我们总是找不到合适的PPT模板而烦恼。即使有免费的网站可以下载,但是一个一个地去下载,然后再批量解压进行查看也非常的麻烦,有没有更好方法呢? 今天,我们利用Python来爬取一个网站上的PPT&…

SSM整合:图书管理系统

图书管理系统 一.环境 1.数据库环境 CREATE DATABASE ssmbuild;USE ssmbuild;DROP TABLE IF EXISTS books;CREATE TABLE books (bookID INT(10) NOT NULL AUTO_INCREMENT COMMENT 书id,bookName VARCHAR(100) NOT NULL COMMENT 书名,bookCounts INT(11) NOT NULL COMMENT 数量…

Leecode热题100-48.旋转图像

给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[[7,4,1],[8,5,2],[9,6,3]]示…

QML使用Qt自带软键盘例子

//注意:一定要保证Qt有安装VirtualKeyboard插件 import QtQuick 2.10 import QtQuick.Window 2.3 import QtQuick.Controls 2.3 import QtQuick.VirtualKeyboard 2.1 import QtQuick.VirtualKeyboard.Settings 2.1 Window { id: root visible: true w…

109.WEB渗透测试-信息收集-FOFA语法(9)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:108.WEB渗透测试-信息收集-FOFA语法(8) 未授权burp: …

净利润暴跌,撤了,募投资金大比例购置不动产,突击申请专利

开科唯识终止原因如下:首先,报告期内,开科唯识收入规模较小,2023年上半年净利润更是出现暴跌的情况,其2023年可能难以满足创业板上市新规。此外,开科唯识研发费用率始终低于同行业可比公司,仅有…

线性代数书中求解齐次线性方程组、非齐次线性方程组方法的特点和缺陷(附实例讲解)

目录 一、克拉默法则 1. 方法概述 2. 例16(1) P45 3. 特点 (1) 只适用于系数矩阵是方阵 (2) 只适用于行列式非零 (3) 只适用于唯一解的情况 (4) 只适用于非齐次线性方程组 二、逆矩阵 1. 方法概述 2. 例16(2) P45 3. 特点 (1) 只适用于系数矩阵必须是方阵且可逆 …

每日读则推(二)

n.免疫疗法 n.策略,行动计划,战略 n.一代 v.设计(engineer n.工程师,设计师 v.设计,建造) A novel immunotherapy strategy using in vivo generation of engineered CAR T cells can n.(长篇)小说 a.新颖的,珍奇的 …

WebGIS包括哪些技术栈?怎么学习?

WebGIS,其实是利用Web开发技术结合地理信息系统(GIS)的产物,它是一种通过Internet实现GIS交互操作和服务的最佳途径。 WebGIS通过图形化界面直观地呈现地理信息和特定数据,具有可扩展性和跨平台性。 它提供交互性&am…

CSP-J二轮模拟赛----张浩轩补题报告

1.题目报告 1.交替出场2.翻翻转转3.方格取数4.圆圆中的方方AC0分--文件读写0分20分--骗分 2.赛中概况 第一题比较顺利,五六分钟就开始敲代码,暴力AC。 第二题耗了30分钟左右才有思路,写的时候也不大顺利,用得递归。文件读写错了…

HTML+CSS 基础第三季课堂笔记

一、CSS基础概念 CSS有两个重要的概念,分别是样式和布局 CSS的样式分为两种,一种是文字的样式,一种是盒模型的样式 CSS的另一个重要的特性就是辅助页面布局,完成HTML不能完成的功能,比如并排显示,比如精…

Flowable之任务撤回(支持主流程、子流程相互撤回)

撤回任务:主流程 > 主流程 处室主管【送科长审核】 处室主管【撤回科长审核】 流程日志 撤回任务:子流程 > 子流程 会办接收岗【送处室主管】 会办接收岗【撤回处室主管】 会办接收岗【同意】 撤回任务:子流程 > 主流程 处室主管…

秋招内推--招联金融2025

【投递方式】 直接扫下方二维码,或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus,使用内推码 igcefb 投递) 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策…

每日读则推(一)

v.避免,回避,撤销 n.黑花园蚁 Several animals are known to alter their behavior to avoid infections. But black garden v.改变,改动 n.传染病,感染,污染ants are th…

低空经济时代来临,挑战和机遇详细分析

低空经济作为一种新兴的经济形态,正逐步成为推动国民经济发展的新增长点。它依托于低空空域,涵盖通用航空、无人机应用、航空运动、低空旅游等多个领域,展现了广阔的发展前景和巨大的发展潜力。本文旨在详细分析低空经济时代来临所带来的挑战…

C语言数组和指针笔试题(三)

目录 字符数组四例题1例题2例题3例题4例题5例题6例题7 结果字符数组五例题1例题2例题3例题4例题5例题6例题7结果字符数组六例题1例题2例题3例题4例题5例题6例题7 结果 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒个…

C语言、Eazy_x——井字棋

#include<graphics.h>char board_data[3][3] { { -,-,-},{ -,-,-},{ -,-,-}, };char current_piece o;//检测指定棋子玩家是否获胜 bool CheckWin(char c) {if (board_data[0][0] c && board_data[0][1] c && board_data[0][2] c)return true;if (…