# ImageCanvasEdit **Repository Path**: harmonyos_samples/image-canvas-edit ## Basic Information - **Project Name**: ImageCanvasEdit - **Description**: 构建Surface输入输出的图片编辑 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 2 - **Created**: 2025-07-14 - **Last Updated**: 2025-09-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于PixelMap与Canvas实现图片编辑 ## 项目简介 - 基于PixelMap 编解码技术与 Canvas 画布实现高效图像处理。支持裁剪、旋转、缩放、平移等基础编辑,提供亮度、透明度、饱和度调节功能,内置多种滤镜效果及文字水印工具。 - 操作实时预览,编辑后可直接保存处理结果,满足日常图片美化与调整需求。 ## 效果预览 | 裁剪 | 图片信息 | 水印 | 调节 | |:-------------------------------------------------------:|:--------------------------------------------------------:|:--------------------------------------------------------:|:--------------------------------------------------------:| | | | | | | 滤镜 | 平移 | 缩放 | | | | | | | ## 功能特性 - **原图信息**:查看解码原图数据。 - **基础编辑**:裁剪、旋转、镜像。 - **图像调节**:亮度、透明度、饱和度调节。 - **图像变换**:平移、缩放。 - **滤镜效果**:黑白、模糊、高亮等多种滤镜。 - **水印功能**:支持添加文字。 - **实时预览**:所有编辑操作支持实时预览。 - **保存功能**:支持保存编辑后的图片。 ## 使用说明 1. 启动应用后选择要编辑的图片。 2. 使用底部标签页切换不同的编辑功能: - **裁剪**:支持多种比例裁剪。 - **调节**:调整图片亮度、透明度、饱和度。 - **滤镜**:应用各种滤镜效果。 - **平移**:水平和垂直移动图片。 - **缩放**:放大或缩小图片。 - **水印**:添加文字。 3. 实时预览编辑效果。 4. 点击保存按钮保存编辑后的图片。 ## 工程目录 ``` ├──entry/src/main/ets // 代码区 │ ├──common │ │ └──constant │ │ └──CommonConstants.ets // 常量 │ ├──component │ │ ├──TabComponent.ets // 底部Tab栏组件 │ │ └──TitleComponent.ets // 顶部标题栏组件 │ ├──dialog │ │ ├──MyCustomDialog.ets // 自定义弹出框 │ │ └──SavePicker.ets // 保存弹出框 │ ├──entryability │ │ └──EntryAbility.ets // 应用入口 │ ├──entrybackupability │ │ └──EntryBackupAbility.ets // 数据备份与恢复 │ ├──pages │ │ └──PictureEdit.ets // 主编辑页面 │ ├──utils │ │ ├──AdjustUtil.ets // 调节utils │ │ ├──ContextStorageUtil.ets // 上下文存储utils │ │ ├──CropUtil.ets // 裁剪utils │ │ ├──DecodeUtil.ets // 解码utils │ │ ├──EncodeUtil.ets // 编码utils │ │ ├──LoggerUtil.ets // 日志utils │ │ ├──OpacityUtil.ets // 透明utils │ │ ├──PixelMapManager.ets // 图片编辑utils │ │ └──WatermarkUtil.ets // 水印utils │ ├──view │ │ ├──PixelDataManager.ets // 实例 │ │ ├──AdjustContentView.ets // 调节组件 │ │ ├──CropView.ets // 裁剪组件 │ │ ├──TranslateView.ets // 平移组件 │ │ ├──ZoomView.ets // 缩放组件 │ │ ├──ApplyFilterView.ets // 滤镜组件 │ │ └──WatermarkView.ets // 水印功能组件 │ ├──viewModel │ │ ├──IconListViewModel.ets // icon Model │ │ ├──MessageItem.ets // 多线程传输消息 │ │ ├──OptionViewModel.ets // 操作枚举 │ │ ├──PictureEditModel.ets // 图片编辑类型 │ │ ├──PictureEditModelData.ets // 图片编辑数据 │ │ └──RegionItem.ets // 裁剪数据类型 │ └──workers │ └──AdjustWork.ets // 线程 └──entry/src/main/resources // 应用资源目录 ``` ## 具体实现 - 图片解码:图片解码指将所支持格式的存档图片解码成统一的PixelMap,以便在应用或系统中进行图片显示或图片处理。 - PixelMap:图像像素类,用于读取或写入图像数据以及获取图像信息。 - 图片编码:图片编码指将PixelMap编码成不同格式的存档图片,用于后续处理,如保存、传输等。 - Canvas:画布组件,用于自定义绘制图形、图片等内容。 - OffscreenCanvas:离屏画布,用于在后台进行图像处理和渲染。 ## 相关权限 - 允许修改用户公共目录的图片或视频文件:ohos.permission.WRITE_IMAGEVIDEO。 ## 约束与限制 1. 本示例仅支持标准系统上运行,支持设备:华为手机。 2. HarmonyOS系统:HarmonyOS 5.1.1 Release及以上。 3. DevEco Studio版本:DevEco Studio 5.1.1 Release及以上。 4. HarmonyOS SDK版本:HarmonyOS 5.1.1 Release SDK及以上。