Brightroom - Composable image editor - building your own UI
Classic Image Editor | PhotosCrop | Face detection | Masking component |
---|---|---|---|
๐
v2.0.0-alpha now open!
๐ฅ v2.0.0 development is still early development. We have a lot of known issues.
โ Issues are managed in v2 project
๐ Pixel has been renamed as Brightroom
๐ Wanted CoreImage and Metal professional! Please help us, we have issues that we don't know how to solve. (help wanted in Issues)
โญ๏ธ If you interested in v2, hit the Star button to motivate us!๐ค
๐ช Brightroom's state management powered by Verge.
Brightroom v2 provides the following features:
- Components are built separately and run standalone using an
EditingStack
. - Create your own image editor UI by composing components.
EditingStack
manages the history of editing and renders images. It's like a headless browser.- Headless rendering with using
EditingStack
- Wide color editing supported
- Super large photo (12000px) supported (But exporting takes so long time for now.)
- Blazing fast previewing by Metal power.
- Drawing supported - masking blurry
- Creating your own filter with LUT
- Opening the image from URL
- Supported UIKit and SwiftUI
- Downloading image supported
Requirements
- Swift 5.3 (Xcode12.4+)
- iOS 12+
Detail Documentations
Usage
PhotosCropViewController
// Creating image provider
let imageProvider: ImageProvider = .init(image: uiImage) // url, data supported.
// Creating view controller
let controller = PhotosCropViewController(imageProvider: imageProvider)
// Setting up handling after editing finished.
controller.handers
SwiftUI supported (beta)
Not sophisticated API.
Please help us๐คฒ
let editingStack: EditingStack
SwiftUIPhotosCropView(editingStack: editingStack, onCompleted: {
let image = try! editingStack.makeRenderer().render().swiftUIImage
})
Demo applications
This repository contains a demo application.
You can see many demonstrations of what Brightroom can perform and experiments in technology.
Customization showcases
Installation
CocoaPods
pod 'Brightroom/Engine', '2.0.0-alpha.8'
pod 'Brightroom/UI-Classic', '2.0.0-alpha.8'
pod 'Brightroom/UI-Crop', '2.0.0-alpha.8'
Swift Package Manager
dependencies: [
.package(url: "https://github.com/muukii/Brightroom.git", exact: "2.2.0")
]
License
Brightroom is available under the MIT license. See the LICENSE file for more info.