Как удалить CIFilter, например CISepiaTone

Я работаю над приложением для редактирования фотографий для iOS. Пользователь должен иметь возможность не только применить CIFilter к изображению, что я успешно реализовал, но и удалить этот же CIFilter из своего образа, где я столкнулся с проблемами. Я искал в Интернете учебные пособия или ответы о том, как удалить CIFilter, такой как CISepiaTone, из изображения. Я не смог найти ничего полезного. Максимум, что я нашел, это расплывчатый ответ: «Если вы используете CIFilter, такой как CISepiaTone, вы можете по существу «удалить» его, вернув его значение обратно к исходному значению». Мне нужна помощь, чтобы реализовать эту идею в коде, чтобы удалить CIFilter. Любые ответы, предложения, код или комментарии очень ценятся!


person iOS Developer    schedule 09.08.2015    source источник
comment
Попробуйте это stackoverflow.com/a/50140306/4124168   -  person Leojin Bose    schedule 02.05.2018


Ответы (2)


Вам нужно заглянуть в NSUndoManager. Вы вызываете его, когда пользователь выполняет действие, которое вы хотели бы отменить. Он хранит стопку версий, поэтому вы можете вернуться к любому этапу, который вы хотите. Я уверен, что вы можете найти учебник или пример здесь, на SO.

person Tim Quinn    schedule 10.08.2015

Подумайте о том, чтобы сохранить копию исходного изображения для нужной отмены. У меня есть реализация, которая позволяет пользователям выбирать между различными фильтрами с помощью ползунка. Когда ползунок находится в крайнем левом положении, я заменяю последнее отфильтрованное изображение исходным изображением.

person user3408691    schedule 11.12.2018