可可图片编辑 HarmonyOS 上架应用分享

介绍

可可图片编辑 原名 图片编辑大师,因为上架审核的时候 ,提示与一些已有应用重名,为了避免冲突,需要改名字,所以苦心思考了一分钟,就调整成 可可图片编辑

image-20250822220208906

应用

image-20250822223406702

应用商店访问链接

https://appgallery.huawei.com/app/detail?id=tupianbmjidashi.qinglanzhuma.huawei&channelId=SHARE

image-20250822223836842

功能展示

可可图片编辑提供了图片处理的六大核心功能

  • 图片压缩
  • 图片裁剪
  • 滤镜效果
  • 添加水印
  • 图片绘画
  • 图片拼图

image-20250822220756310

其中比较有意思的是也实现了图片的分享功能,这个在开发的时候也是调试了一段时间。

image-20250822220937178

开发和上架过程

这个APP的开发过程是可以说是有90%是AI完成的,确实也摸索出一些自己的心得,上架过程只被打回一次,后续再提交也就通过了,还是挺顺利。

image-20250822221637968

开发时间

image-20250822222118307

image-20250822222134080

image-20250822222206127

立项的初衷

​ 抱着学习的心态来做产品,是最好验收自己掌握技能与否的方法,也是让自己所有的投入得到成就感的最好的方式。

之前就一直想着好好梳理下 HarmonyOS 中 关于 Image 相关 Kit的一些用法,正好就借这个机会来实现了。

image-20250822222410511


image-20250822222452463

能看到,这个Image的kit还是可以做不少的功能到,都可以直接在鸿蒙手机上来完成了。

开发环境与技术栈

  • 开发工具:DevEco Studio 5.0+
  • SDK版本:HarmonyOS SDK API 14+
  • 开发语言:ArkTS
  • UI框架:ArkUI
  • 路由管理:ZRouter 1.6.1
  • 状态管理:V2状态管理(@ComponentV2 + @Local/@Param)

状态管理策略

项目全面采用HarmonyOS V2状态管理方案,相比V1版本具有更好的性能和更简洁的API:

@Entry
@Route({ name: 'CompressionPage', useTemplate: true })
@ComponentV2
export struct CompressionPage {@Local selectedImage: ImageInfo | null = null;@Local compressionParams: CompressionParams = {quality: 80,scale: 1.0,format: ImageFormat.JPEG,type: CompressionType.QUALITY,mode: CompressionMode.MANUAL,keepAspectRatio: true};@Local compressionResult: CompressionResult | null = null;@Local operationState: OperationState = OperationState.IDLE;
}

智能图片压缩算法

图片压缩是应用的核心功能之一,我们实现了一套智能压缩算法,支持三种压缩模式:

压缩参数接口设计

export interface CompressionParams {quality: number;              // 压缩质量 (0-100)scale: number;               // 缩放比例 (0.1-1.0)format: ImageFormat;         // 目标格式type: CompressionType;       // 压缩类型mode: CompressionMode;       // 压缩模式keepAspectRatio: boolean;    // 是否保持宽高比maxFileSize?: number;        // 最大文件大小 (KB)maxWidth?: number;           // 最大宽度maxHeight?: number;          // 最大高度
}

自适应压缩算法

针对按文件大小压缩的需求,我们实现了基于二分查找的自适应压缩算法:

export async function compressImageBySize(imageUri: string, params: CompressionParams
): Promise<CompressionResult> {const targetSize = (params.maxFileSize || 1024) * 1024; // 转换为字节// 二分查找最佳压缩参数let minQuality = 10;let maxQuality = params.quality;while (maxQuality - minQuality > 5) {const currentQuality = Math.floor((minQuality + maxQuality) / 2);// 尝试当前质量参数const compressedData = await compressWithQuality(imageUri, currentQuality);if (compressedData.byteLength <= targetSize) {minQuality = currentQuality;} else {maxQuality = currentQuality;}}return bestResult;
}

image-20250822225655054

后续计划

后续继续分享这个应用的实现细节,敬请期待。

以往文章

  • 懂你的HarmonyOS知识库更新了,已经来到10970个文档了
  • 鸿蒙开发者狂喜!5000 元 / 个应用的羊毛快来薅
  • AI编程神器!Trae+Claude4.0 简单配置 让 HarmonyOS 开发效率飙升

