Як створити неруйнівний та багаторазовий ефект розмитого / матового скла?


25

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

Мені потрібно біле матове скло, яке шукає PNG, яке я можу налаштувати на нанесення шарів на звичайні зображення, щоб надати їм вигляд матового скла (як ви можете майже розібрати, що за ним; можливо, деякі кольори).

Приклади:

Приклад розмитого зображення
Клацніть на зображення для повного дозволу

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

Може бути, білий фон з текстурою (зерниста текстура), то Гауссова розмиття, а потім використовувати його як шар на всіх моїх зображеннях.

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

Що я намагаюся зробити з цим зображенням, це імпортувати його в додаток iOS, використовуючи його фон перегляду. Потім, коли цей погляд перебуває над іншими видами (подання на карту, фотографію тощо), всі вони замерзають. Я намагаюся створити ефект цього зображення з iOS 7. І ні, я не хочу використовувати нові функції дизайну iOS 7, оскільки більшість моїх користувачів все ще перебувають на iOS 5. І ні, я не хочу їх змушувати модернізувати.


6
"Розмиття" - це не якась загальна річ, яку можна зберігати в PNG, це ефект, застосований до зображення, і повністю залежить від змісту зображення. Однак можна зберігати додаток, actionщо застосовує ефект розмиття. Якщо ви робите те, що викладено в підручниках та обговоренні пов'язаних запитань, під час запису дії , у вас може виникнути те, що вам потрібно. Швидше за все, можна створити маску вибору вручну, а потім автоматизувати решту процесу за допомогою дії.
horatio

Правка не змінює питання. Відповідь, як згадує Гораціо: Ні, ви не можете мати розмиття в окремому шарі. Образ iOS - це просто більша розмитість.
Yisela

1
Це повне питання кодування, якщо ви запитаєте мене. Найближчий ви збираєтесь дістатись до чогось іншого, як ваш другий приклад, використовуючи зображення: jsfiddle.net/lollero/DE4qn ... звичайно, це супер статично і вимагає, щоб ви мали дві версії одного зображення (звичайно, це те саме можна зробити з методом фільтра css3).
Joonas

Відповіді:


11

Ви не можете просто накласти "розмите" зображення, яке розмиває випадкове зображення за ним. Для ефекту розмиття потрібно відібрати зображення позаду, щоб перемістити / поширити пікселі, тому його потрібно застосувати там.

Однак ви можете зробити піщану / зернисту текстуру і використовувати її як розмножувальний шар для отримання зернистої текстури.

Оновлення - як пропонує Дерек в іншій відповіді, ви можете зробити неруйнівну розмиття, перетворивши шар зображення в розумний об’єкт, а потім застосуйте розмиття до цього. Потім ви можете ввести розумний об’єкт і відредагувати це незалежно від розмиття.


Як я можу зробити піщану зернисту текстуру? Я думаю, щоб це разом працювало. Два точно однакових, але один - один піксель вгору і один піксель праворуч від першого, і це зробить його зернистим (якщо ви захочете).
jgervin

1
Створіть білий заповнений шар і фільтруйте> шум> додайте шум, щоб додати зерна. Звідти, можливо, розмийте його крихітним шматочком, щоб трохи пом’якшити його, встановіть шар як розмноження і зменшіть непрозорість на щось на зразок 10%.
Джон

9

Поглянувши на надане вами друге зображення, щось подібне неможливо із накладанням PNG. Це абсолютно робиться програмно певним чином, а не з накладанням PNG. Я спробував деякі інші пропозиції, розміщені тут, жодна не наблизилася (але, можливо, вам пощастить)


Це дійсно виходить за ваші вимоги, але чи потрібно це робити з накладкою? Я не впевнений, що ви отримаєте ефект, якого ви сподіваєтеся досягти, використовуючи такий метод. Якщо у вас є можливість, я б робив це програмно замість цього.

Я не маю уявлення про те, як налаштовано вашу програму, але один із способів зробити це можна за допомогою фільтра CSS3:

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

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

Раніше

Наш продукт!

Після

