Come creare un effetto vetro sfocato / smerigliato non distruttivo e riutilizzabile?


25

Come posso creare uno sfondo sfocato generico che può essere utilizzato su più immagini simili all'esempio seguente?

Ho bisogno di un vetro smerigliato bianco dall'aspetto png che posso usare per sovrapporre immagini normali per dare a tutti un aspetto di vetro smerigliato (come se quasi riuscissi a capire cosa c'è dietro; forse alcuni colori).

Esempi:

Esempio di immagine sfocata
Clicca sull'immagine per la massima risoluzione

inserisci qui la descrizione dell'immagine

Forse uno sfondo bianco con trama (trama granulosa) quindi sfocatura gaussiana e quindi usarlo come strato su tutte le mie immagini.

So che il link che ho pubblicato sopra è probabilmente solo un'immagine sfocata, ma ho bisogno di un livello che può essere riutilizzato in un progetto iOS. In questo modo può essere utilizzato un livello di visualizzazione su sezioni di un'immagine e rendere l'immagine sottostante sfocata. Forse non dovrei usare la sfocatura come termine qui. Sto cercando un look in vetro smerigliato.

Quello che sto cercando di fare con questa immagine è importarlo nella mia app iOS, usarlo come sfondo di visualizzazione. Quindi, quando questa vista è sopra altre viste (una vista mappa, una foto, ecc ...) sono tutti glassati. Sto cercando di creare l'effetto di questa immagine da iOS 7. E no, non voglio usare le nuove funzionalità di progettazione di iOS 7, perché la maggior parte dei miei utenti è ancora su iOS 5. E no, non voglio forzarli ad aggiornare.


6
"sfocatura" non è una cosa generica che è possibile memorizzare in un PNG, è un effetto applicato a un'immagine e dipende interamente dal contenuto dell'immagine. Tuttavia, è possibile memorizzare un oggetto actionche applica un effetto di sfocatura. Se fai ciò che è descritto nei tutorial e nelle discussioni sulle domande e risposte collegate, mentre registri un'azione , potresti avere ciò di cui hai bisogno. Molto probabilmente si creerebbe manualmente la maschera di selezione e quindi automatizzerà il resto del processo usando un'azione.
horatio

La modifica non cambia davvero la domanda. La risposta è, come menziona Horatio: No, non puoi avere una sfocatura in un livello separato. L'immagine iOS è solo una sfocatura più grande.
Yisela,

1
Questo è pieno sulla domanda di codifica se me lo chiedi. Il più vicino a qualcosa come il tuo secondo esempio usando le immagini è questo: jsfiddle.net/lollero/DE4qn ... ovviamente questo è super statico e richiede di avere 2 versioni della stessa immagine (ovviamente questo la stessa cosa si potrebbe fare con il metodo di filtro css3).
Joonas,

Risposte:


11

Non puoi semplicemente sovrapporre un'immagine "sfocata" che sfuma l'immagine casuale dietro di essa. L'effetto di sfocatura deve campionare l'immagine dietro per trasporre / diffondere i pixel, quindi deve essere applicato lì.

Puoi comunque creare una trama sabbiosa / granulosa e usarla come strato multiplo per ottenere l'aspetto di una trama granulosa.

Aggiornamento - Come Derek suggerisce in un'altra risposta, puoi creare una sfocatura non distruttiva convertendo il livello dell'immagine in un oggetto intelligente, quindi applicare la sfocatura a quello. È quindi possibile inserire l'oggetto smart e modificarlo indipendentemente dalla sfocatura.


Come posso fare la trama granulosa sabbiosa? Sto pensando a questi insieme avrebbe funzionato. Due esattamente uguali, ma uno è un pixel in alto e un pixel a destra dal primo e questo lo renderebbe granuloso (se lo si desidera, stratificato).
Jgervin,

1
Crea un livello riempito di bianco e filtra> rumore> aggiungi rumore per aggiungere la grana. Da lì forse sfocalo un po 'per ammorbidirlo leggermente, impostare il livello come moltiplicare e ridurre l'opacità a qualcosa del 10%.
John,

9

Dando un'occhiata alla seconda immagine che hai fornito, qualcosa del genere non è possibile con un overlay PNG. Ciò è assolutamente programmato in qualche modo e non con un overlay PNG. Ho provato alcuni degli altri suggerimenti pubblicati qui, nessuno si è avvicinato (ma forse avrai più fortuna)


Questo è davvero al di fuori dei tuoi requisiti, ma deve essere fatto con un overlay? Non sono sicuro che otterrai l'effetto che speri di ottenere usando quel tipo di metodo. Se hai le capacità, lo farei invece a livello di codice.

Non ho idea di come sia configurata la tua applicazione, ma un modo per farlo è con un filtro CSS3:

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

[nota per chiarezza: il processo è un'immagine in primo piano del prodotto con una maschera alfa e un'immagine di sfondo che è sfocata usando un filtro CSS]

Prima

Il nostro prodotto!

Dopo

Il nostro prodotto!
Credito di immagine: Philip Leara

Puoi vedere una demo live di questo qui

In futuro, questo potrebbe essere reso molto più semplice usando lo backdrop-filterstile CSS proposto , ma l'attuale supporto per questo è quasi inesistente .