近期活动

最近想要想要考取 HarmonyOS 基础或者高级证书,或者快要获取的同学都可以点击这个链接,加入我的班级,考取成功有机会获得鸿蒙礼盒一份。

image-20250822223258675

联系我

可以加我微信,带你了解更多HarmonyOS相关的咨询。

wanshaoweixin

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Notepad++近期版本避雷

近期Notepad若干版本存在投毒事件&#xff0c;虽然也欢迎大家使用替代软件&#xff0c;但是Notepad作为一款开源软件&#xff0c;如有需要也可以继续白嫖使用&#xff0c;但是请务必避开若干埋雷版本&#xff01; 经检查&#xff0c;部分版本在帮助菜单中加入了有关tw的部分个人…

【lucene核心】impacts的由来

在 Lucene 的 Impact 概念&#xff08;出现在 ImpactsEnum / Impact 对象里&#xff09;中&#xff1a;字段 含义 freq 当前 term 在该文档中出现了多少次&#xff08;即词频 term frequency&#xff09;。 norm 当前 文档在该字段中的长度因子&#xff08;即之前 norms 里保存…

基于Echarts+HTML5可视化数据大屏展示-惠民服务平台

效果展示代码结构&#xff1a;主要代码实现 index.html布局 <!doctype html> <html><head><meta charset"utf-8"><title>双数智慧公卫-传染病督导平台</title><meta http-equiv"refresh" content"60;urlhttps…

【Flink】DataStream API:执行环境、执行模式、触发程序执行

目录执行环境getExecutionEnvironmentcreateLocalEnvironmentcreateRemoteEnvironment执行模式流执行模式&#xff08;Streaming&#xff09;批执行模式&#xff08;Batch&#xff09;自动模式&#xff08;AutoMatic&#xff09;触发程序执行DataStream API是Flink的核心层API&…

CentOS7.6

腾讯云服务器 腾讯云 产业智变云启未来 - 腾讯 服务器在控制台显示 点击进入面板&#xff0c;显示所有信息 现在来安装桌面的远程控制软件 宝塔SSH终端:一款同时支持SSH和SFTP客户端的免费软件! 点击立即下载 在云服务器的实例列表复制公网ip 密码就是服务器的密码&#xff…

前端架构知识体系:常见图片格式详解与最佳实践

前端开发必备&#xff1a; 在前端开发中&#xff0c;合理选择图片格式直接影响网页加载性能、用户体验和带宽成本。本文将系统梳理常见图片格式&#xff0c;分析它们的优缺点、压缩原理、兼容性和推荐使用场景&#xff0c;并提供前端优化实战建议。1. JPEG / JPG 全称&#xff…

ARM的编程模型

ARM的编程模型 ARM 的编程模型指的是从程序员&#xff08;特别是汇编程序员和编译器设计者&#xff09;视角所看到的 ARM 处理器架构。它定义了程序员可以使用的资源、数据操作方式以及规则&#xff0c;主要包括&#xff1a;寄存器组、数据类型、内存访问方式、执行状态和异常处…

最大熵强化学习相比传统强化学习,有什么缺点?

要理解最大熵强化学习&#xff08;MaxEnt RL&#xff09;相比传统强化学习&#xff08;如DQN、PPO、DDPG等&#xff09;的缺点&#xff0c;首先需要明确两者的核心差异&#xff1a;传统RL的目标是“最大化累积奖励”&#xff0c;而MaxEnt RL在该目标基础上额外增加了“最大化策…

python生成器与协程深度剖析

目录 生成器 传统列表 vs 生成器对比 yield机制深度解析 生成器的高级用法 协程的演进:从yield到async/await 基于yield的协程 现代async/await语法 协程的错误处理和超时控制 异步生成器与异步迭代器 异步生成器 异步迭代器实现 实战案例:异步爬虫框架设计 生成器…

论文解读:基于 77 GHz FMCW 毫米波雷达的舱内占位检测

毫米波 (mm-Wave) 雷达是汽车应用&#xff08;例如高级驾驶辅助系统 (ADAS)&#xff09;的一种解决方案。本研究探索了商用毫米波雷达技术在车内应用领域的应用。本文提出了一种基于 77 GHz 毫米波雷达的车辆占用检测器框架。本研究采用了德州仪器 (Texas Instruments) 的多输入…

