Skip to content

Commit

Permalink
finish adjust filter strength
Browse files Browse the repository at this point in the history
  • Loading branch information
徐水峰 authored and xu.shuifeng committed Jun 15, 2018
1 parent b107709 commit dc2d7e8
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 1 deletion.
6 changes: 6 additions & 0 deletions MetalFilters/Models/FilterToolItem.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import Foundation

enum FilterToolType {
case adjustStrength
case adjust
case brightness
case contrast
Expand All @@ -33,6 +34,7 @@ enum FilterToolType {
/// - adjustStraighten: adjustStraighten, specially handled
enum SliderValueType {
case zeroToHundred
case hundredToZero
case negHundredToHundred
case tiltShift
case adjustStraighten
Expand All @@ -46,6 +48,8 @@ struct FilterToolItem {

var title: String {
switch type {
case .adjustStrength:
return ""
case .adjust:
return "Adjust"
case .brightness:
Expand Down Expand Up @@ -77,6 +81,8 @@ struct FilterToolItem {

var icon: String {
switch type {
case .adjustStrength:
return ""
case .adjust:
return "icon-structure"
case .brightness:
Expand Down
17 changes: 16 additions & 1 deletion MetalFilters/ViewControllers/PhotoEditorViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ class PhotoEditorViewController: UIViewController {
/// Currently just simply restore to selected filters
fileprivate var currentSelectFilterIndex: Int = 0
fileprivate var showUnEditedGesture: UILongPressGestureRecognizer?
fileprivate var currentAdjustStrengthFilter: MTFilter?

override func viewDidLoad() {
super.viewDidLoad()
Expand Down Expand Up @@ -299,6 +300,8 @@ class PhotoEditorViewController: UIViewController {

fileprivate func valueForFilterControlView(with tool: FilterToolItem) -> Float {
switch tool.type {
case .adjustStrength:
return 0
case .adjust:
return 0
case .brightness:
Expand Down Expand Up @@ -344,6 +347,13 @@ extension PhotoEditorViewController: FilterControlViewDelegate {
}

func filterControlView(_ controlView: FilterControlView, didChangeValue value: Float, filterTool: FilterToolItem) {

if filterTool.type == .adjustStrength {
currentAdjustStrengthFilter?.strength = value
imageView.image = currentAdjustStrengthFilter?.outputImage
return
}

switch filterTool.type {
case .adjust:
break
Expand Down Expand Up @@ -381,6 +391,8 @@ extension PhotoEditorViewController: FilterControlViewDelegate {
adjustFilter.tintShadowsIntensity = value
case .sharpen:
adjustFilter.sharpen = value
default:
break
}
imageView.image = adjustFilter.outputImage
}
Expand Down Expand Up @@ -421,7 +433,10 @@ extension PhotoEditorViewController: UICollectionViewDataSource, UICollectionVie
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if collectionView == filterCollectionView {
if currentSelectFilterIndex == indexPath.item {

let item = FilterToolItem(type: .adjustStrength, slider: .hundredToZero)
presentFilterControlView(for: item)
currentAdjustStrengthFilter = allFilters[currentSelectFilterIndex].init()
currentAdjustStrengthFilter?.inputImage = originInputImage
} else {
let filter = allFilters[indexPath.item].init()
filter.inputImage = originInputImage
Expand Down
5 changes: 5 additions & 0 deletions MetalFilters/Views/FilterControlView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,11 @@ class FilterControlView: UIView {
break
case .tiltShift:
break
case .hundredToZero:
sliderView.slider.maximumValue = 1
sliderView.slider.minimumValue = 0
sliderView.slider.value = 1.0
break
}

backgroundColor = .white
Expand Down

0 comments on commit dc2d7e8

Please sign in to comment.