Как создать неразрушающий и многоразовый эффект размытого / матового стекла?

25

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

Мне нужен png с белым матовым стеклом, который я могу использовать для наложения поверх обычных изображений, чтобы придать им всем вид матового стекла (как будто вы почти можете разобрать, что за этим стоит; возможно, некоторые цвета).

Примеры:

Пример размытого изображения
Нажмите на изображение для полного разрешения

введите описание изображения здесь

Возможно, белый фон с текстурой (зернистая текстура), затем размытие по Гауссу, а затем использование его в качестве слоя поверх всех моих изображений.

Я знаю, что ссылка, которую я разместил выше, вероятно, просто размытое изображение, но мне нужен слой, который можно повторно использовать в проекте iOS. Таким образом, можно использовать слой представления поверх разделов изображения и сделать изображение под ним размытым. Может быть, я не должен использовать размытие в качестве термина здесь. Я ищу матовое стекло.

То, что я пытаюсь сделать с этим изображением, это импортировать его в мое приложение iOS и использовать его как фон просмотра. Затем, когда этот вид перекрывает другие виды (вид карты, фото и т. Д.), Все они становятся матовыми. Я пытаюсь создать эффект этого изображения из iOS 7. И нет, я не хочу использовать новые функции дизайна iOS 7, потому что большинство моих пользователей все еще работают на iOS 5. И нет, я не хочу заставлять их обновляться.

jgervin
источник
6
«Размытие» - это не какая-то общая вещь, которую вы можете сохранить в PNG, это эффект, применяемый к изображению и полностью зависящий от содержимого изображения. Однако вы можете сохранить объект, actionкоторый применяет эффект размытия. Если вы делаете то, что описано в руководствах и обсуждении связанных вопросов и ответов, во время записи действия у вас может быть то, что вам нужно. Скорее всего, можно вручную создать маску выбора, а затем автоматизировать оставшуюся часть процесса с помощью действия.
Горацио
Редактирование действительно не меняет вопрос. Ответ, как говорит Горацио: нет, у вас не может быть размытия в отдельном слое. Изображение iOS - это еще большее размытие.
Yisela
1
Это полный вопрос кодирования, если вы спросите меня. Самое близкое, что вы получите к чему-то вроде вашего второго примера с использованием изображений, это: jsfiddle.net/lollero/DE4qn ... конечно, это супер статично и требует, чтобы у вас было 2 версии одного и того же изображения (конечно, это то же самое можно сделать с помощью метода фильтра css3).
Joonas

Ответы:

11

Вы не можете просто наложить «размытое» изображение, которое размывает случайное изображение позади него. Эффект размытия должен сэмплировать изображение позади, чтобы транспонировать / растягивать пиксели, поэтому его нужно применять там.

Тем не менее, вы можете сделать песчаную / зернистую текстуру и использовать ее в качестве многослойного слоя, чтобы получить зернистую текстуру.

Обновление - как Дерек предлагает в другом ответе, вы можете сделать неразрушающее размытие, преобразовав слой изображения в смарт-объект, а затем примените к нему размытие. Затем вы можете ввести смарт-объект и редактировать его независимо от размытия.

Джон
источник
Как я могу сделать песчаную зернистую текстуру? Я думаю, чтобы все это сработало. Два одинаковых, но один на один пиксель вверх и один пиксель справа от первого, и это сделало бы его зернистым (если хотите, слоистым).
Джгервин
1
Создайте заполненный белым слоем и фильтруйте> шум> добавить шум, чтобы добавить зерно. Оттуда, возможно, немного размыть его, чтобы немного смягчить, установить слой как множитель и уменьшить непрозрачность до 10%.
Джон,
9

Взглянув на второе предоставленное вами изображение, что-то подобное невозможно с наложением PNG. Это абсолютно сделано программным способом, а не наложением PNG. Я попробовал некоторые из других предложений, опубликованных здесь, но ни одно из них не подошло близко (но, возможно, вам повезет больше)


Это действительно выходит за рамки ваших требований, но нужно ли это делать с наложением? Я не уверен, что вы получите эффект, который вы надеетесь достичь, используя этот метод. Если у вас есть такая возможность, я бы сделал это программно.

У меня нет понимания того, как настроено ваше приложение, но вы могли бы сделать это с помощью фильтра CSS3:

.blurred {
  filter: blur(2px);
  -webkit-filter: blur(2px);
}

[примечание для ясности: процесс представляет собой изображение продукта на переднем плане с альфа-маской и фоновое изображение, которое размыто с использованием фильтра CSS]

До

Наш продукт!

После

Наш продукт!
Изображение предоставлено: Филипп Леара

Вы можете проверить живую демонстрацию этого здесь

В будущем это может быть сделано намного проще, используя предложенный backdrop-filterстиль CSS, но в настоящее время его поддержка практически отсутствует .

