Como criar um efeito de vidro fosco / fosco não destrutivo e reutilizável?


25

Como posso criar um fundo desfocado genérico que pode ser usado em várias imagens semelhantes ao exemplo abaixo?

Preciso de um vidro fosco branco com aparência de png que eu possa usar para passar sobre as imagens comuns para dar a todos um visual de vidro fosco (como se você quase conseguisse entender o que está por trás; talvez algumas cores).

Exemplos:

Exemplo de imagem borrada
Clique na imagem para resolução máxima

insira a descrição da imagem aqui

Talvez um fundo branco com textura (textura granulada), em seguida, Gaussian desfoque isso e use-o como uma camada sobre todas as minhas imagens.

Sei que o link que publiquei acima provavelmente é apenas uma imagem borrada, mas preciso de uma camada que possa ser reutilizada em um projeto iOS. Dessa forma, pode-se usar uma camada de vista sobre seções de uma imagem e fazer com que a imagem embaixo pareça borrada. Talvez eu não deva usar blur como o termo aqui. Estou à procura de aparência de vidro fosco.

O que estou tentando fazer com esta imagem é importá-la para o meu aplicativo iOS e usá-la como plano de fundo. Então, quando essa visualização estiver sobre outras visualizações (uma visualização de mapa, uma foto, etc ...), todas elas serão congeladas. Estou tentando criar o efeito dessa imagem no iOS 7. E não, não quero usar os novos recursos de design do iOS 7, porque a maioria dos meus usuários ainda está no iOS 5. E não, eu não quero forçá-los a atualizar.


6
"borrão" não é algo genérico que você pode armazenar em um PNG, é um efeito aplicado a uma imagem e depende inteiramente do conteúdo da imagem. No entanto, você pode armazenar um actionque aplique um efeito de desfoque. Se você fizer o que está descrito nos tutoriais e discussões sobre as perguntas e respostas vinculadas, enquanto registra uma ação , pode ter o que precisa. O mais provável é que você crie manualmente a máscara de seleção e depois automatize o restante do processo usando uma ação.
21813 horatio

A edição realmente não muda a questão. A resposta é, como Horatio menciona: Não, você não pode ter um borrão em uma camada separada. A imagem do iOS é apenas um borrão maior.
Yisela

11
Isso está completo na questão da codificação, se você me perguntar. O mais próximo que você vai chegar de algo como o seu segundo exemplo usando imagens é o seguinte: jsfiddle.net/lollero/DE4qn ... é claro que isso é super estático e requer que você tenha 2 versões da mesma imagem (é claro que isso a mesma coisa pode ser feita com o método de filtro css3).
Joonas

Respostas:


11

Você não pode simplesmente sobrepor uma imagem 'embaçada' que desfoca a imagem aleatória por trás dela. O efeito de desfoque precisa amostrar a imagem para trás para transpor / espalhar os pixels, portanto, ela deve ser aplicada lá.

No entanto, você pode criar uma textura arenosa / granulada e usá-la como uma camada de multiplicação para obter a aparência da textura granulada.

Atualização - como Derek sugere em outra resposta, você pode fazer um desfoque não destrutivo convertendo a camada da imagem em um objeto inteligente e aplicando o desfoque a ele. Você pode inserir o objeto inteligente e editá-lo independentemente do desfoque.


Como posso fazer a textura granulada arenosa? Estou pensando que estes juntos iria funcionar. Dois exatamente o mesmo, mas um é um pixel acima e um pixel à direita desde o primeiro e isso tornaria granulado (em camadas, se você desejar).
Jgervin

11
Crie uma camada cheia de branco e filtre> ruído> adicione ruído para adicionar a granulação. A partir daí, talvez desfoque um pouco para amolecer um pouco, defina a camada para multiplicar e diminua a opacidade para algo como 10%.
John

9

Olhando para a segunda imagem que você forneceu, algo como isso não é possível com uma sobreposição PNG. Isso é absolutamente feito de forma programática de alguma forma e não com uma sobreposição PNG. Eu tentei algumas das outras sugestões postadas aqui, nenhuma chegou perto (mas talvez você tenha melhor sorte)


Isso realmente está indo além dos seus requisitos, mas isso precisa ser feito com uma sobreposição? Não tenho certeza de que você obterá o efeito que espera alcançar usando esse tipo de método. Se você tiver a capacidade, eu faria isso programaticamente.

Não tenho informações sobre como o aplicativo é configurado, mas uma maneira de fazer isso é com um filtro CSS3:

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

[observação para maior clareza: o processo é uma imagem de primeiro plano do produto com uma máscara alfa e uma imagem de segundo plano embaçada usando um filtro CSS]

Antes

Nosso produto!

Depois de

Nosso produto!
Crédito de imagem: Philip Leara

Você pode conferir uma demonstração ao vivo disso aqui

No futuro, isso pode ser muito mais fácil usando o backdrop-filterestilo CSS proposto , mas o suporte atual para isso é quase inexistente .


