diff --git a/README.md b/README.md index a5697383..031c91a4 100644 --- a/README.md +++ b/README.md @@ -1,121 +1,104 @@ -# Brightroom - Composable image editor - building your own UI +

Brightroom

+

A full-featured composable image editor with a customizable UI -- all backed by the power of Metal.

+
-| Classic Image Editor | PhotosCrop | Face detection | Masking component | +| Image Editor | Photo Cropping | Face Detection | Masking | | --- | --- | --- | --- | | | | | | -> [πŸŽ„**An open-sourced app built with Brightroom**](https://github.com/muukii/Drip.app) +## Features -## πŸŽ‰ v2 now open! - -> βš’ Issues are managed in [v2 project](https://github.com/muukii/Brightroom/projects/2) +- **Create your own image editor UI** by composing components. + - Components are built separately and run standalone using an `EditingStack`. + - `EditingStacks` **manage editing history** and render images. *It's like a headless browser!* +- Edit and render using [**P3 Wide Color** Gamut](https://instagram-engineering.com/bringing-wide-color-to-instagram-5a5481802d7d) +- Support for [Super Large Photosβ„’ (≀ 12000 pixels)](https://eoimages.gsfc.nasa.gov/images/imagerecords/78000/78314/VIIRS_3Feb2012_lrg.jpg). +- Previews and rendering backed with the power of **Metal**. +- Create custom-drawn **masks** on photos. +- Drop-in support for your own **custom filters using LUTs**. +- Load and download **remote images** for editing with a `URL`. +- Support for both UIKit and SwiftUI. -> πŸ“Œ Pixel has been renamed as **Brightroom** +## Requirements -> πŸ“– [Detailed documentations are available on here](https://www.notion.so/muukii/Brightroom-d4c59b37610a49de8a14131d24cd6162) +| iOS Target | Xcode Version | Swift Version | +|:---:|:---:|:---:| +| iOS 12.0+ | Xcode 12.4+ | Swift 5.3+ | -> 🎈 Wanted CoreImage and Metal professional! Please help us, we have issues that we don't know how to solve. (help wanted in Issues) +## Support the Project +Buy me a coffee or support me on [GitHub](https://github.com/sponsors/muukii?frequency=one-time&sponsor=muukii). -> ⭐️ If you interested in v2, hit the **Star button** to motivate us! 🀠 + +yellow-button + -> πŸͺ Brightroom's state management powered by [Verge](https://github.com/VergeGroup/Verge). +## πŸŽ‰ v2 Now Available! +There are a few important housekeeping notes for those coming from v1. -> πŸ’΅ [Support me by one-time tier](https://github.com/sponsors/muukii?frequency=one-time&sponsor=muukii) + - βš’ Issues are managed in the [v2 Project](https://github.com/muukii/Brightroom/projects/2) + - πŸ“Œ Pixel has been renamed **Brightroom**. + - πŸ“– Detailed documentation is available [on Notion](https://www.notion.so/muukii/Brightroom-d4c59b37610a49de8a14131d24cd6162). + - 🎈 **Help Wanted**: CoreImage and Metal professionals! + - ⭐️ If you're interested in v2, **star the project** to motivate us! 🀠 + - πŸͺ Brightroom's state management is now powered by [Verge](https://github.com/VergeGroup/Verge). -## Support the project - -yellow-button - +## Installation +**CocoaPods** -## 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](https://instagram-engineering.com/bringing-wide-color-to-instagram-5a5481802d7d) -- [Super large photo (12000px)](https://eoimages.gsfc.nasa.gov/images/imagerecords/78000/78314/VIIRS_3Feb2012_lrg.jpg) 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 +```ruby +pod 'Brightroom/Engine' +pod 'Brightroom/UI-Classic' +pod 'Brightroom/UI-Crop' +``` -## Requirements +**Swift Package Manager** -* Swift 5.3 (Xcode12.4+) -* iOS 12+ +```swift +dependencies: [ + .package(url: "https://github.com/muukii/Brightroom.git", upToNextMajor: "2.2.0") +] +``` -## Detail Documentations +# Documentation -Documentations +View the [full documentation](https://www.notion.so/muukii/Brightroom-d4c59b37610a49de8a14131d24cd6162) on Notion. ## Usage **PhotosCropViewController** ```swift -// Creating image provider -let imageProvider: ImageProvider = .init(image: uiImage) // url, data supported. +// Create an image provider +let imageProvider = ImageProvider(image: uiImage) // URL, Data are also supported. -// Creating view controller +// Create a Photo Crop View Controller let controller = PhotosCropViewController(imageProvider: imageProvider) -// Setting up handling after editing finished. +// Set up handlers when editing finishes controller.handers ``` -## SwiftUI supported (beta) - -> Not sophisticated API. -> Please help us 🀲 +## SwiftUI Support (BETA) +*The SwiftUI API is still in-progress and may not be production ready. We're looking for help! 🀲* ```swift let editingStack: EditingStack -SwiftUIPhotosCropView(editingStack: editingStack, onCompleted: { +SwiftUIPhotosCropView(editingStack: editingStack) { let image = try! editingStack.makeRenderer().render().swiftUIImage - -}) +} ``` -## Demo applications +# Demo & Full App +There is an entire open-source and production-ready app available on the App Store that uses Brightroom. It's called [Drip](https://github.com/muukii/Drip.app). -This repository contains a demo application. -You can see many demonstrations of what Brightroom can perform and experiments in technology. +This repository also contains a demo app which demonstrates what Brightroom can perform and showcases some easy experiments. Clone this repo and build the project to try it out! -||| -|---|---| -||| - -## Customization showcases - -| | -| --- | -| | - - -## Installation - -**CocoaPods** - -```ruby -pod 'Brightroom/Engine' -pod 'Brightroom/UI-Classic' -pod 'Brightroom/UI-Crop' -``` - -**Swift Package Manager** - -```swift -dependencies: [ - .package(url: "https://github.com/muukii/Brightroom.git", exact: "2.2.0") -] -``` - -## License +# License Brightroom is available under the MIT license. See the LICENSE file for more info. +# Status + [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fmuukii%2FPixel.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fmuukii%2FPixel?ref=badge_large)