# 鸿蒙next相册图片压缩,相机拍照压缩 **Repository Path**: wkdstyle/image-operation ## Basic Information - **Project Name**: 鸿蒙next相册图片压缩,相机拍照压缩 - **Description**: 纯血鸿蒙的图片压缩 图片来源于相机或者相册 相机拍摄或者相册选择的图片进行压缩 介绍 目前查找的资料大部分都是工程内的图片内进行压缩,没有一个好的方案用于相册或者相机选择图片进行压缩,在开发过程中,遇到头像上传等操作需要拍照并且上传,因此写下demo - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-11-06 - **Last Updated**: 2025-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 相机拍摄或者相册选择的图片进行压缩 ### 介绍 目前查找的资料大部分都是工程内的图片内进行压缩,没有一个好的方案用于相册或者相机选择图片进行压缩,在开发过程中,遇到头像上传等操作需要拍照并且上传,因此写下demo。 应用使用[@ohos.file.picker](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-file-picker-0000001774121766)、[@ohos.file.fs](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-file-fs-0000001820881405) 等接口。 ### 效果预览 | 首页 | 进入页面 | 压缩图片界面 | |------------------------------|-------------------------------|------------------------------| | ![](./screenshots/Index.png) | ![](./screenshots/before.png) | ![](./screenshots/after.png) | 使用说明: 1. 启动首页,权限授予 2. 点击相机相机拍照选取图片,然后去相机拍照,之后选择图片,会跳转到压缩页面 3. 或者点击相册选取图片,跳转到图库选取图片跳转到压缩页面 4. 输入要压缩后的文件大小默认200k,点击压缩,会生成新的压缩后的图片和Uri ### 工程目录 ``` ├──entry/src/main/ets/ │ ├──common │ │ ├──Common.ts │ │ └──Logger.ts │ ├──contstants │ │ └──Contstants.ets │ ├──entryability │ │ └──EntryAbility.ets //ability类 │ ├──media │ │ └──MediaFileUri.ts //媒体文件相关函数 │ ├──model │ │ └──ImageRouterModel.ets │ ├──pages │ │ ├──Index.ets //首页 │ │ └──PhotoCroppingPage.ets //压缩界面 │ └──utils │ └──CameraUtils.ets └──entry/src/main/resource // 应用静态资源目录 ``` ### 具体实现 - 知识点:通过context.startAbilityForResult接口拉起相机拍照,并通过result返回照片地址 - 使用new picker.PhotoViewPicker来创建图库picker实例,使用photoPicker.select来拉起picker选择图片或视频,接口参考:[@ohos.file.picker](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-file-picker-0000001774121766) - 使用fs.openSync、fs.writeSync、fs.readSync、fs.closeSync分别用来打开文件、写文件、读文件、关闭文件,接口参考:[@ohos.file.fs](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-file-fs-0000001820881405) ### 相关权限 | 权限名 | 权限说明 | 级别 | |--------------------------------|----------------------| ------------ | | ohos.permission.MEDIA_LOCATION | 允许应用访问用户媒体文件中的地理位置信息 | normal | | ohos.permission.CAMERA | 允许应用访问用户相机 | normal | | ohos.permission.MEDIA_LOCATION | 允许应用访问用户媒体文件中的地理位置信息 | normal | | ohos.permission.READ_MEDIA | 允许应用读取用户外部存储中的媒体文件信息 | normal | | ohos.permission.WRITE_MEDIA | 允许应用读写用户外部存储中的媒体文件信息 | normal | ### 依赖 不涉及 ### 约束与限制 1.本示例仅支持标准系统上运行,支持设备:华为手机。 2.HarmonyOS系统:HarmonyOS NEXT Developer Preview1及以上。 3.DevEco Studio版本:DevEco Studio NEXT Developer Preview1及以上。 4.HarmonyOS SDK版本:HarmonyOS NEXT Developer Preview1 SDK及以上。