2
Se questa è un'opzione, è una buona strada da prendere poiché l'utente o lo sviluppatore possono cambiare lo stile a piacimento.
horatio,

1
Qualcosa da notare è che funzionerà su dispositivi iOS e probabilmente sulla maggior parte dei dispositivi mobili, ma non è un approccio praticabile per il web design non mobile perché il suo supporto è estremamente limitato. caniuse.com/css-filters
Eric

Siamo tutti nativi. E la programmazione non è un'opzione in quanto potrebbe avere 3 visualizzazioni o 2 o 1, ma la vista superiore deve consentire a tutte le viste sottostanti, indipendentemente da quante ce ne siano, di mostrare un po 'di lancio.
Jgervin,

@jgervin Non credo che ciò che stai cercando di ottenere sia possibile solo con un overlay PNG, ma mi piacerebbe che qualcuno mi dimostrasse di sbagliare perché imparerei qualcosa di nuovo! Mi concentrerei invece su come puoi farlo in un altro modo, forse StackTranslate.it potrebbe condurti nella giusta direzione.
John B

@Eric se si tratta di un'app iOS, le piattaforme Web non contano.
Ctrl Alt Design

6

Un'altra opzione è quella di creare un oggetto intelligente e applicare le sfocature e gli effetti all'oggetto intelligente. Farlo in questo modo, ti consentirà comunque di aprire l'oggetto intelligente e di modificare ciò che è al suo interno.

---Modificare---

Da quando ho pubblicato la mia risposta sopra, la domanda è stata modificata e leggermente modificata. La richiesta è ora di ottenere una sfocatura in un'app iOS, suggerirei di fare la sfocatura con il codice, in modo che possa influenzare qualsiasi immagine desideri.

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

Maggiori informazioni al riguardo qui: http://notes.ericwillis.com/2009/10/blur-an-image-with-csharp/



3

Se questo è ancora necessario, stavo cercando di ottenere lo stesso effetto e non ci sono riuscito.

L'ho fatto con un plugin chiamato html2canvas e stackBlur, che ho trovato qui: http://jsfiddle.net/WtQjY/201/ .

Non sono l'autore dei plugin. E questo è solo uno snippet del codice. L'ho cambiato per essere più semplice e veloce:

.blur {
    -webkit-filter: sfocatura (7px);
-moz-filter: sfocatura (7px);
-o-filtro: sfocatura (7px);
-ms-filter: sfocatura (7px);
filtro: sfocatura (7px);

}

//////////////////////////////////
// include la libreria jquery
// jQuery
$ (Document) .ready ({
$ ( '# YourButton'). Cliccare ({

$ ( '# YourContainer') toggleClass ( 'sfocatura.');

});
});

è ancora molto lento ma funziona.


2

Così ho creato la mia versione di questo script che ho pensato di condividere. Ho realizzato due immagini di sfondo e ne ho collegato uno al div figlio e quindi una versione nitida e chiara allo sfondo principale. Basta impostare gli sfondi di entrambi gli oggetti su fissi e centrati e corrisponderanno.

Ecco una demo: http://www.palandforsale.us/frosted-glass/


La pagina demo sembra essere inattiva. La demo può essere trovata in un altro posto o è possibile crearne una JSFiddle?
Praxis Ashelin,

2

Se capisco correttamente la tua domanda, non penso che tu possa farlo. 'Sfocatura' è un'operazione che viene eseguita in un software, ognuno a modo suo. Il modo in cui lo schizzo applica la sfocatura può essere diverso rispetto a Photoshop o Google Chrome.

Pertanto, non è possibile esportare un'immagine con 'sfocatura'. La sfocatura è sempre in interazione con ciò che sta dietro e non può essere esportata dall'applicazione in cui la stai creando.


Grazie per la risposta, ha senso. Quindi, se voglio usarlo nell'applicazione, devo crearlo programmaticamente.
Dilip

Sì, per ogni applicazione separatamente. Oggi i CSS hanno opzioni di sfocatura, ad esempio.
Vincent,

0
  1. Crea un livello grigio al 50% sul livello che desideri creare il livello sfocato e smerigliato.
  2. Riempilo di rumore, la cui quantità dipende dalle tue necessità
  3. Sfocatura con sfocatura gaussiana di cui hai bisogno.
  4. Sopra questo livello è possibile aggiungere un livello curve e regolare i valori bianco e nero tirando verso il basso l'estremità bianca o spingendo verso l'alto l'estremità nera del livello curve.

Questi due strati dovrebbero dare un effetto gelido e sfocato. L'ordine di questi due livelli può essere modificato.


1
Ciao. Se hai provato questo, puoi aggiungere una foto del risultato? Non vedo davvero come darebbe un effetto sfocato come quello che l'OP sta cercando senza influenzare i colori dell'immagine ...
Yisela,

Questo ti darebbe solo una sfumatura sfocata sull'immagine nitida originale.
DA01

Non ha funzionato. Ma forse ho sbagliato.
Jgervin,

0

Crea un'azione che duplica l'immagine e applica una sfocatura gaussiana. Questo è l'unico modo di PS per farlo credo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.