From e7e0bba7796f96a188f163e41e18d3c941fc3ed6 Mon Sep 17 00:00:00 2001 From: Narek1994 Date: Sun, 29 Oct 2017 03:10:15 +0400 Subject: [PATCH] Revert "Added filter screen" --- .../project.pbxproj | 34 --- .../Line.imageset/Contents.json | 12 - .../Line.imageset/Line.pdf | Bin 3865 -> 0 bytes .../bwFilterHighlight.imageset/Contents.json | 12 - .../bwFilterHighlight.pdf | Bin 6267 -> 0 bytes .../bwFilterNormal.imageset/Contents.json | 12 - .../bwFilterNormal.pdf | Bin 6040 -> 0 bytes .../Contents.json | 12 - .../colorFilterHighlight.pdf | Bin 4303 -> 0 bytes .../colorFilterNormal.imageset/Contents.json | 12 - .../colorFilterNormal.pdf | Bin 4089 -> 0 bytes .../Contents.json | 12 - .../exposureFilterHighlight.pdf | Bin 5910 -> 0 bytes .../Contents.json | 12 - .../exposureFilterNormal.pdf | Bin 5635 -> 0 bytes .../Contents.json | 12 - .../grayFilterHighlight.pdf | Bin 4546 -> 0 bytes .../grayFilterNormal.imageset/Contents.json | 12 - .../grayFilterNormal.pdf | Bin 4339 -> 0 bytes .../Contents.json | 12 - .../originalFilterHighlight.pdf | Bin 29642 -> 0 bytes .../Contents.json | 12 - .../originalFilterNormal.pdf | Bin 29426 -> 0 bytes .../Utilities/UIImage+Filter.h | 45 ---- .../Utilities/UIImage+Filter.m | 241 ----------------- .../Utilities/UIImageView+Filter.h | 65 ----- .../Utilities/UIImageView+Filter.m | 129 --------- .../ViewController/CropViewController.swift | 14 +- .../ViewController/FilterViewController.swift | 144 ---------- .../ViewController/FilterViewController.xib | 245 ------------------ .../CameraViewController-Bridging-Header.h | 3 +- 31 files changed, 12 insertions(+), 1040 deletions(-) delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/Line.imageset/Contents.json delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/Line.imageset/Line.pdf delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/bwFilterHighlight.imageset/Contents.json delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/bwFilterHighlight.imageset/bwFilterHighlight.pdf delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/bwFilterNormal.imageset/Contents.json delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/bwFilterNormal.imageset/bwFilterNormal.pdf delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/colorFilterHighlight.imageset/Contents.json delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/colorFilterHighlight.imageset/colorFilterHighlight.pdf delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/colorFilterNormal.imageset/Contents.json delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/colorFilterNormal.imageset/colorFilterNormal.pdf delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/exposureFilterHighlight.imageset/Contents.json delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/exposureFilterHighlight.imageset/exposureFilterHighlight.pdf delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/exposureFilterNormal.imageset/Contents.json delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/exposureFilterNormal.imageset/exposureFilterNormal.pdf delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/grayFilterHighlight.imageset/Contents.json delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/grayFilterHighlight.imageset/grayFilterHighlight.pdf delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/grayFilterNormal.imageset/Contents.json delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/grayFilterNormal.imageset/grayFilterNormal.pdf delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/originalFilterHighlight.imageset/Contents.json delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/originalFilterHighlight.imageset/originalFilterHighlight.pdf delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/originalFilterNormal.imageset/Contents.json delete mode 100644 ALCameraViewController/CameraViewAssets.xcassets/originalFilterNormal.imageset/originalFilterNormal.pdf delete mode 100755 ALCameraViewController/Utilities/UIImage+Filter.h delete mode 100755 ALCameraViewController/Utilities/UIImage+Filter.m delete mode 100755 ALCameraViewController/Utilities/UIImageView+Filter.h delete mode 100755 ALCameraViewController/Utilities/UIImageView+Filter.m delete mode 100644 ALCameraViewController/ViewController/FilterViewController.swift delete mode 100644 ALCameraViewController/ViewController/FilterViewController.xib diff --git a/ALCameraViewController.xcodeproj/project.pbxproj b/ALCameraViewController.xcodeproj/project.pbxproj index f34e57ed..a7a71cde 100644 --- a/ALCameraViewController.xcodeproj/project.pbxproj +++ b/ALCameraViewController.xcodeproj/project.pbxproj @@ -7,17 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - B2357AB11FA50D51003F9ACF /* FilterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = B2357AAF1FA50D51003F9ACF /* FilterViewController.xib */; }; - B2357AB21FA50D51003F9ACF /* FilterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2357AB01FA50D51003F9ACF /* FilterViewController.swift */; }; - B2357AB31FA50E13003F9ACF /* FilterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2357AB01FA50D51003F9ACF /* FilterViewController.swift */; }; - B2357AB41FA50E13003F9ACF /* FilterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = B2357AAF1FA50D51003F9ACF /* FilterViewController.xib */; }; - B2357AB91FA51156003F9ACF /* UIImageView+Filter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2357AB61FA51155003F9ACF /* UIImageView+Filter.m */; }; - B2357ABA1FA51156003F9ACF /* UIImage+Filter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2357AB71FA51156003F9ACF /* UIImage+Filter.m */; }; - B2357ABB1FA5115C003F9ACF /* UIImage+Filter.h in Headers */ = {isa = PBXBuildFile; fileRef = B2357AB81FA51156003F9ACF /* UIImage+Filter.h */; }; - B2357ABC1FA5115C003F9ACF /* UIImage+Filter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2357AB71FA51156003F9ACF /* UIImage+Filter.m */; }; - B2357ABD1FA5115C003F9ACF /* UIImageView+Filter.h in Headers */ = {isa = PBXBuildFile; fileRef = B2357AB51FA51155003F9ACF /* UIImageView+Filter.h */; }; - B2357ABE1FA5115C003F9ACF /* UIImageView+Filter.m in Sources */ = {isa = PBXBuildFile; fileRef = B2357AB61FA51155003F9ACF /* UIImageView+Filter.m */; }; - B2357ABF1FA511DC003F9ACF /* CameraViewController-Bridging-Header.h in Headers */ = {isa = PBXBuildFile; fileRef = E33BE72F1F54955E005842DC /* CameraViewController-Bridging-Header.h */; }; BF5861F31F613FB800B406F6 /* CropViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BF5861F61F613FB800B406F6 /* CropViewController.xib */; }; BF5861F41F613FB800B406F6 /* CropViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BF5861F61F613FB800B406F6 /* CropViewController.xib */; }; BF5861F81F61404C00B406F6 /* ConfirmViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BF5861FB1F61404C00B406F6 /* ConfirmViewController.xib */; }; @@ -85,12 +74,6 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - B2357AAF1FA50D51003F9ACF /* FilterViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FilterViewController.xib; sourceTree = ""; }; - B2357AB01FA50D51003F9ACF /* FilterViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilterViewController.swift; sourceTree = ""; }; - B2357AB51FA51155003F9ACF /* UIImageView+Filter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImageView+Filter.h"; sourceTree = ""; }; - B2357AB61FA51155003F9ACF /* UIImageView+Filter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImageView+Filter.m"; sourceTree = ""; }; - B2357AB71FA51156003F9ACF /* UIImage+Filter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+Filter.m"; sourceTree = ""; }; - B2357AB81FA51156003F9ACF /* UIImage+Filter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+Filter.h"; sourceTree = ""; }; BF5862001F625D0F00B406F6 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/CameraView.strings; sourceTree = ""; }; BF5862021F625D1200B406F6 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/CameraView.strings"; sourceTree = ""; }; C40665431C73A47C00EB9751 /* SingleImageSaver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SingleImageSaver.swift; sourceTree = ""; }; @@ -174,8 +157,6 @@ E3669CC41F96848D00CCDD01 /* CameraViewController.xib */, FA7E6B9A1B429012000E1B14 /* CropViewController.swift */, BF5861F61F613FB800B406F6 /* CropViewController.xib */, - B2357AB01FA50D51003F9ACF /* FilterViewController.swift */, - B2357AAF1FA50D51003F9ACF /* FilterViewController.xib */, E35A240E1F50B49A001047FD /* ConfirmViewController.swift */, BF5861FB1F61404C00B406F6 /* ConfirmViewController.xib */, ); @@ -199,10 +180,6 @@ children = ( E33BE71B1F5134C1005842DC /* CIImage+Utilities.m */, E33BE71C1F5134C1005842DC /* CIImage+Utilities.h */, - B2357AB81FA51156003F9ACF /* UIImage+Filter.h */, - B2357AB71FA51156003F9ACF /* UIImage+Filter.m */, - B2357AB51FA51155003F9ACF /* UIImageView+Filter.h */, - B2357AB61FA51155003F9ACF /* UIImageView+Filter.m */, FAB50BF01B413E8C009905B9 /* ImageFetcher.swift */, C40665431C73A47C00EB9751 /* SingleImageSaver.swift */, C40665471C73B72D00EB9751 /* SingleImageFetcher.swift */, @@ -280,12 +257,9 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - B2357ABB1FA5115C003F9ACF /* UIImage+Filter.h in Headers */, E33BE7271F546920005842DC /* IRLRectangleFeature+Extensions.h in Headers */, E33BE71F1F5134C1005842DC /* CIImage+Utilities.h in Headers */, - B2357ABF1FA511DC003F9ACF /* CameraViewController-Bridging-Header.h in Headers */, E33BE72E1F5494EC005842DC /* CameraViewController.h in Headers */, - B2357ABD1FA5115C003F9ACF /* UIImageView+Filter.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -379,7 +353,6 @@ E3669CC21F96848D00CCDD01 /* CameraViewController.xib in Resources */, BF5861F91F61404C00B406F6 /* ConfirmViewController.xib in Resources */, C482A0151CAEB1B100541D08 /* CameraViewAssets.xcassets in Resources */, - B2357AB41FA50E13003F9ACF /* FilterViewController.xib in Resources */, BF5861F41F613FB800B406F6 /* CropViewController.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -395,7 +368,6 @@ FAF0584C1B31618D008E5592 /* Images.xcassets in Resources */, FA778A411B8319D8005807E7 /* image.jpg in Resources */, BF5861F31F613FB800B406F6 /* CropViewController.xib in Resources */, - B2357AB11FA50D51003F9ACF /* FilterViewController.xib in Resources */, BF5861F81F61404C00B406F6 /* ConfirmViewController.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -418,7 +390,6 @@ E35A240A1F509FBD001047FD /* CGRectExtensions.swift in Sources */, E33BE7291F546920005842DC /* IRLRectangleFeature+Extensions.m in Sources */, C482A0081CAEB18D00541D08 /* CameraGlobals.swift in Sources */, - B2357ABC1FA5115C003F9ACF /* UIImage+Filter.m in Sources */, C482A0091CAEB18D00541D08 /* VolumeControl.swift in Sources */, C482A00A1CAEB18D00541D08 /* PhotoLibraryAuthorizer.swift in Sources */, E35A24071F509CDC001047FD /* OverlayView.swift in Sources */, @@ -426,10 +397,8 @@ C482A00B1CAEB18D00541D08 /* UIButtonExtensions.swift in Sources */, C482A00C1CAEB18D00541D08 /* PhotoLibraryViewController.swift in Sources */, C482A00D1CAEB18D00541D08 /* CameraViewController.swift in Sources */, - B2357AB31FA50E13003F9ACF /* FilterViewController.swift in Sources */, C482A00E1CAEB18D00541D08 /* CropViewController.swift in Sources */, C482A00F1CAEB18D00541D08 /* ImageCell.swift in Sources */, - B2357ABE1FA5115C003F9ACF /* UIImageView+Filter.m in Sources */, C482A0101CAEB18D00541D08 /* PermissionsView.swift in Sources */, C482A0111CAEB18D00541D08 /* CameraView.swift in Sources */, C482A0121CAEB18D00541D08 /* CropOverlay.swift in Sources */, @@ -445,12 +414,10 @@ E35A240F1F50B49A001047FD /* ConfirmViewController.swift in Sources */, FA5FA3431B3AFA2B00497C62 /* PermissionsView.swift in Sources */, FAB50BFC1B413E8C009905B9 /* ImageFetcher.swift in Sources */, - B2357ABA1FA51156003F9ACF /* UIImage+Filter.m in Sources */, E35A24091F509FBD001047FD /* CGRectExtensions.swift in Sources */, FA82313A1B3C296C00A837BE /* Utilities.swift in Sources */, FAB50C001B413E8C009905B9 /* PhotoLibraryViewController.swift in Sources */, E33BE7281F546920005842DC /* IRLRectangleFeature+Extensions.m in Sources */, - B2357AB91FA51156003F9ACF /* UIImageView+Filter.m in Sources */, FAF0586A1B317894008E5592 /* CameraShot.swift in Sources */, E35A240C1F509FFC001047FD /* CGPointExtensions.swift in Sources */, FAF058661B316695008E5592 /* CameraViewController.swift in Sources */, @@ -462,7 +429,6 @@ FAF058471B31618D008E5592 /* ViewController.swift in Sources */, FAF058681B3175C5008E5592 /* CameraView.swift in Sources */, C4D9BA471CA73163004F70F7 /* UIButtonExtensions.swift in Sources */, - B2357AB21FA50D51003F9ACF /* FilterViewController.swift in Sources */, C40665461C73A94100EB9751 /* CameraGlobals.swift in Sources */, FAF058451B31618D008E5592 /* AppDelegate.swift in Sources */, C40665441C73A47C00EB9751 /* SingleImageSaver.swift in Sources */, diff --git a/ALCameraViewController/CameraViewAssets.xcassets/Line.imageset/Contents.json b/ALCameraViewController/CameraViewAssets.xcassets/Line.imageset/Contents.json deleted file mode 100644 index 466a19fe..00000000 --- a/ALCameraViewController/CameraViewAssets.xcassets/Line.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "Line.pdf" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/ALCameraViewController/CameraViewAssets.xcassets/Line.imageset/Line.pdf b/ALCameraViewController/CameraViewAssets.xcassets/Line.imageset/Line.pdf deleted file mode 100644 index 72e0398be7c42e7e508e674e2c77be289885b429..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3865 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 N29a`bC_`09{|6g*qZ9xD diff --git a/ALCameraViewController/CameraViewAssets.xcassets/bwFilterNormal.imageset/Contents.json b/ALCameraViewController/CameraViewAssets.xcassets/bwFilterNormal.imageset/Contents.json deleted file mode 100644 index ee1b44a5..00000000 --- a/ALCameraViewController/CameraViewAssets.xcassets/bwFilterNormal.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "bwFilterNormal.pdf" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/ALCameraViewController/CameraViewAssets.xcassets/bwFilterNormal.imageset/bwFilterNormal.pdf b/ALCameraViewController/CameraViewAssets.xcassets/bwFilterNormal.imageset/bwFilterNormal.pdf deleted file mode 100644 index 3787d9dff2f049b1f0f32d44292c1192549f1c58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6040 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 diff --git a/ALCameraViewController/CameraViewAssets.xcassets/colorFilterHighlight.imageset/Contents.json b/ALCameraViewController/CameraViewAssets.xcassets/colorFilterHighlight.imageset/Contents.json deleted file mode 100644 index db990789..00000000 --- a/ALCameraViewController/CameraViewAssets.xcassets/colorFilterHighlight.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "colorFilterHighlight.pdf" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/ALCameraViewController/CameraViewAssets.xcassets/colorFilterHighlight.imageset/colorFilterHighlight.pdf b/ALCameraViewController/CameraViewAssets.xcassets/colorFilterHighlight.imageset/colorFilterHighlight.pdf deleted file mode 100644 index c708650260aeca77d1acb23769364281157ad4e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4303 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 W-0&1>d~XO$T1FBqAfSp;1OEr`r}qv3 diff --git a/ALCameraViewController/CameraViewAssets.xcassets/exposureFilterHighlight.imageset/Contents.json b/ALCameraViewController/CameraViewAssets.xcassets/exposureFilterHighlight.imageset/Contents.json deleted file mode 100644 index 7236b7bb..00000000 --- a/ALCameraViewController/CameraViewAssets.xcassets/exposureFilterHighlight.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "exposureFilterHighlight.pdf" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/ALCameraViewController/CameraViewAssets.xcassets/exposureFilterHighlight.imageset/exposureFilterHighlight.pdf b/ALCameraViewController/CameraViewAssets.xcassets/exposureFilterHighlight.imageset/exposureFilterHighlight.pdf deleted file mode 100644 index f8bcb778e1e4aaf26624c77f9f9be55ddf7acb69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5910 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 diff --git a/ALCameraViewController/CameraViewAssets.xcassets/exposureFilterNormal.imageset/Contents.json b/ALCameraViewController/CameraViewAssets.xcassets/exposureFilterNormal.imageset/Contents.json deleted file mode 100644 index c0836b1c..00000000 --- a/ALCameraViewController/CameraViewAssets.xcassets/exposureFilterNormal.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "exposureFilterNormal.pdf" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/ALCameraViewController/CameraViewAssets.xcassets/exposureFilterNormal.imageset/exposureFilterNormal.pdf b/ALCameraViewController/CameraViewAssets.xcassets/exposureFilterNormal.imageset/exposureFilterNormal.pdf deleted file mode 100644 index f81e16cb41f6e1230cdb90c9043c6a95ce35b0cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5635 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 diff --git a/ALCameraViewController/CameraViewAssets.xcassets/grayFilterNormal.imageset/Contents.json b/ALCameraViewController/CameraViewAssets.xcassets/grayFilterNormal.imageset/Contents.json deleted file mode 100644 index fe30d28f..00000000 --- a/ALCameraViewController/CameraViewAssets.xcassets/grayFilterNormal.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "grayFilterNormal.pdf" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/ALCameraViewController/CameraViewAssets.xcassets/grayFilterNormal.imageset/grayFilterNormal.pdf b/ALCameraViewController/CameraViewAssets.xcassets/grayFilterNormal.imageset/grayFilterNormal.pdf deleted file mode 100644 index 9eeda26e504ca21d04d760e38bbfb4d0763b667b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4339 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 bf65QLd3w>T@%;xuD8k`D2?;HIZQy?Z9x!t~ diff --git a/ALCameraViewController/CameraViewAssets.xcassets/originalFilterHighlight.imageset/Contents.json b/ALCameraViewController/CameraViewAssets.xcassets/originalFilterHighlight.imageset/Contents.json deleted file mode 100644 index dc0cae75..00000000 --- a/ALCameraViewController/CameraViewAssets.xcassets/originalFilterHighlight.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "originalFilterHighlight.pdf" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/ALCameraViewController/CameraViewAssets.xcassets/originalFilterHighlight.imageset/originalFilterHighlight.pdf b/ALCameraViewController/CameraViewAssets.xcassets/originalFilterHighlight.imageset/originalFilterHighlight.pdf deleted file mode 100644 index a842f531028808183f6d9480256d728debde5092..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29642 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 diff --git a/ALCameraViewController/CameraViewAssets.xcassets/originalFilterNormal.imageset/Contents.json b/ALCameraViewController/CameraViewAssets.xcassets/originalFilterNormal.imageset/Contents.json deleted file mode 100644 index 19119a71..00000000 --- a/ALCameraViewController/CameraViewAssets.xcassets/originalFilterNormal.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "originalFilterNormal.pdf" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/ALCameraViewController/CameraViewAssets.xcassets/originalFilterNormal.imageset/originalFilterNormal.pdf b/ALCameraViewController/CameraViewAssets.xcassets/originalFilterNormal.imageset/originalFilterNormal.pdf deleted file mode 100644 index 247b50547892a0633d7c75a08279fcb9bba6aeae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29426 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�We8#7I_F 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 JAVmp;{{!=SkA46E diff --git a/ALCameraViewController/Utilities/UIImage+Filter.h b/ALCameraViewController/Utilities/UIImage+Filter.h deleted file mode 100755 index 0da00061..00000000 --- a/ALCameraViewController/Utilities/UIImage+Filter.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// UIImage+Filter.h -// Updates -// -// Created by Nebojsa Petrovic on 4/16/13. -// Copyright (c) 2013 Nebojsa Petrovic. All rights reserved. -// - -#import - -typedef enum { - ImageFilterPresetOriginal = 0, - ImageFilterPresetBlackAndWhite, - ImageFilterPresetEnhanceColor, - ImageFilterPresetEnhanceExposure, - ImageFilterPresetGrayScale -} ImageFilterPreset; - -@interface UIImage (Filter) - -/* - Asynchronously applies 'filter' to the target image and - returns the filtered image in the block. - The target image remains unchanged. - */ -- (void)applyFilter:(CIFilter *)filter - completion:(void (^)(UIImage *filteredImage))completionBlock; - -/* - Returns a UIImage from the filter. - */ -- (UIImage *)imageWithFilter:(CIFilter *)filter; - -/* - Returns a UIImage from a filter preset - */ -- (UIImage *)imageWithFilterPreset:(ImageFilterPreset)preset intensity:(float)intensity; - -/* - Returns a filter using a common preset, and intensity value, ranging from 0 to 1 - */ -- (CIFilter *)filterWithPreset:(ImageFilterPreset)preset; -- (CIFilter *)filterWithPreset:(ImageFilterPreset)preset intensity:(float)intensity; - -@end diff --git a/ALCameraViewController/Utilities/UIImage+Filter.m b/ALCameraViewController/Utilities/UIImage+Filter.m deleted file mode 100755 index 094fe45f..00000000 --- a/ALCameraViewController/Utilities/UIImage+Filter.m +++ /dev/null @@ -1,241 +0,0 @@ -// -// UIImage+Filter.m -// Updates -// -// Created by Nebojsa Petrovic on 4/16/13. -// Copyright (c) 2013 Nebojsa Petrovic. All rights reserved. -// - -#import "UIImage+Filter.h" - -@interface ValueRange : NSObject - -@property(nonatomic) float low; -@property(nonatomic) float high; - -- (id)initWithLow:(float)low high:(float)high; -- (NSNumber*)valueWithIntensity:(float)intensity; -+ (id)valueWithLow:(float)low high:(float)high; - -@end - - -@implementation ValueRange - -+ (id)valueWithLow:(float)low high:(float)high { - return [[self alloc] initWithLow:low high:high]; -} - -- (id)initWithLow:(float)low high:(float)high { - if ( self = [super init] ) { - self.low = low; - self.high = high; - } - - return self; -} - -- (NSNumber*)valueWithIntensity:(float)intensity { - return [NSNumber numberWithFloat:self.low + (self.high-self.low)*intensity]; -} -@end - - -@implementation UIImage (Filter) - -- (void)applyFilter:(CIFilter *)filter - completion:(void (^)(UIImage *filteredImage))completionBlock { - - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ - CIContext *context = [CIContext contextWithOptions:nil]; - CIImage *outputImage = filter.outputImage; - CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]]; - UIImage *newImg = [UIImage imageWithCGImage:cgimg]; - CGImageRelease(cgimg); - - dispatch_async(dispatch_get_main_queue(), ^{ - completionBlock(newImg); - }); - }); - -} - -- (UIImage *)imageWithFilter:(CIFilter *)filter { - CIContext *context = [CIContext contextWithOptions:nil]; - CIImage *outputImage = filter.outputImage; - CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]]; - UIImage *newImg = [UIImage imageWithCGImage:cgimg]; - CGImageRelease(cgimg); - return newImg; -} - -- (UIImage *)imageWithFilterPreset:(ImageFilterPreset)preset { - return [self imageWithFilterPreset:preset intensity:0.3]; -} - -- (UIImage *)imageWithFilterPreset:(ImageFilterPreset)preset intensity:(float)intensity{ - if (preset == ImageFilterPresetOriginal) { - return self; - } - - return [self imageWithFilter:[self filterWithPreset:preset intensity:intensity]]; -} - -- (CIFilter *)filterWithPreset:(ImageFilterPreset)preset { - return [self filterWithPreset:preset intensity:0.3]; -} - -- (CIFilter *)filterWithPreset:(ImageFilterPreset)preset intensity:(float)intensity { - CIImage *image = [CIImage imageWithCGImage:self.CGImage]; - CIFilter *filter = nil; - - switch (preset) { - case ImageFilterPresetBlackAndWhite: { - CIFilter* colorControl = [CIFilter filterWithName:@"CIColorControls" - keysAndValues:kCIInputImageKey, image, nil]; - [self setValueForPreset:preset filter:colorControl intensity:intensity]; - - - CIFilter* sharpMask = [CIFilter filterWithName:@"CIUnsharpMask" - keysAndValues:kCIInputImageKey, colorControl.outputImage, nil]; - [self setValueForPreset:preset filter:sharpMask intensity:intensity]; - - filter = [CIFilter filterWithName:@"CIExposureAdjust" - keysAndValues:kCIInputImageKey, sharpMask.outputImage, nil]; - [self setValueForPreset:preset filter:filter intensity:intensity]; - - } - break; - case ImageFilterPresetGrayScale: { - CIFilter* unsharpMask = [CIFilter filterWithName:@"CIUnsharpMask" - keysAndValues:kCIInputImageKey, image, nil]; - [self setValueForPreset:preset filter:unsharpMask intensity:intensity]; - - filter = [CIFilter filterWithName:@"CIColorControls" - keysAndValues:kCIInputImageKey, unsharpMask.outputImage, nil]; - [self setValueForPreset:preset filter:filter intensity:intensity]; - - - } - break; - case ImageFilterPresetEnhanceColor: { - CIFilter* colorControl = [CIFilter filterWithName:@"CIColorControls" - keysAndValues:kCIInputImageKey, image, nil]; - [self setValueForPreset:preset filter:colorControl intensity:intensity]; - - - filter = [CIFilter filterWithName:@"CIUnsharpMask" - keysAndValues:kCIInputImageKey, colorControl.outputImage, nil]; - [self setValueForPreset:preset filter:filter intensity:intensity]; - - } - break; - case ImageFilterPresetEnhanceExposure: { - CIFilter* exposure = [CIFilter filterWithName:@"CIExposureAdjust" - keysAndValues:kCIInputImageKey, image, nil]; - [self setValueForPreset:preset filter:exposure intensity:intensity]; - - CIFilter* gamma = [CIFilter filterWithName:@"CIGammaAdjust" - keysAndValues:kCIInputImageKey, exposure.outputImage, nil]; - [self setValueForPreset:preset filter:gamma intensity:intensity]; - - - - CIFilter* noiseReduction = [CIFilter filterWithName:@"CINoiseReduction" - keysAndValues:kCIInputImageKey, gamma.outputImage, nil]; - [self setValueForPreset:preset filter:noiseReduction intensity:intensity]; - - - filter = [CIFilter filterWithName:@"CIColorControls" - keysAndValues:kCIInputImageKey, noiseReduction.outputImage, nil]; - [self setValueForPreset:preset filter:filter intensity:intensity]; - - } - break; - default: - break; - } - - return filter; -} - -+(NSDictionary*)presetParameters { - static NSDictionary *inst = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - inst = @{ - @(ImageFilterPresetEnhanceExposure): @{ @"CIExposureAdjust" : @{ - @"inputEV": [ValueRange valueWithLow:0 high:5] - }, - @"CIGammaAdjust": @{ - @"inputPower": [ValueRange valueWithLow:1 high:0.7] - } , - @"CINoiseReduction": @{ - @"inputNoiseLevel": [ValueRange valueWithLow:0 high:0.01], - @"inputSharpness": [ValueRange valueWithLow:0.3 high:1.1] - }, - @"CIColorControls": @{ - @"inputSaturation": [ValueRange valueWithLow:1 high:1], - @"inputBrightness": [ValueRange valueWithLow:0 high:0], - @"inputContrast": [ValueRange valueWithLow:1 high:1.3] - } - }, - @(ImageFilterPresetEnhanceColor): @{ @"CIColorControls" : @{ - @"inputSaturation": [ValueRange valueWithLow:1 high:1.9], - @"inputBrightness": [ValueRange valueWithLow:0 high:0.1], - @"inputContrast": [ValueRange valueWithLow:1 high:1.2] - }, - @"CIUnsharpMask": @{ - @"inputRadius": [ValueRange valueWithLow:0 high:2.5], - @"inputIntensity": [ValueRange valueWithLow:0 high:0.5] - } - }, - @(ImageFilterPresetGrayScale): @{ @"CIColorControls" : @{ - @"inputSaturation": [ValueRange valueWithLow:1 high:0], - @"inputBrightness": [ValueRange valueWithLow:0 high:0], - @"inputContrast": [ValueRange valueWithLow:1 high:1] - }, - @"CIUnsharpMask": @{ - @"inputRadius": [ValueRange valueWithLow:0 high:2.5], - @"inputIntensity": [ValueRange valueWithLow:0 high:0.15] - } - }, - @(ImageFilterPresetBlackAndWhite): @{ @"CIExposureAdjust" : @{ - @"inputEV": [ValueRange valueWithLow:0 high:2.3] - }, - @"CIUnsharpMask" : @{ - @"inputRadius": [ValueRange valueWithLow:0 high:75.0], - @"inputIntensity": [ValueRange valueWithLow:0 high:2.0] - }, - @"CIColorControls": @{ - @"inputSaturation": [ValueRange valueWithLow:1 high:0], - @"inputBrightness": [ValueRange valueWithLow:0 high:0.15], - @"inputContrast": [ValueRange valueWithLow:1 high:1.3] - } - } - }; - }); - return inst; -} - --(void)setValueForPreset:(ImageFilterPreset)preset filter:(CIFilter*)filter intensity:(float)intensity{ - NSDictionary* presetDict = [[[self class] presetParameters] objectForKey:@(preset)]; - - NSDictionary *subDict = presetDict[[filter name]]; - - for (NSString* key in [subDict allKeys]) { - ValueRange *value = subDict[key]; - [filter setValue:[value valueWithIntensity:intensity] forKey:key]; - } - -} - -@end - - - - - - - - diff --git a/ALCameraViewController/Utilities/UIImageView+Filter.h b/ALCameraViewController/Utilities/UIImageView+Filter.h deleted file mode 100755 index ec34f46a..00000000 --- a/ALCameraViewController/Utilities/UIImageView+Filter.h +++ /dev/null @@ -1,65 +0,0 @@ -// -// UIImageView+Filter.h -// Updates -// -// Created by Nebojsa Petrovic on 4/14/13. -// Copyright (c) 2013 Nebojsa Petrovic. All rights reserved. -// - -#import -#import "UIImage+Filter.h" - -@interface UIImageView (Filter) - -/* - Apply 'filter' to the image view's image. - The filter application can be animated with custom duration - and options. - When the filter has finished being applied, the completionBlock is called. - */ -- (void)applyFilter:(CIFilter *)filter - animationDuration:(NSTimeInterval)animationDuration - animationOptions:(UIViewAnimationOptions)animationOptions - completion:(void (^)(void))completionBlock; -- (void)applyFilterWithPreset:(ImageFilterPreset)preset - intensity:(float)intensity - animationDuration:(NSTimeInterval)animationDuration - animationOptions:(UIViewAnimationOptions)animationOptions - completion:(void (^)(void))completionBlock; - -/* - Apply 'filter' to the image view's image. - If 'animated' is YES, the filter application is animated - with a cross-disolve effect for a duration of 0.3 seconds. - When the filter has finished being applied, the completionBlock is called. - */ -- (void)applyFilter:(CIFilter *)filter - animated:(BOOL)animated - completion:(void (^)(void))completionBlock; -- (void)applyFilterWithPreset:(ImageFilterPreset)preset - intensity:(float)intensity - animated:(BOOL)animated - completion:(void (^)(void))completionBlock; - -/* - Apply 'filter' to the image view's image without animation. - When the filter has finished being applied, the completionBlock is called. - */ -- (void)applyFilter:(CIFilter *)filter - completion:(void (^)(void))completionBlock; -- (void)applyFilterWithPreset:(ImageFilterPreset)preset - intensity:(float)intensity - completion:(void (^)(void))completionBlock; - -/* - Apply 'filter' to the image view's image without animation. - */ -- (void)applyFilter:(CIFilter *)filter; -- (void)applyFilterWithPreset:(ImageFilterPreset)preset intensity:(float)intensity; - -/* - Remove any filters applied. This bring back the original image. - */ -- (void)removeFilter; - -@end diff --git a/ALCameraViewController/Utilities/UIImageView+Filter.m b/ALCameraViewController/Utilities/UIImageView+Filter.m deleted file mode 100755 index 6c8655cb..00000000 --- a/ALCameraViewController/Utilities/UIImageView+Filter.m +++ /dev/null @@ -1,129 +0,0 @@ -// -// UIImageView+Filter.m -// Updates -// -// Created by Nebojsa Petrovic on 4/14/13. -// Copyright (c) 2013 Nebojsa Petrovic. All rights reserved. -// - -#import "UIImageView+Filter.h" -#import - -// Arbitrary tag so that we can identify filtered images. -// Otherwise we risk removing a custom subview that isn't a filter. -#define IMAGE_FILTER_TAG 123454321 - -@implementation UIImageView (Filter) - -- (void)applyFilter:(CIFilter *)filter - animationDuration:(NSTimeInterval)animationDuration - animationOptions:(UIViewAnimationOptions)animationOptions - completion:(void (^)(void))completionBlock { - - [self.image applyFilter:filter completion:^(UIImage *filteredImage) { - // Remove any previous filters - [self removeFilter]; - - // Add the filtered image on top of the original image. - UIImageView *filteredImageView = [[UIImageView alloc] initWithFrame:self.bounds]; - filteredImageView.tag = IMAGE_FILTER_TAG; - filteredImageView.contentMode = self.contentMode; - [self addSubview:filteredImageView]; - - // No animation - if (animationDuration == 0.0f) { - filteredImageView.image = filteredImage; - if (completionBlock) { - completionBlock(); - } - return; - } - - // Animation - [UIView transitionWithView:self - duration:animationDuration - options:animationOptions - animations:^{ - filteredImageView.image = filteredImage; - } completion:^(BOOL finished) { - if (completionBlock) { - completionBlock(); - } - }]; - }]; -} - -- (void)applyFilterWithPreset:(ImageFilterPreset)preset - animationDuration:(NSTimeInterval)animationDuration - animationOptions:(UIViewAnimationOptions)animationOptions - completion:(void (^)(void))completionBlock { - CIFilter *filter = [self.image filterWithPreset:preset]; - [self applyFilter:filter - animationDuration:animationDuration - animationOptions:animationOptions - completion:completionBlock]; -} - -- (void)applyFilterWithPreset:(ImageFilterPreset)preset - intensity:(float)intensity - animationDuration:(NSTimeInterval)animationDuration - animationOptions:(UIViewAnimationOptions)animationOptions - completion:(void (^)(void))completionBlock { - CIFilter *filter = [self.image filterWithPreset:preset intensity:intensity]; - [self applyFilter:filter - animationDuration:animationDuration - animationOptions:animationOptions - completion:completionBlock]; -} - -- (void)applyFilter:(CIFilter *)filter - animated:(BOOL)animated - completion:(void (^)(void))completionBlock { - [self applyFilter:filter - animationDuration:animated ? 0.3f : 0.0f - animationOptions:UIViewAnimationOptionTransitionCrossDissolve - completion:completionBlock]; -} - -- (void)applyFilterWithPreset:(ImageFilterPreset)preset - intensity:(float)intensity - animated:(BOOL)animated - completion:(void (^)(void))completionBlock { - CIFilter *filter = [self.image filterWithPreset:preset intensity:intensity]; - [self applyFilter:filter - animated:animated - completion:completionBlock]; -} - -- (void)applyFilter:(CIFilter *)filter - completion:(void (^)(void))completionBlock { - [self applyFilter:filter animated:NO completion:completionBlock]; -} - -- (void)applyFilterWithPreset:(ImageFilterPreset)preset - intensity:(float)intensity - completion:(void (^)(void))completionBlock { - CIFilter *filter = [self.image filterWithPreset:preset intensity:intensity]; - [self applyFilter:filter - completion:completionBlock]; -} - -- (void)applyFilter:(CIFilter *)filter { - [self applyFilter:filter completion:nil]; -} - -- (void)applyFilterWithPreset:(ImageFilterPreset)preset intensity:(float)intensity{ - CIFilter *filter = [self.image filterWithPreset:preset intensity:intensity]; - [self applyFilter:filter]; -} - -- (void)removeFilter { - for (UIView *subview in self.subviews) { - if ([subview isKindOfClass:[UIImageView class]] && - subview.tag == IMAGE_FILTER_TAG) { - [subview removeFromSuperview]; - } - } -} - -@end diff --git a/ALCameraViewController/ViewController/CropViewController.swift b/ALCameraViewController/ViewController/CropViewController.swift index 57c0dbb8..0b3855ff 100644 --- a/ALCameraViewController/ViewController/CropViewController.swift +++ b/ALCameraViewController/ViewController/CropViewController.swift @@ -395,9 +395,17 @@ public class CropViewController: UIViewController, UIScrollViewDelegate { private func startConfimController(uiImage: UIImage) { - let filterController = FilterViewController(uiImage, asset) - filterController.onComplete = onComplete - self.navigationController?.pushViewController(filterController, animated: false) + let confirmController = ConfirmViewController(uiImage, asset) + confirmController.onComplete = { [weak self] image, asset in + guard let image = image else { + return + } + + self?.onComplete?(image, asset) + self?.onComplete = nil + } + + self.navigationController?.pushViewController(confirmController, animated: false) } } diff --git a/ALCameraViewController/ViewController/FilterViewController.swift b/ALCameraViewController/ViewController/FilterViewController.swift deleted file mode 100644 index 3c573911..00000000 --- a/ALCameraViewController/ViewController/FilterViewController.swift +++ /dev/null @@ -1,144 +0,0 @@ -// -// FilterViewController.swift -// ALCameraViewController -// -// Created by Narek Simonyan on 10/28/17. -// Copyright © 2017 zero. All rights reserved. -// - -import UIKit -import Photos - -class FilterViewController: UIViewController { - - @IBOutlet var filterView: UIView! - - @IBOutlet var doneButton: UIButton! - @IBOutlet var backButton: UIButton! - @IBOutlet var imageView: UIImageView! - @IBOutlet var grayFilter: UIButton! - @IBOutlet var colorFilter: UIButton! - @IBOutlet var exposureFilter: UIButton! - @IBOutlet var bwFilter: UIButton! - @IBOutlet var filterIntensitySlider: UISlider! - - let image: UIImage? - let asset: PHAsset? - - var filterType:ImageFilterPreset? { - didSet { - apply() - } - } - var filterIntensity: Float = 0.3 { - didSet { - apply() - } - } - - public var onComplete: CameraViewCompletion? - - public override var prefersStatusBarHidden: Bool { - return true - } - - public override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation { - return UIStatusBarAnimation.slide - } - - open override var supportedInterfaceOrientations: UIInterfaceOrientationMask { - return .portrait - } - - public init(_ image: UIImage?, _ asset: PHAsset?) { - self.image = image - self.asset = asset - super.init(nibName: "FilterViewController", bundle: CameraGlobals.shared.bundle) - } - - public required init?(coder aDecoder: NSCoder) { - image = nil - asset = nil - super.init(coder: aDecoder) - } - - override func viewDidLoad() { - super.viewDidLoad() - - imageView.image = image - - setupButtonActions() - } - - internal func setupButtonActions() { - - backButton.action = {[weak self] in self?.navigationController?.popViewController(animated: false)} - doneButton.action = { [weak self] in self?.confirmPhoto() } - grayFilter.action = { [weak self] in - guard let strongSelf = self else {return} - strongSelf.applyFilter(sender: strongSelf.grayFilter) - } - colorFilter.action = { [weak self] in - guard let strongSelf = self else {return} - strongSelf.applyFilter(sender: strongSelf.colorFilter)} - exposureFilter.action = { [weak self] in - guard let strongSelf = self else {return} - strongSelf.applyFilter(sender: strongSelf.exposureFilter) - } - bwFilter.action = { [weak self] in - guard let strongSelf = self else {return} - strongSelf.applyFilter(sender: strongSelf.bwFilter) - } - } - - internal func confirmPhoto() { - - guard let image = imageView.image else { - return - } - let confirmController = ConfirmViewController(image, asset) - - confirmController.onComplete = { [weak self] image, asset in - guard let image = image else { - return - } - - self?.onComplete?(image, asset) - self?.onComplete = nil - } - - self.navigationController?.pushViewController(confirmController, animated: false) - } - - internal func applyFilter (sender: UIButton) { - - let dictionary = [grayFilter:ImageFilterPresetGrayScale, - bwFilter:ImageFilterPresetBlackAndWhite, - exposureFilter:ImageFilterPresetEnhanceExposure, - colorFilter:ImageFilterPresetEnhanceColor] - - guard let filter = dictionary[sender] else { - return - } - - _ = [grayFilter,colorFilter,exposureFilter,bwFilter].map({$0?.isSelected = false}) - sender.isSelected = true - filterType = filter - } - - internal func apply() { - - guard let filterType = filterType, let filter = imageView.image?.filter(with: filterType, intensity: filterIntensity) else { - return - } - imageView.image?.apply(filter, completion: { (image) in - DispatchQueue.main.async { [weak self] in - self?.imageView.image = image - } - }) - } - - @IBAction func filterIntensityChanged(_ sender: UISlider) { - filterIntensity = sender.value - } -} diff --git a/ALCameraViewController/ViewController/FilterViewController.xib b/ALCameraViewController/ViewController/FilterViewController.xib deleted file mode 100644 index fc92acbb..00000000 --- a/ALCameraViewController/ViewController/FilterViewController.xib +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CameraViewController/CameraViewController-Bridging-Header.h b/CameraViewController/CameraViewController-Bridging-Header.h index a3feef8d..3e5d816f 100644 --- a/CameraViewController/CameraViewController-Bridging-Header.h +++ b/CameraViewController/CameraViewController-Bridging-Header.h @@ -2,7 +2,6 @@ // Use this file to import your target's public headers that you would like to expose to Swift. // -#import "UIImage+Filter.h" -#import "UIImageView+Filter.h" + #import "CIImage+Utilities.h" #import "IRLRectangleFeature+Extensions.h"