Comments 25
По мойму, очень хорошо а лаконично всё описано. Спасибо большое за обзор разных способов!
0
Как раз вовремя. Правда я уже реализовал real time blur, но все равно спасибо, я утвердился в мысли, что все правильно сделал. Кстати есть еще одна реализация динамического блюра, основанная на небольшом реверс-инжиниринге uitoolbar и использовании CAFilter. Правда это закрытый API, не факт, что Apple пропустит.
+1
А почему-бы не использовать для этого CIFilter (CIGaussianBlur), он немного медленнее, но зато встроенный родной и стандартный.
А вот кстати хорошая статья на сравнение разных подходов.
А тут наглядная демонстрация встроенных фильтров.
А вот кстати хорошая статья на сравнение разных подходов.
А тут наглядная демонстрация встроенных фильтров.
+1
Они медленные. Очень медленные.И CIFilter применяется к картинке, а CAFilter применяется к UIView.
0
Особой разницы, чем блюрить нет.
Можно CIFilter, но UIImage+ImageEffects из WWDC работающий с Accelerated Framework гораздо лучше. Проблема в том, что renderInContext, который приходилось использовать до 7-ки работает очень медленно и real time blur с ним фиг сделаешь.
Можно CIFilter, но UIImage+ImageEffects из WWDC работающий с Accelerated Framework гораздо лучше. Проблема в том, что renderInContext, который приходилось использовать до 7-ки работает очень медленно и real time blur с ним фиг сделаешь.
0
Я бы с удовольствием почитал, как реализовать такой же эффект в вэбе.
(результаты моих экспериментов совсем не так красивы)
(результаты моих экспериментов совсем не так красивы)
+3
+2
Взгляните на эту реализацию: codepen.io/rikschennink/pen/zvcgx
+1
И еще список различных вариантов в комментариях к вопросу на SO: stackoverflow.com/questions/17034485/ios-7s-blurred-overlay-effect-using-css
0
А на каких устройствах вы тестировали? Хотелось бы узнать скорость работы начиная с iPhone 4S. На 4-ке тоже было бы интересно узнать, но думаю и так ясно, что на нем будет гораздо медленнее работать.
0
Или можно сделать в ворде =)
+2
А мне в iOS7 блур не понравился, т.к. иногда кажется, что экран испорчен/грязный, а оказывается это что-то на заднем плане.
+1
Кстати, странно что Apple не включили в новые API возможность без каких-то ухищрений блюрить вьюхи так же как UIToolbar, было же очевидно что все ломанутся использовать эту возможность. Тем более что их же приложения вовсю эту возможность используют, например AppStore на iOS. И что мы в итоге получаем? Кучу приложений с растянутым UIToolbar и кражу лейера, несерьезно.
+1
Насколько я заметил, то, что автор топика привел как «готовую реализацию» на самом деле просто выпилено из кода примеров WWDC. Статья тоже по сути просто вольный пересказ небольшого кусочка одной из сессий WWDC.
+2
Насколько помню, текущая реализация слишком низкоуровневая (буквально на уровне драйверов видеокарты). Не включили по соображениям безопасности и целостности API.
0
Нативный блюр в iOS делается с помощью закрытых методов API, которые работают на очень низком уровне прямо с графическим буфером. Только это способно дать такую скорость отрисовки.
Снэпшоты подходят для статики, но динамику ими уже не нарисовать — будут тормоза (например, не выйдет сэмулировать блюр в навигейшн баре и списке прокрутки).
Снэпшоты подходят для статики, но динамику ими уже не нарисовать — будут тормоза (например, не выйдет сэмулировать блюр в навигейшн баре и списке прокрутки).
0
А куда более низкоуровневей? бэкинг-стор у CALAyer — это ни что иное как память видеокарты, ты веделяешь себе кусок и все операции происходят не в CPU, а в GPU с помощью конвеера.
Другой вопрос, что тут для эффектов испольузется блжндинг двух буферов, и для этого нужно иметь доступ к обоим бУферам. Поэтому мне кажется проблема состоит в том, что:
— с соображений безопасности
— не унифицировали API, поэтому не могут еще гарантировать обратой совместимости
— вообще решили, что не нужно это разработчикам.
Или всё вместе.
Другой вопрос, что тут для эффектов испольузется блжндинг двух буферов, и для этого нужно иметь доступ к обоим бУферам. Поэтому мне кажется проблема состоит в том, что:
— с соображений безопасности
— не унифицировали API, поэтому не могут еще гарантировать обратой совместимости
— вообще решили, что не нужно это разработчикам.
Или всё вместе.
0
Вместо renderInContext новый метод советуют в приложении-примере.
0
А кто-нибудь пробовал библиотеку iFlou вот отсюда? iFlou — The Blur Effect you need!
Blur эффект для iOS в данном случае использует технику, при которой используется заранее подготовленная картинка
Blur эффект для iOS в данном случае использует технику, при которой используется заранее подготовленная картинка
0
Only those users with full accounts are able to leave comments. Log in, please.
Blur в iOS7