Brightroom
一个功能齐全、可组合的图像编辑器,具有可自定义的UI — 全部由Metal技术支持。
图像编辑器 | 照片裁剪旋转 | 人脸检测 | 遮罩 |
---|---|---|---|
<img width=200px src=https://github.com/FluidGroup/Brightroom/assets/1888355/df14adc2-97fc-465b-8919-7727c9bae8bd /> | <img width=200px src=https://user-images.githubusercontent.com/1888355/112720303-cde5cb00-8f40-11eb-941f-c134368b87c5.gif /> | <img width=200px src=https://user-images.githubusercontent.com/1888355/112927084-6487d700-914f-11eb-86a5-28f9373285e6.gif /> |
特性
- 通过组合组件创建您自己的图像编辑器UI。
- 组件是独立构建的,使用
EditingStack
单独运行。 EditingStacks
管理编辑历史并渲染图像。就像无头浏览器一样!
- 组件是独立构建的,使用
- 使用 P3 广色域 进行编辑和渲染
- 支持 超大照片™(≤ 12000像素)。
- 预览和渲染由 Metal 技术支持。
- 在照片上创建自定义绘制的遮罩。
- 使用LUT为您自己的自定义滤镜提供即插即用支持。
- 使用
URL
加载和下载远程图像进行编辑。 - 支持UIKit和SwiftUI。
要求
iOS目标版本 | Xcode版本 | Swift版本 |
---|---|---|
iOS 15.0+ | Xcode 15.2+ | Swift 5.9+ |
支持项目
给我买杯咖啡或在GitHub上支持我。
🎉 v2现已推出!
对于从v1升级的用户,有一些重要的注意事项。
- ⚒ 问题在v2项目中管理
- 📌 Pixel已更名为Brightroom。
- 📖 详细文档可在Notion上查看。
- 🎈 需要帮助:CoreImage和Metal专业人士!
- ⭐️ 如果您对v2感兴趣,请为项目加星以激励我们!🤠
- 🪐 Brightroom的状态管理现在由Verge提供支持。
安装
Swift包管理器
dependencies: [
.package(url: "https://github.com/muukii/Brightroom.git", upToNextMajor: "2.2.0")
]
文档
在Notion上查看完整文档。
内置UI
BrightroomUIPhotosCrop.PhotosCropRotation
<img width=200px src=https://github.com/FluidGroup/Brightroom/assets/1888355/df14adc2-97fc-465b-8919-7727c9bae8bd />
import SwiftUI
import BtightroomUIPhotosCrop
struct DemoCropView: View {
@StateObject var editingStack: EditingStack
@State var resultImage: ResultImage?
init(
editingStack: @escaping () -> EditingStack
) {
self._editingStack = .init(wrappedValue: editingStack())
}
var body: some View {
ZStack {
VStack {
PhotosCropRotating(editingStack: { editingStack })
Button("完成") {
let image = try! editingStack.makeRenderer().render().cgImage
self.resultImage = .init(cgImage: image)
}
}
}
.onAppear {
editingStack.start()
}
}
}
ClassicEditor
PixelEditViewController
演示 & 完整应用
App Store上有一个使用Brightroom的完整开源生产就绪应用。它叫做Drip。
这个仓库还包含一个演示应用,展示了Brightroom可以执行的操作并展示了一些简单的实验。克隆此仓库并构建项目来尝试!
许可证
Brightroom 根据 MIT 许可证提供。有关更多信息,请参阅 LICENSE 文件。