Последние пару дней я искал, как реализовать фильтр для UIImage, вручную манипулируя яркостью, контрастностью, бликами, тенями, теплом и т. д., используя UISlider?
Вот мой код, который в настоящее время используется для регулировки яркости.
let currentValue = Int(editPictureView.sliderView.value)
editPictureView.currentPropertyValue.text = String(currentValue) + " "
brightnessFilter.setValue(NSNumber(value: editPictureView.sliderView.value), forKey: "inputBrightness")
outputImage = brightnessFilter.outputImage!
//let imageRef = context.createCGImage(outputImage, from: outputImage.extent)
newUIImage = UIImage(ciImage: outputImage)
editPictureView.selectedImageToEdit.image = newUIImage;
Но я получаю сообщение об ошибке, в котором говорится, что он нашел nil при распаковке. Все, о чем я прошу вас, это поделиться тем чувством, которое вы испытали, когда впервые решили эту задачу, и если вы сможете объяснить это, вы также лучше поймете это сами или, по крайней мере, так, как гласит история. Но если честно заранее спасибо.
brightnessFilter? Пожалуйста, включите его объявление в вопрос. Кроме того, никогда не используйте принудительную распаковку необязательных параметров, если вы не на 100% уверены, что к моменту их распаковки они будут иметь ненулевое значение. - person Dávid Pásztor   schedule 17.08.2017GLKView, использующего графический процессор. В приведенной выше ссылке есть комментарий к ответу о потреблении памяти, и использованиеUIImageили чего-либо, связанного с UIKit, приведет к снижению производительности. - person dfd   schedule 17.08.2017