怎么制作自己公司网站,做宣传类网站需要什么资质,电脑编程软件下载,自动生成代码的软件可可图片编辑 HarmonyOS 上架应用分享
介绍
可可图片编辑 原名 图片编辑大师#xff0c;因为上架审核的时候 #xff0c;提示与一些已有应用重名#xff0c;为了避免冲突#xff0c;需要改名字#xff0c;所以苦心思考了一分钟#xff0c;就调整成 可可图片编辑。 应用…可可图片编辑 HarmonyOS 上架应用分享
介绍
可可图片编辑 原名 图片编辑大师因为上架审核的时候 提示与一些已有应用重名为了避免冲突需要改名字所以苦心思考了一分钟就调整成 可可图片编辑。 应用 应用商店访问链接 https://appgallery.huawei.com/app/detail?idtupianbmjidashi.qinglanzhuma.huaweichannelIdSHARE 功能展示
可可图片编辑提供了图片处理的六大核心功能
图片压缩图片裁剪滤镜效果添加水印图片绘画图片拼图 其中比较有意思的是也实现了图片的分享功能这个在开发的时候也是调试了一段时间。 开发和上架过程
这个APP的开发过程是可以说是有90%是AI完成的确实也摸索出一些自己的心得上架过程只被打回一次后续再提交也就通过了还是挺顺利。 开发时间 立项的初衷
抱着学习的心态来做产品是最好验收自己掌握技能与否的方法也是让自己所有的投入得到成就感的最好的方式。
之前就一直想着好好梳理下 HarmonyOS 中 关于 Image 相关 Kit的一些用法正好就借这个机会来实现了。 能看到这个Image的kit还是可以做不少的功能到都可以直接在鸿蒙手机上来完成了。
开发环境与技术栈
开发工具DevEco Studio 5.0SDK版本HarmonyOS SDK API 14开发语言ArkTSUI框架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
): PromiseCompressionResult {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编程神器TraeClaude4.0 简单配置 让 HarmonyOS 开发效率飙升
近期活动
最近想要想要考取 HarmonyOS 基础或者高级证书或者快要获取的同学都可以点击这个链接加入我的班级考取成功有机会获得鸿蒙礼盒一份。 联系我
可以加我微信带你了解更多HarmonyOS相关的咨询。