2
Se essa é uma opção, é um bom caminho a seguir, pois o usuário ou o desenvolvedor pode alterar o estilo à vontade.
21133 horatio

11
Algo a se notar é que isso funcionará em dispositivos iOS, e provavelmente na maioria dos dispositivos móveis, mas não é uma abordagem viável para o design da web não móvel, porque seu suporte é extremamente limitado. caniuse.com/css-filters
Eric

Somos todos nativos. E programar não é uma opção, pois pode ter 3 exibições sendo exibidas ou 2 ou 1, mas a exibição superior precisa permitir que todas as exibições abaixo, não importando quantas existam, sejam exibidas um pouco.
Jgervin

@jgervin Eu não acho que o que você está tentando alcançar seja possível com apenas uma sobreposição PNG, mas eu adoraria que alguém me provasse errado porque aprenderia algo novo! Em vez disso, focaria em como você pode fazer isso de outra maneira, talvez o Stack Overflow possa levá-lo na direção certa.
JohnB

@ Eric, se for um aplicativo para iOS, as plataformas da web não importam.
Ctrl Alt Design

6

Outra opção é criar um objeto inteligente e aplicar seus borrões e efeitos ao objeto inteligente. Fazendo dessa maneira, ainda permitirá que você abra o objeto inteligente e altere o que está dentro dele.

---Editar---

Desde que publiquei minha resposta acima, a pergunta foi editada e alterada levemente. A solicitação agora é obter um desfoque em um aplicativo iOS, sugiro que faça o desfoque com código, para que possa afetar qualquer imagem que você desejar.

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

Mais informações sobre isso aqui: http://notes.ericwillis.com/2009/10/blur-an-image-with-csharp/



3

Se isso ainda for necessário, eu estava tentando obter o mesmo efeito e não consegui.

Fiz isso com um plug-in chamado html2canvas e stackBlur, que encontrei aqui: http://jsfiddle.net/WtQjY/201/ .

Eu não sou o autor dos plugins. E este é apenas um trecho do código. Eu mudei para ser mais simples e rápido:

.borrão{
    -webkit-filter: borrão (7px);
-moz-filter: desfoque (7px);
-o-filtro: desfoque (7px);
-ms-filter: desfoque (7px);
filtro: desfoque (7 px);

}

////////////////////////////////////
// inclui biblioteca jquery
// jQuery
$ (document) .ready ({
$ ('# YourButton'). Click ({

$ ('# YourContainer'). ToggleClass ('desfoque');

});
});

ainda é muito lento, mas funciona.


2

Então, eu criei minha própria versão deste script que imaginei compartilhar. Fiz duas imagens de plano de fundo e anexei uma delas à div criança e, em seguida, uma versão nítida e clara ao plano de fundo principal. Basta definir os planos de fundo de ambos os objetos como fixos e centralizados e eles corresponderão.

Aqui está uma demonstração: http://www.palandforsale.us/frosted-glass/


A página de demonstração parece estar inativa. A demo pode ser encontrada em outro local ou é possível criar um JSFiddle?
Praxis Ashelin

2

Se entendi sua pergunta corretamente, acho que não. 'Borrão' é uma operação executada em um software, cada um à sua maneira. Como o esboço aplica o desfoque pode ser uma maneira diferente da do Photoshop ou do Google Chrome.

Portanto, você não pode exportar uma imagem com 'blur'. O desfoque está sempre em interação com o que está por trás dele e não pode ser exportado do aplicativo em que você está criando.


Agradecimento pela resposta, isso faz sentido. Então, se eu quiser usá-lo no aplicativo, tenho que criá-lo programaticamente.
Dilip

Sim, para cada aplicativo separadamente. Atualmente, o CSS tem opções de desfoque, por exemplo.
Vincent

0
  1. Faça uma camada cinza de 50% sobre a camada que deseja criar na camada embaçada e fosca.
  2. Encha-o com ruído, cuja quantidade depende da sua necessidade
  3. Desfoque com o Gaussian Blur conforme necessário.
  4. Acima dessa camada, você pode adicionar uma camada de curvas e ajustar os valores de branco e preto puxando a extremidade branca para baixo ou empurrando a extremidade preta da camada de curvas.

Essas duas camadas devem dar um efeito gelado e embaçado. A ordem dessas duas camadas pode ser alterada.


11
Olá. Se você já tentou isso, pode adicionar uma imagem do resultado? Eu realmente não ver como ele iria dar um efeito de borrão como o que o OP está procurando, sem afetar as cores da imagem ...
Yisela

Isso apenas causaria uma névoa embaçada sobre a imagem nítida original.
DA01 19/06/2013

Não funcionou. Mas talvez eu tenha feito errado.
jgervin

0

Crie uma ação que duplique a imagem e aplique um desfoque gaussiano. Esta é a única maneira do PS de fazer isso, acredito.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.