Johnb
источник
2
Если это вариант, то это хороший путь, так как пользователь или разработчик может изменить стиль по желанию.
Горацио
1
Следует отметить, что это будет работать на устройствах iOS и, вероятно, на большинстве мобильных устройств, но не является жизнеспособным подходом для немобильного веб-дизайна, поскольку его поддержка крайне ограничена. caniuse.com/css-filters
Эрик
Мы все родные. И программирование это не вариант, так как он может иметь 3 представления или 2 или 1, но вид сверху должен позволять всем нижним представлениям, независимо от их количества, показывать бросок немного.
Джегервин
@jgervin Я не думаю, что то, что вы пытаетесь достичь, возможно только с наложением PNG, но я бы хотел, чтобы кто-то доказал, что я неправ, потому что я узнаю что-то новое! Вместо этого я бы сфокусировался на том, как вы можете сделать это другим способом, возможно, переполнение стека может привести вас в правильном направлении.
JohnB
@Eric, если это приложение для iOS, веб-платформы не имеют значения.
Ctrl Alt Design
6

Другой вариант - создать смарт-объект и применить к нему свои размытия и эффекты. Делая это таким образом, вы все равно сможете открыть смарт-объект и изменить то, что внутри него.

---Редактировать---

Так как я разместил свой ответ выше, вопрос был отредактирован и немного изменен. Теперь необходимо добиться размытия в приложении для iOS, я бы предложил сделать размытие с помощью кода, чтобы это могло повлиять на любое изображение, которое вы хотите.

private static Bitmap Blur(Bitmap image, Int32 blurSize)
{
    return Blur(image, new Rectangle(0, 0, image.Width, image.Height), blurSize);
}

Более подробная информация об этом здесь: http://notes.ericwillis.com/2009/10/blur-an-image-with-csharp/


источник
4

На Dribble есть пара хороших фильтров о том, как сделать размытие в Photoshop. Может быть, это может быть полезно и для вас. Мне особенно нравится этот неразрушающий способ получить эффект. Я знаю, что уже есть что-то об этом, но вот ссылки:

http://dribbble.com/shots/1210251-Live-Blur-Free-PSD

http://dribbble.com/shots/1109921-iOS7-Blur-Photoshop-Action

Сакари Нииттымаа
источник
3

Если это все еще необходимо, я пытался добиться того же эффекта и не мог.

Я сделал это с помощью плагина html2canvas и stackBlur, который я нашел здесь: http://jsfiddle.net/WtQjY/201/ .

Я не автор плагинов. И это всего лишь фрагмент кода. Я изменил это, чтобы быть проще и быстрее:

.blur {
    -webkit-фильтр: размытие (7 пикселей);
-moz-фильтр: размытие (7 пикселей);
-о-фильтр: размытие (7 пикселей);
-ms-фильтр: размытие (7 пикселей);
фильтр: размытие (7 пикселей);

}

//////////////////////////////////
// включить библиотеку jquery
// JQuery
$ (Документ) .ready ({
$ ( '# YourButton'). Нажмите ({

$ ( '# YourContainer') toggleClass ( 'размывание').

});
});

это все еще очень медленно, но это работает.

Верде Мак
источник
2

Поэтому я создал свою собственную версию этого сценария, которую я решил поделиться. Я сделал два фоновых изображения и прикрепил одно из них к дочернему элементу div, а затем четкую и ясную версию к основному фону. Просто установите фоны обоих объектов фиксированными и центрированными, и они будут совпадать.

Вот демоверсия: http://www.palandforsale.us/frosted-glass/

Shawn6078
источник
Демонстрационная страница, кажется, не работает. Можно ли найти демо-версию в другом месте, или можно создать ее JSFiddle?
Praxis Ashelin
2

Если я правильно понимаю ваш вопрос, я не думаю, что вы можете. «Размытие» - это операция, которая выполняется в программном обеспечении, каждое по-своему. Как эскиз применяет размытие, может отличаться от того, как это делают Photoshop или Google Chrome.

Следовательно, вы не можете экспортировать изображение с «размытием». Blur всегда взаимодействует с тем, что стоит за ним, и его нельзя экспортировать из приложения, в котором вы его создаете.

Винсент
источник
Спасибо за ответ, Это имеет смысл. Поэтому, если я хочу использовать его в приложении, я должен создать его программно.
Дилип
Да, для каждого приложения в отдельности. Например, в CSS сегодня есть опции размытия.
Винсент
0
  1. Сделайте 50% серый слой поверх слоя, который вы хотите создать размытый и матовый слой.
  2. Заполните его шумом, количество которого зависит от ваших потребностей
  3. Размытие по Гауссу, как вам нужно.
  4. Над этим слоем вы можете добавить слой кривых и отрегулировать значения белого и черного, потянув за белый конец или подняв черный конец слоя кривых.

Эти два слоя должны дать морозный и размытый эффект. Порядок этих двух слоев может быть изменен.

user13452
источник
1
Всем привет. Если вы попробовали это, можете ли вы добавить изображение результата? Я действительно не вижу, как это даст эффект размытия, подобный тому, который ищет ОП, не затрагивая цвета изображения ...
Yisela
Это даст вам размытое изображение на оригинальном четком изображении.
DA01
Не работал. Но, возможно, я сделал это неправильно.
Джервин
0

Создайте действие, которое дублирует изображение и применяет размытие по Гауссу. Я верю, что это единственный способ сделать это.

McIvor
источник