Я использовал фильтр гауссовского размытия GPUImage, чтобы размыть неподвижное изображение. Я хочу связать размер размытия с элементом пользовательского интерфейса, и когда элемент изменен пользователем, я размываю изображение. То, как я делаю это прямо сейчас, - это изменить blurSize, когда произошла значительная (> 0,25) смена, повторно применить фильтр и оживить новое изображение в imageView.GPUImage анимированный гауссовский фильтр размытия
Есть ли более эффективный способ для меня сделать это?
На iPhone 5, хотя производительность не лагги, она также не является супер гладкой (но, возможно, это потому, что эта операция слишком дорога, чтобы быть супер гладкой).
Лучшим решением было бы избежать использования UIImageView в качестве выходного адресата для размытого изображения. В извлечении UIImage из фреймворка много накладных расходов и аналогичная сумма при присвоении ему UIImageView. Вместо этого размытие должно отображаться непосредственно в GPUImageView, чтобы все это оставалось на графическом процессоре. Это гораздо более быстрый маршрут. –
Брэд, прежде всего отличная работа над вашей библиотекой! Я использую UIImageView, потому что UIImages хранятся в NSCache и кроссфейдируются взад и вперед. GPUImage запускается только один раз за размытие «tick» (BLUR_STEP), а результаты интерполируются с использованием imageView2.alpha (до тех пор, пока NSCache не выдворяет полученный UII-файл из-за давления памяти). –
@AdlaiHoller Спасибо за подробный фрагмент кода. Мой вопрос заключается в том, почему мы используем метод представления изображений в виде стоп-кадра? Имеет ли 70% непрозрачный 4 в верхней части 3, делает размытие более реалистичным (хотя это субъективный термин)? –