Desenvolvimento - Silverlight
Silverlight 3 – Efeitos com Pixel Shader, parte final
Dando continuidade ao artigo Silverlight 3 – Efeitos com Pixel Sharder, parte 01 onde vimos como criar um novo efeito utilizando o SDK do DirectX, agora vamos ver como podemos utilizar esse efeito que criamos e compilamos em nossos projeto com Silverlight.
por Márcio Fábio AlthmannDando continuidade ao artigo Silverlight 3 – Efeitos com Pixel Sharder, parte 01onde vimos como criar um novo efeito utilizando o SDK do DirectX, agora vamos ver como podemos utilizar esse efeito que criamos e compilamos em nossos projeto com Silverlight.
Crie um novo projeto chamado EstudoPixelShader no Blend, para deixar a estrutura melhor organizada, crie uma pasta chamada Efeitos e adicione o arquivo InvertColor.ps criado no primeiro artigo na pasta, a estrutura do projeto ficará da seguinte forma.
O próximo passo é que devemos alterar o Build Action do arquivo InvertColor.ps para Resource, para fazer isso, clique com o botão direito no projero, e depois em Edit in Visual Studio. No Visual Studio altere o build action do arquivo e salve o projeto.
Feito isso o Blend vai pedir para recarregar o projeto.
Agora vamos criar uma classe chamada InvertColorEffect que herda da classe ShaderEffect. É essa classe que vamos chamar para utilizar o efeito
O primeiro passo é importar o namespace System.Windows.Media.Effects;
1: using System.Windows.Media.Effects;
O código todo da classe fica.
1: public class InvertColorEffect : ShaderEffect
2: {
3: public InvertColorEffect()
4: {
5: var uri = new Uri(@"/EstudoPixelShader;component/Efeitos/InvertColor.ps", UriKind.Relative);
6: var pixelShader = new PixelShader();
7: pixelShader.UriSource = uri;
8: PixelShader = pixelShader;
9: }
10: }
Basicamente criamos um Uri apontando para o nosso arquivo de efeito um detalhe importante para o código funcionar, siga a seguinte ordem /SeuNamespace;component/SeuArquivo.ps. Em seguida criamos um novo PixelShader e informamos o Uri criado anteriormente na propriedade UriSource do mesmo, em seguida passamos esse novo PixelShader que criamos para a propriedade PixelShader da nossa classe.
Feito isso é só compilar e utilizar o efeito, arraste um foto qualquer para o projeto e clique no botão para adicionar efeitos.
A janela de efeitos vai abrir, e além dos dois efeitos default que temos, agora podemos selecionar o nosso InvertColorEffect.
Feito isso o efeito já é aplicado a nossa imagem.
Nós podemos utilziar esse efeito em controles, vídeos, fotos da mesma forma que fazemos com os efeitos default, com isso vimos como criar um efeito cmo PixelShader customizado o que é uma ótima forma de criar ótimos efeitos para os nossos projetos.]
Abraços.
- Acessando imagens externa (não compiladas) dentro do mesmo domínioSilverlight
- Trabalhando com enumeradosSilverlight
- Comunicação Local no SilverlightSilverlight
- Gerando Gráficos com Silverlight, WCF e LINQSilverlight
- Usando o Scroll do mouse para dar Zoom em Imagens com Silverlight 4Silverlight