进程优先级(Process Priority)

&#x1f381;个人主页&#xff1a;工藤新一 &#x1f50d;系列专栏&#xff1a;C面向对象&#xff08;类和对象篇&#xff09; &#x1f31f;心中的天空之城&#xff0c;终会照亮我前方的路 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 文章目录进…

OpenCV的轮廓检测

1. 轮廓检测的基本概念轮廓是图像中连续的、闭合的曲线段&#xff0c;代表物体的边界&#xff08;如圆形的轮廓是一条闭合曲线&#xff09;。OpenCV 的轮廓检测通过 cv2.findContours() 实现&#xff0c;可用于形状识别、物体计数、图像分割等场景。2. 核心函数与参数&#xff…

亚信安全亮相鸿蒙生态大会2025 携手鸿蒙生态绘就万物智联新蓝图

8 月30 日&#xff0c;以 “新场景・新体验” 为主题的鸿蒙生态大会 2025 在深圳福田会展中心隆重开幕。本次大会由全球智慧物联网联盟&#xff08;GIIC&#xff09;主办、鸿蒙生态服务&#xff08;深圳&#xff09;有限公司承办&#xff0c;旨在搭建全球鸿蒙生态伙伴的高层次交…

Linux内核进程管理子系统有什么第四十回 —— 进程主结构详解(36)

接前一篇文章&#xff1a;Linux内核进程管理子系统有什么第三十九回 —— 进程主结构详解&#xff08;35&#xff09; 本文内容参考&#xff1a; Linux内核进程管理专题报告_linux rseq-CSDN博客 《趣谈Linux操作系统 核心原理篇&#xff1a;第三部分 进程管理》—— 刘超 《…

面试问题:进程和线程,编译步骤,const,map和unordered_map,深入理解unordered_map

目录 进程和线程的区别 const修饰指针(左边内容&#xff0c;右边指向) 1. const 修饰指针指向的内容&#xff08;指向常量&#xff09; 2. const 修饰指针本身&#xff08;常量指针&#xff09; 3. const 同时修饰指针本身和指向的内容&#xff08;指向常量的常量指针&…

利用棒棒糖图探索Office (US)的IMDB评分

利用棒棒糖图探索Office (US)的IMDB评分 import numpy as np import pandas as pd import matplotlib.colors as mc import matplotlib.image as image import matplotlib.pyplot as pltfrom matplotlib.cm import ScalarMappable from matplotlib.lines import Line2D from m…

Zephyr如何注册设备实例

设备树 → 编译期生成 → 运行时访问 流程图&#xff1a;Zephyr dev->config 工作流程设备树 (.dts) ───────────────────────────── anx745139 {compatible "analogix,anx7451";reg <0x39>;reset-gpios <&gpio1 5 …

Spring Boot 日志框架选择指南:Logback vs Log4j2

在 Spring Boot 应用中&#xff0c;您需要明确选择一个日志框架 - ​​不能同时使用两种日志实现​​。以下是关于 spring-boot-starter-log4j2和 spring-boot-starter-logging的全面比较和选择建议&#xff1a;核心区别特性spring-boot-starter-log4j2(Log4j2)spring-boot-sta…

Axure科技感可视化原型案例:赋能设计与研发的宝藏资源

在当今数字化浪潮中&#xff0c;数据可视化已成为企业洞察市场、优化运营、快速决策不可或缺的工具。Axure&#xff0c;作为原型设计领域的领航者&#xff0c;凭借其强大的功能和丰富的资源&#xff0c;为数据可视化大屏的设计注入了科技活力与创新元素。本文将深入探讨Axure科…

跨境电商账号风控核心:IP纯净度与浏览器指纹的防护策略

对跨境电商从业者而言&#xff0c;账号突然被封是常见却令人头痛的问题。即便严格遵守平台规则、使用代理IP&#xff0c;账号仍可能因风控策略而受限。这背后&#xff0c;IP纯净度与浏览器指纹识别是两大常被忽视却至关重要的技术因素。本文将从技术角度解析其原理&#xff0c;…