可可图片编辑 HarmonyOS 上架应用分享
2025-08-22 23:00:25
129次阅读
0个评论
可可图片编辑 HarmonyOS 上架应用分享
介绍
可可图片编辑 原名 图片编辑大师,因为上架审核的时候 ,提示与一些已有应用重名,为了避免冲突,需要改名字,所以苦心思考了一分钟,就调整成 可可图片编辑。
应用
应用商店访问链接
https://appgallery.huawei.com/app/detail?id=tupianbmjidashi.qinglanzhuma.huawei&channelId=SHARE
功能展示
可可图片编辑提供了图片处理的六大核心功能
- 图片压缩
- 图片裁剪
- 滤镜效果
- 添加水印
- 图片绘画
- 图片拼图
其中比较有意思的是也实现了图片的分享功能,这个在开发的时候也是调试了一段时间。
开发和上架过程
这个APP的开发过程是可以说是有90%是AI完成的,确实也摸索出一些自己的心得,上架过程只被打回一次,后续再提交也就通过了,还是挺顺利。
开发时间
立项的初衷
抱着学习的心态来做产品,是最好验收自己掌握技能与否的方法,也是让自己所有的投入得到成就感的最好的方式。
之前就一直想着好好梳理下 HarmonyOS 中 关于 Image 相关 Kit的一些用法,正好就借这个机会来实现了。
能看到,这个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;
}
后续计划
后续继续分享这个应用的实现细节,敬请期待。
以往文章
- 懂你的HarmonyOS知识库更新了,已经来到10970个文档了
- 鸿蒙开发者狂喜!5000 元 / 个应用的羊毛快来薅
- AI编程神器!Trae+Claude4.0 简单配置 让 HarmonyOS 开发效率飙升
近期活动
最近想要想要考取 HarmonyOS 基础或者高级证书,或者快要获取的同学都可以点击这个链接,加入我的班级,考取成功有机会获得鸿蒙礼盒一份。
联系我
可以加我微信,带你了解更多HarmonyOS相关的咨询。
00
- 0回答
- 6粉丝
- 1关注
相关话题
- 可可图片编辑 HarmonyOS(3)应用间分享图片
- 可可图片编辑 HarmonyOS(2) 选择图片和保存到图库
- 鸿蒙开发:如何上架一个元服务应用
- 滑动魅力:图片编辑器的交互艺术
- 第五款 HarmonyOS 上架作品 奇趣故事匣 来了
- 【HarmonyOS NEXT】解决Repeat复用导致Image加载图片展示的是上一张图片的问题
- 从0到1上架一个元服务的全流程
- HarmonyOS Next 之app应用上架审核踩坑
- HarmonyOS NEXT应用开发 ( 应用的签名打包上架,各种证书详解)
- 鸿蒙开发:应用上架第三篇,配置签名信息打出上架包
- 关于鸿蒙app上架审核中的一些常见问题【1】
- 鸿蒙便捷生活类应用上架流程一
- 鸿蒙便捷生活类应用上架流程二
- 【HarmonyOS】富文本编辑器RichEditor详解
- 针对“您的应用使用了HarmonyOS beta版本的API”的解决方法##HarmonyOS应用上架##