๐Ÿ“ท A composable image editor using Core Image and Metal.

Overview

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

๐Ÿ“– Detailed documentations are available on here

๐ŸŽˆ 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.

๐Ÿ’ต Please Support me to implement the next feature.

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

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.0.0-alpha.2")
]

License

Brightroom is available under the MIT license. See the LICENSE file for more info.

FOSSA Status

Comments
  • v2-alpha.1

    v2-alpha.1

    https://github.com/muukii/Pixel/projects/2

    • [ ] Enhancement the code for state-management with using Verge
    • [ ] Crop-UI supports rotation
    • [ ] Investigate performance

    TODO

    • [x] CropView supports super small image (smaller than scroll view bounds)

    https://whimsical.com/v2-architecture-LDTmmZN4tyEYaUG6vfSwfF

    image

    Support Muukii

    Hi, I'm working on open-source software with a lot of time. Please help me continue my work. I appreciate it.

    https://github.com/sponsors/muukii

    opened by muukii 11
  • How to disable

    How to disable "cube crop"

    Hi there!

    Few days I am trying to disable "cube cropping" to display image at it is (with same aspect ratio), but can't find correct lines at framework.

    Can you please explain me where is this function.

    help wanted 
    opened by snake302 9
  • Color profile is changing without applying any filter - SwiftUICropView

    Color profile is changing without applying any filter - SwiftUICropView

    Overview

    I am using your library to crop different images and send them to a network call. I noticed that when I give an image to your library it changes the color profile. Are you processing any work on image? Are you planning to provide any API to avoid this automatic process? Finally, thank you for your great work.

    Details

    I am using SwiftUICropView

    Please check difference between this two following images

    original Original image

    in-clipdrop-edition Processed by Brightroom image

    Reproduce version

    Brightroom 2.3.3

    opened by iamhtz 6
  • 'ColorCubeStorage' initializer is inaccessible due to 'internal' protection level

    'ColorCubeStorage' initializer is inaccessible due to 'internal' protection level

    Add ColorCube filter is throwing me this error. Is there a work around?

    Also what is the identifier and lutimage property in the : let filter = FilterColorCube( name: "Filter Name", identifier: "Filter Identifier", lutImage: lutImage, dimension: 64 )

    opened by adxworld 5
  • CIColorCube LUT Black & White Issue

    CIColorCube LUT Black & White Issue

    The code written here https://gist.github.com/JoshuaSullivan/b575d96bfd8a4177d8d46352e5f36458 to apply a LUT to an image using CIColorCube works really well.

    But I'm having one problem, when I use a black & white LUT the result isn't the expected.

    This is the LUT I'm using: BW

    This is the result: IMG_0950

    opened by elteclagol 4
  • Fixed Swift Package Manager Errors for v2

    Fixed Swift Package Manager Errors for v2

    When integrating v2 via SPM, the current v2 branch has build errors that prevent any project from compiling. I've gone ahead and updated the deployment target for SPM and added some missing import statements. Now things should compile correctly.

    opened by Sam-Spencer 4
  • "No Such Module" after installing pods

    Overview

    I have added in my Podfile:

    pod 'Brightroom/Engine', '2.0.0-alpha.9'
    pod 'Brightroom/UI-Classic', '2.0.0-alpha.9'
    pod 'Brightroom/UI-Crop', '2.0.0-alpha.9'
    

    And when adding:

    import BrightroomUI
    import BrightroomEngine
    

    It gives me No such module 'BrightroomUI'

    Details

    Here is my complete Podfile:

    source 'https://github.com/CocoaPods/Specs.git'
    platform :ios, '13.0'
    use_frameworks!
    
    target 'project-ios' do
    	pod 'Alamofire', '~> 5.2'
    	pod 'Kingfisher', '~> 6.0'
    	pod 'KeychainAccess'
    	pod 'Instabug'
    	pod "PromiseKit", "~> 6.8"
    	pod 'Brightroom/Engine', '2.0.0-alpha.9'
    	pod 'Brightroom/UI-Classic', '2.0.0-alpha.9'
    	pod 'Brightroom/UI-Crop', '2.0.0-alpha.9'
    end
    

    Would any of you have any solutions for me?

    opened by daweido 3
  • Preview of image with filter not showed

    Preview of image with filter not showed

    Version of Pixel: 0.0.9 Xcode: 11.0 beta 6 iOS: 13 beta

    As in attached screenshoot there is an issue with previewing images with filters on newest iOS 13 beta.

    IMG_0001 2

    opened by arturmichna 3
  • High Memory Usage

    High Memory Usage

    When we open PixelEditorViewController, memory usage is very high that can see with Instruments. It seems that ImageTool.resize cause this.

    2018-10-31 3 07 02

    https://developer.apple.com/videos/play/wwdc2018/416/

    help wanted 
    opened by muukii 3
  • CIFilter outputImage: Unexpectedly found nil while unwrapping an Optional value

    CIFilter outputImage: Unexpectedly found nil while unwrapping an Optional value

    ScreenShot 2021-09-08 PM 5 26 48

    The CIFilter outputImage in the apply(to:sourceImage:) function of the FilterColorCube class is returned as nil.

    The LUT image used was: LUT_144_Apple Intense Cold LUT_144_Apple Intense Cold.jpeg

    The dimension value is 144. What is wrong?

    opened by HyunjoonKo 2
  • Couldn't run project after install pods

    Couldn't run project after install pods

    Error message

    Undefined symbols for architecture x86_64: "Brightroom.EditingStack.State.Loaded.currentEdit.setter : Brightroom.EditingStack.Edit", referenced from: key path setter for Brightroom.EditingStack.State.Loaded.currentEdit : Brightroom.EditingStack.Edit : Brightroom.EditingStack.State.Loaded in BlurryMaskingView.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

    @muukii

    opened by FedupTech 2
  • Crash in ImageSource.init(image:)

    Crash in ImageSource.init(image:)

    Hello! Recently I've got plenty strange crashes Screenshot 2022-10-25 at 20 34 17 I can't reproduce this issue by myself but there are some app users faced this issue. I receive this crashlytics report and also checked xcode crash logs. It crashes exactly when we're trying to force unwrap this optional:

    loadThumbnailCGImage: { (maxPixelSize) -> CGImage in
            return ImageTool.makeResizedCGImage(
              from: image.cgImage!,
              maxPixelSizeHint: maxPixelSize
            )!
    

    Its kind of rare bug but some users're continuously facing this issue. May you please make some suggestions what could it be? I just pass UIImage chosen from gallery to this initialiser. Almost all the time it works fine but not always.. Thank you!

    opened by sokalyambda 0
  • Crash from SwiftUIDemo App

    Crash from SwiftUIDemo App

    Overview

    • I use SwiftUIDemo App, added Brightroom as SPM, selecting both BrightroomUI and BrightroomEngine.
    • Other demo features (Crops) work well.

    Details

    • when trying to click Done after editing image I get a crash, on line 177 from "ContentView": self.image = try! stackForHorizontal.makeRenderer().render().swiftUIImage

    Fatal error: 'try!' expression unexpectedly raised an error: BrightroomEngine.EditingStackError.unableToCreateRendererInLoading

    Reproduce version

    • Brightroom 2.8.0
    • XCode 14.0.1
    opened by nlminh 0
  • Wrong Installation Guide link.

    Wrong Installation Guide link.

    Overview

    CI isn't able to resolve the package dependencies with the current SPM installation link.

    Details

    I was getting the following error when running my CI: the package manifest at '/Package.swift' cannot be accessed (/Package.swift doesn't exist in file system) in https://github.com/muukii/Brightroom.git2022-10-11 02:50:00.444 xcodebuild[2001:12819] Writing error result bundle to /var/folders/bl/wbxjgtzx7j5_mjsmfr3ynlc00000gp/T/ResultBundle_2022-11-10_02-50-0000.xcresult xcodebuild: error: Could not resolve package dependencies: the package manifest at '/Package.swift' cannot be accessed (/Package.swift doesn't exist in file system) in https://github.com/muukii/Brightroom.git

    It turns out that the CI isn't able to resolve it with the Installation Guide link: "https://github.com/muukii/Brightroom.git", it works just fine when adding the package with the redirected link: "https://github.com/FluidGroup/Brightroom"

    Reproduce version

    CircleCI

    opened by RixD 1
  • Compilation error : missing required module 'VergeObjcBridge'

    Compilation error : missing required module 'VergeObjcBridge'

    I have added Brightroom with SPM on main branch. When I try to import on my project Brightroom

    import BrightroomUI
    import BrightroomEngine
    

    I get the following buiding error missing required module 'VergeObjcBridge' I have tried to also add Verge in SPM and includes all Verge framework in my target but it is not working. Any clue ?

    Thanks

    opened by tlacan 0
  • Bump jmespath from 1.4.0 to 1.6.1

    Bump jmespath from 1.4.0 to 1.6.1

    Bumps jmespath from 1.4.0 to 1.6.1.

    Release notes

    Sourced from jmespath's releases.

    Release v1.6.1 - 2022-03-07

    • Issue - Use JSON.parse instead of JSON.load.

    Release v1.6.0 - 2022-02-14

    • Feature - Add support for string comparissons.

    Release v1.5.0 - 2022-01-10

    • Support implicitly convertible objects/duck-type values responding to to_hash and to_ary.

      [See related GitHub pull request #51](jmespath/jmespath.rb#51).

    Changelog

    Sourced from jmespath's changelog.

    1.6.1 (2022-03-07)

    • Issue - Use JSON.parse instead of JSON.load.

    1.6.0 (2022-02-14)

    • Feature - Add support for string comparisons.

    1.5.0 (2022-01-10)

    • Support implicitly convertible objects/duck-type values responding to to_hash and to_ary.

      [See related GitHub pull request #51](jmespath/jmespath.rb#51).

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(2.8.0)
  • 2.8.0(Aug 28, 2022)

    What's Changed

    • iOS 13 + by @muukii in https://github.com/FluidGroup/Brightroom/pull/178

    Full Changelog: https://github.com/FluidGroup/Brightroom/compare/2.7.0...2.8.0

    Source code(tar.gz)
    Source code(zip)
  • 2.7.0(Aug 21, 2022)

    What's Changed

    • Update SPM swift settings safe by @HonQii in https://github.com/FluidGroup/Brightroom/pull/173
    • Distinguish tapping on Done and Cancel button in SwiftUIPhotosCropView by @andre0805 in https://github.com/FluidGroup/Brightroom/pull/176

    New Contributors

    • @HonQii made their first contribution in https://github.com/FluidGroup/Brightroom/pull/173
    • @andre0805 made their first contribution in https://github.com/FluidGroup/Brightroom/pull/176

    Full Changelog: https://github.com/FluidGroup/Brightroom/compare/2.6.2...2.7.0

    Source code(tar.gz)
    Source code(zip)
  • 2.6.2(May 23, 2022)

    What's Changed

    • README Cleanup by @Sam-Spencer in https://github.com/muukii/Brightroom/pull/170
    • Add new API to define edit menu order/content by @ntnmrndn in https://github.com/muukii/Brightroom/pull/171

    Full Changelog: https://github.com/muukii/Brightroom/compare/2.6.1...2.6.2

    Source code(tar.gz)
    Source code(zip)
  • 2.6.1(Apr 23, 2022)

    What's Changed

    • Fix rendering with color-space by @muukii in https://github.com/muukii/Brightroom/pull/169

    Full Changelog: https://github.com/muukii/Brightroom/compare/2.6.0...2.6.1

    Source code(tar.gz)
    Source code(zip)
  • 2.6.0(Apr 11, 2022)

    What's Changed

    • Update Package.swift by @muukii in https://github.com/muukii/Brightroom/pull/158
    • ImageProvider supports PHContentEditingInput by @muukii in https://github.com/muukii/Brightroom/pull/159
    • Add PresetStorage by @muukii in https://github.com/muukii/Brightroom/pull/160
    • Switch MosaiqueAssetPicker to SPM by @ntnmrndn in https://github.com/muukii/Brightroom/pull/161
    • Cleanup by @muukii in https://github.com/muukii/Brightroom/pull/164
    • Update UIImage from ImageRenderer by @muukii in https://github.com/muukii/Brightroom/pull/165
    • Fix ImageRenderer - recorver error from creating copy image by @muukii in https://github.com/muukii/Brightroom/pull/166
    • ColorSpace - ImageRenderer by @muukii in https://github.com/muukii/Brightroom/pull/168

    Full Changelog: https://github.com/muukii/Brightroom/compare/2.5.0...2.6.0

    Source code(tar.gz)
    Source code(zip)
  • 2.5.0(Dec 7, 2021)

    What's Changed

    • Make EditingStack Hashable by @ntnmrndn in https://github.com/muukii/Brightroom/pull/153
    • Bundle by @ntnmrndn in https://github.com/muukii/Brightroom/pull/157

    Full Changelog: https://github.com/muukii/Brightroom/compare/2.4.0...2.5.0

    Source code(tar.gz)
    Source code(zip)
  • 2.4.0(Nov 26, 2021)

    What's Changed

    • Make the the BrightroomUI bundle public for easy access by @ntnmrndn in https://github.com/muukii/Brightroom/pull/151
    • Make ignored edit menus a set by @ntnmrndn in https://github.com/muukii/Brightroom/pull/152

    Full Changelog: https://github.com/muukii/Brightroom/compare/2.3.3...2.4.0

    Source code(tar.gz)
    Source code(zip)
  • 2.3.3(Sep 26, 2021)

  • 2.3.2(Sep 9, 2021)

  • 2.3.1(Jun 22, 2021)

  • 2.3.0(Jun 18, 2021)

    Number of PRs : 2

    |tag|number of PRs| |--|--:| |Breaking Change | 1|

    Group: Fix Issue (2)

    • Create fallback on incorrect pixel format instead of validating images. #133 by @ntnmrndn
      • Breaking Change
    • Fix build of demo project #132 by @ntnmrndn

    Group: Enhancement (1)

    • Fix build of demo project #132 by @ntnmrndn

    Other (0)


    Generated by chglog Source code(tar.gz)
    Source code(zip)
  • 2.2.0(Jun 11, 2021)

    Number of PRs : 3

    |tag|number of PRs| |--|--:| |Breaking Change | 1|

    Group: Fix Issue (1)

    • Make initializer failable in case the pixel format is unsupported #129 by @ntnmrndn
      • Breaking Change

    Group: Enhancement (1)

    • Make initializer failable in case the pixel format is unsupported #129 by @ntnmrndn
      • Breaking Change

    Other (2)

    • Fix swift UI demo #131 by @ntnmrndn
    • Fix compile error #130 by @ntnmrndn

    Generated by chglog Source code(tar.gz)
    Source code(zip)
  • 2.1.0(Jun 5, 2021)

    Number of PRs : 6

    |tag|number of PRs| |--|--:|

    Group: Enhancement (3)

    • Add tentative support for unsupported colorspace for output #128 by @muukii
    • Enable concurrent processing each EditingStack #126 by @muukii
    • Adds an initializer for your own external data provider in ImageProvider. #124 by @muukii

    Other (3)

    • Add failure test cases that create CGContext in the special images. #127 by @muukii
    • Let errors be set by other libs #125 by @ntnmrndn
    • Fix podfile #123 by @ntnmrndn

    Generated by chglog Source code(tar.gz)
    Source code(zip)
  • 2.0.0(May 13, 2021)

    Number of PRs : 3

    |tag|number of PRs| |--|--:|

    Group: Fix Issue (1)

    • Add Sanitizer #119 by @muukii

    Group: Enhancement (1)

    • Unlock ImageTool #121 by @muukii

    Other (1)

    • Bump rexml from 3.2.4 to 3.2.5 #122 by @dependabot

    Generated by chglog Source code(tar.gz)
    Source code(zip)
  • 2.0.0-alpha.9(Apr 8, 2021)

    Number of PRs : 4

    |tag|number of PRs| |--|--:|

    Group: Fix Issue (1)

    • Fix simultaneously tracking gesture in CropView #112 by @muukii

    Group: Enhancement (2)

    • Update MetalImageView #115 by @muukii
    • Loading RAW file as default rendering #113 by @muukii

    Other (1)

    • ไฟฎๆ”น CocoaPods install #114 by @LeeCenY

    Generated by chglog Source code(tar.gz)
    Source code(zip)
  • 2.0.0-alpha.8(Apr 4, 2021)

    Number of PRs : 4

    |tag|number of PRs| |--|--:|

    Group: Fix Issue (1)

    • Fix podspec, includes xcassets #109 by @muukii

    Group: Enhancement (3)

    • Update ImageRenderer - Add option to specify calling back queue in render asynchronously #110 by @muukii
    • Add completion handler EditingStack.start() #108 by @muukii
    • Update ImageProvider - make it simpler #107 by @muukii

    Other (0)


    Generated by chglog Source code(tar.gz)
    Source code(zip)
  • 2.0.0-alpha.7(Apr 3, 2021)

    Number of PRs : 2

    |tag|number of PRs| |--|--:|

    Group: Fix Issue (1)

    • Fix image size from PHAsset #106 by @muukii

    Group: Enhancement (1)

    • Now available displaying filtered image in CropView - using rendered CGImage in CropView #105 by @muukii

    Other (0)


    Generated by chglog Source code(tar.gz)
    Source code(zip)
  • 2.0.0-alpha.6(Apr 2, 2021)

    Number of PRs : 5

    |tag|number of PRs| |--|--:| |Breaking Change | 1| |New feature | 1|

    Group: Fix Issue (1)

    • Fix PhotosCropViewController - reset button disables locked aspectratio #100 by @muukii

    Group: Enhancement (4)

    • Introduce FilterPreset which can combine multiple filters. #103 by @muukii
      • Breaking Change New feature
    • Add ClassicImageEditNoPresetRootControl to hide filters panel #102 by @muukii
    • Disable animation in initializing #101 by @muukii
    • Add options to enable using MTLTexture #99 by @muukii

    Other (0)


    Generated by chglog Source code(tar.gz)
    Source code(zip)
  • 2.0.0-alpha.5(Apr 2, 2021)

    Number of PRs : 6

    |tag|number of PRs| |--|--:|

    Group: Enhancement (2)

    • CropView - prevent updating while tracking #94 by @muukii
    • Clears drawn contents before next drawing #92 by @muukii

    Other (4)

    • Fix loading texture from PHImageManager #98 by @muukii
    • [Demo] Add LUT previewer from cameraroll #96 by @muukii
    • Add sample LUT #95 by @muukii
    • Update Demo - Edit an image from camera #93 by @muukii

    Generated by chglog Source code(tar.gz)
    Source code(zip)
  • 2.0.0-alpha.4(Apr 1, 2021)

    Number of PRs : 3

    |tag|number of PRs| |--|--:|

    Group: Fix Issue (1)

    • Fix CocoaPods installing failure #91 by @muukii

    Group: Enhancement (1)

    • Use MTLTexture to display Preview - getting fast #88 by @muukii

    Other (1)

    • Adds Demo for MTLTexture to preview image #86 by @muukii

    Generated by chglog Source code(tar.gz)
    Source code(zip)
  • 2.0.0-alpha.3(Mar 30, 2021)

    Number of PRs : 2

    |tag|number of PRs| |--|--:|

    Other (2)

    • Uses CoreGraphics only when editing contains only cropping. #83 by @muukii
    • Removes intermediate caching to get better performance in UIImageView #85 by @muukii

    Generated by chglog Source code(tar.gz)
    Source code(zip)
  • 2.0.0-alpha.2(Mar 30, 2021)

    Number of PRs : 3

    |tag|number of PRs| |--|--:|

    Other (3)

    • Use UIImageView to display filter preview #81 by @muukii
    • Update fitting crop extent #80 by @muukii
    • Add imitations demo and Update CropView overlays #79 by @muukii

    Generated by chglog Source code(tar.gz)
    Source code(zip)
  • 2.0.0-alpha.1(Mar 28, 2021)

    Number of PRs : 18

    |tag|number of PRs| |--|--:|

    Other (18)

    • v2-alpha.1 #53 by @muukii
    • Improve Renderer #76 by @muukii
    • Further SPM fixes #75 by @Sam-Spencer
    • Fixed Swift Package Manager Errors for v2 #71 by @Sam-Spencer
    • Image orientation #72 by @muukii
    • Use CGDataProvider - to load super large image (over 12000px) #69 by @muukii
    • Remove Pods committing #61 by @muukii
    • Fix a warning #56 by @ntnmrndn
    • Muukii/internal imageview #54 by @muukii
    • Fix StepLabel on iOS14 #52 by @muukii
    • [Temporary patch] Add a parameter to choose cropping square or not. #50 by @muukii
    • Brush size #43 by @ntnmrndn
    • Fix an issue with iOS 13 modals conflicting with the blur brush gesture #42 by @ntnmrndn
    • Allow PixelEditor to be loaded with a PHAsset #39 by @ntnmrndn
    • Fix rendering on iOS13 #32 by @muukii
    • Filter edit mode options #29 by @Aymenworks
    • Supports editing image other than square (EdtingStack in PixelEditViewController) #23 by @muukii
    • Update readme with example for custom root control UI #22 by @Aymenworks

    Generated by chglog Source code(tar.gz)
    Source code(zip)
Owner
Muukii
Swift & iOS - Working on creating apps and open-sourced libraries. I'm interested in Creating smooth and fancy UI, State-Management, Image Processing.
Muukii
React-native-photo-editor - Photo editor using native modules for iOS and Android

?? Image editor using native modules for iOS and Android. Inherit from 2 available libraries, ZLImageEditor (iOS) and PhotoEditor (Android)

Baron Ha. 244 Jan 5, 2023
Swift Package Manager plug-in to compile Metal files that can be debugged in Xcode Metal Debugger.

MetalCompilerPlugin Swift Package Manager plug-in to compile Metal files that can be debugged in Xcode Metal Debugger. Description Swift Package Manag

Jonathan Wight 10 Oct 30, 2022
Playing with Core Image and Metal Shader Language for fun.

Playing with Core Image and Metal Shader Language for fun.

Makeeyaf 6 Jan 5, 2023
An instagram-like image editor that can apply preset filters passed to it and customized editings to a binded image.

CZImageEditor CZImageEditor is an instagram-like image editor with clean and intuitive UI. It is pure swift and can apply preset filters and customize

null 8 Dec 16, 2022
GPUImage 3 is a BSD-licensed Swift framework for GPU-accelerated video and image processing using Metal.

GPUImage 3 Janie Clayton http://redqueengraphics.com @RedQueenCoder Brad Larson http://www.sunsetlakesoftware.com @bradlarson contact@sunsetlakesoftwa

Brad Larson 2.4k Jan 3, 2023
A GPU accelerated image and video processing framework built on Metal.

MetalPetal An image processing framework based on Metal. Design Overview Goals Core Components MTIContext MTIImage MTIFilter MTIKernel Optimizations C

null 1.5k Jan 4, 2023
FMPhotoPicker is a modern, simple and zero-dependency photo picker with an elegant and customizable image editor

FMPhotoPicker is a modern, simple and zero-dependency photo picker with an elegant and customizable image editor Quick demo Batch select/deselect Smoo

Cong Nguyen 648 Dec 27, 2022
Jogendra 113 Nov 28, 2022
Image Editor iOS App - CLEAN Architecture + MVP Pattern

Image Editor iOS Application - Built using UIKit, CoreData, CoreImage, and URLSession Frameworks with CLEAN Architecture and MVP UI design pattern.

Omran Khoja 8 Nov 30, 2022
A simple mesh viewer for MacOS based on Swift and Metal and using Assimp for loading meshes

Metal Mesh Viewer A simple triangle mesh viewer for MacOS This application is a simple (triangle) mesh viewer that should be capable of rendering even

J. Andreas Bรฆrentzen 0 Dec 13, 2021
GPU-based media processing library using Metal written in Swift

GPU-based media processing library using Metal written in Swift. Overview MetalAcc is a GPU-Based media processing library that lets you apply GPU-acc

Jiawei Wang 259 Dec 17, 2022
An implementation of High Pass Skin Smoothing using Apple's Core Image Framework

YUCIHighPassSkinSmoothing An implementation of High Pass Skin Smoothing using CoreImage.framework Available on both OS X and iOS. Ports A MetalPetal b

Yu Ao 1.2k Dec 17, 2022
1D, 2D, and 3D variations of Fast Fourier Transforms for a Metal S4TF backend

MetalFFT MetalFFT is an experiment in adding GPU acceleration for 1D, 2D, and 3D variations of Fast Fourier Transforms. This framework's original purp

Philip Turner 21 Oct 11, 2022
1D, 2D, and 3D variations of Fast Fourier Transforms for a Metal S4TF backend

MetalFFT MetalFFT is an experiment in adding GPU acceleration for 1D, 2D, and 3D variations of Fast Fourier Transforms. This framework's original purp

Philip Turner 21 Oct 11, 2022
VRTracerSample - Learning project in Metal Ray Tracing and Swift

VRTracer This is a personal project for learning Metal's Ray Tracing API with sw

null 1 Feb 12, 2022
Visualiser written in Swift, SwiftUI and Metal API

ModularMTL About Visualisation of modular multiplication on a circle. Written in Swift using Metal API and SwiftUI. Images Features Keyboard controls

Gracien 12 Dec 20, 2022
A python library to run metal compute kernels on MacOS 12

metalcompute for Python A python library to run metal compute kernels on MacOS Usage Example execution from M1-based Mac running MacOS 12.0: > ./build

Andrew Baldwin 21 Nov 7, 2022
Boids written in the Metal Shader language + Swift

MetalBoid Boids written in the Metal Shader language + Swift This is an example of a Boid simulating running in iOS using Swift+Metal. The parameters

Mark Dawson 10 Nov 8, 2022
An example app showing how to use AVCaptureSession with Metal in Swift.

#iOSSwiftMetalCamera Click here to see video demo. This app is a basic example showing how to use Swift to setup an AVCaptureSession session to access

Bradley Griffith 111 Aug 17, 2022