# TT_IC_Editing **Repository Path**: baihonghua/TT_IC_Editing ## Basic Information - **Project Name**: TT_IC_Editing - **Description**: 字节跳动工程训练营作业:一款轻量高效的 Android 图片编辑应用,提供裁剪、旋转、滤镜、文字、贴纸等多种编辑功能。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-12 - **Last Updated**: 2026-02-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TT-IC-Editing 一款轻量高效的 Android 图片编辑应用,提供裁剪、旋转、滤镜、文字、贴纸等多种编辑功能。 ## 功能特性 ### 核心功能与扩展功能 | 功能 | 说明 | |-------------|------| | **相册选取** | 从手机相册选择图片,处理权限申请及异常情况 | | **相机拍照** | 调用相机拍摄,支持手势缩放、点击对焦 | | **图片缩放** | 手势缩放(0.5x-2x)、平移查看 | | **图片裁剪** | 自由裁剪及固定比例(1:1、4:3、16:9、3:4、9:16) | | **旋转翻转** | 90°/180°旋转、水平/垂直翻转 | | **参数调整** | 亮度(-100~100)、对比度、饱和度调节 | | **文字编辑** | 自定义文字内容、字体(4种)、颜色(10种预设)、字号(12-36)、透明度(50%-100%) | | **保存导出** | 保存至相册,处理存储权限及异常 | |-------------|------| | **滤镜效果** | 6种滤镜:原图、黑白、复古、清新、暖色调、冷色调(基于 ColorMatrix 手动实现) | | **贴纸功能** | 10种表情贴纸,支持拖动、缩放、旋转、删除及层级调整 | | **图片拼接** | 支持2-4张图片,提供横向、纵向、网格(2×2)三种拼接模式 | ## 技术实现 ### 架构设计 采用模块化分层架构: - **显示层** - MainActivity、PreviewActivity、EditActivity 等 - **业务处理层** - CropManager、RotationManager、EditModeManager 等 - **系统调用层** - Camera、Storage、Permissions等 ### 核心技术点 - **三层 Bitmap 管理**:trueOriginalBitmap(原图)→ sourceBitmap(调整后)→ displayBitmap(显示) - **编辑模式管理**:通过 EditModeManager 统一调度各编辑模式(裁剪、旋转、调整、滤镜、文字、贴纸) - **图像处理**:基于 Android Matrix 实现旋转翻转,基于 ColorMatrix 实现滤镜和参数调整 - **自定义视图**:CropOverlayView(裁剪框)、DraggableTextView(可拖拽文字)、DraggableEmojiView(可拖拽贴纸) ## 项目结构 ``` app/src/main/java/com/example/tt_ic_editing/ ├── MainActivity.kt # 主页入口 ├── CameraActivity.kt # 相机拍照(基于 CameraX) ├── GalleryActivity.kt # 相册选择 ├── PreviewActivity.kt # 图片预览、旋转翻转 ├── EditActivity.kt # 图片编辑主页面 ├── ImageStitchActivity.kt # 图片拼接 ├── editors/ │ ├── managers/ │ │ └── RotationManager.kt # 旋转管理器 │ └── modes/ │ ├── EditModeManager.kt # 编辑模式管理器 │ ├── CropManager.kt # 裁剪管理器 │ ├── AdjustEditMode.kt # 参数调整模式 │ ├── FilterEditMode.kt # 滤镜模式 │ ├── TextEditMode.kt @# 文字编辑模式 │ └── StickerEditMode.kt # 贴纸模式 ├── View/ │ ├── CropOverlayView.kt # 裁剪框视图 │ ├── DraggableTextView.kt # 可拖拽文字视图 │ └── DraggableEmojiView.kt # 可拖拽贴纸视图 └── utils/ ├── FilterUtils.kt # 滤镜工具类 └── BitmapRotationUtil.kt # 旋转工具类 ``` ## 环境要求 - **开发语言**: Kotlin - **最低版本**: Android 6.0 (API 23) - **目标版本**: Android 15 (API 36) - **开发工具**: Android Studio ## 作者 郁奕辰