Наш продукт!
Кредит на зображення: Філіп Лера

Ви можете ознайомитись із живою демонстрацією цього життя тут

Надалі це може бути значно спрощено за допомогою запропонованого backdrop-filterстилю CSS, однак поточна підтримка для цього поруч із неіснуючою .


2
Якщо це варіант, це корисний шлях, оскільки користувач або розробник можуть змінити стилі за бажанням.
horatio

1
Що варто зазначити, що це буде працювати на пристроях iOS, і, мабуть, на більшості мобільних пристроїв, але це не є життєздатним підходом для немобільного веб-дизайну, оскільки його підтримка вкрай обмежена. caniuse.com/css-filters
Ерік

Ми всі рідні. І програмування це не варіант, оскільки у нього може бути 3 подання або 2 або 1, але вид зверху повинен дозволяти всім переглядам знизу, скільки б їх не було, показати трохи кинути.
jgervin

@jgervin Я не думаю, що те, що ти намагаєшся досягти, можливо лише за допомогою накладання PNG, але я хотів би, щоб хтось довів мене неправильно, тому що я дізнався би щось нове! Я б замість цього зосередився на тому, як ви можете досягти цього іншого способу, можливо, Переповнення стека може привести вас у правильному напрямку.
ДжонБ

@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-filter: blur (7px);
-moz-фільтр: розмиття (7 пікселів);
-o-фільтр: розмиття (7 пікселів);
-ms-filter: blur (7px);
фільтр: розмиття (7 пікселів);

}

////////////////////////////////////
// включати бібліотеку jquery
// jQuery
$ (документ). вже ({
$ ('# YourButton'). Click ({

$ ('# YourContainer'). ToggleClass ('розмиття');

});
});

це все ще дуже повільно, але це працює.


2

Тому я створив свою власну версію цього сценарію, на яку я подумав, що поділюсь. Я зробив два фонові зображення і приєднав одне з них до дочірнього діва, а потім чітку і чітку версію до основного фону. Просто встановіть фони обох об'єктів зафіксованими та по центру, і вони будуть збігатися.

Ось демонстрація: http://www.palandforsale.us/frosted-glass/


Демо-сторінка, здається, не працює. Чи можна демонструвати демонстрацію в іншому місці, або можливо створити з нього JSFiddle?
Praxis Ashelin

2

Якщо я правильно розумію ваше запитання, я не думаю, що можете. "Розмиття" - це операція, яка виконується за допомогою програмного забезпечення, кожен по-своєму. Те, як ескіз застосовує розмиття, може бути іншим способом, ніж те, як це роблять Photoshop або Google Chrome.

Отже, ви не можете експортувати зображення із "розмиттям". Розмиття завжди взаємодіє з тим, що за ним стоїть, і його неможливо експортувати з програми, в якій ви створюєте.


Дякую за відповідь, Це має сенс. Отже, якщо я хочу використовувати його в додатку, я повинен створити його програмно.
Діліп

Так, для кожної програми окремо. Наприклад, CSS має параметри розмиття.
Вінсент

0
  1. Зробіть 50% сірий шар над шаром, який ви хочете створити розмитий і матовий шар.
  2. Наповніть його шумом, кількість якого залежить від ваших потреб
  3. Розмийте його за допомогою розмиття Гаусса, як вам потрібно.
  4. Над цим шаром ви можете додати шар кривих і відрегулювати білі та чорні значення, потягнувши білий кінець або просунувши чорний кінець шару кривих.

Ці два шари повинні надавати морозний і розмитий ефект. Порядок цих двох шарів можна змінити.


1
Привіт там. Якщо ви спробували це, чи можете ви додати зображення результату? Я насправді не бачу, як це дасть ефект розмиття, як той, який шукає ОП, не впливаючи на кольори зображення ...
Yisela

Це просто призведе до розмитої серпанку над оригінальним різким зображенням.
DA01

Не працює. Але, можливо, я зробив це неправильно.
jgervin

0

Створіть дію, яка дублює зображення та застосує розмиття Гаусса. Це єдиний спосіб PS це зробити, я вважаю.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.