Usuário com melhor resposta
Salvar uma imagem da aplicação

Pergunta
-
Galera,
eu preciso salvar uma imagem da minha tela silverlight, como se fosse um print screen da tela, mas só da aplicação silverlight. Alguém sabe se é possível fazer isso?
Tipo o cara aperta um botão, e tira uma foto dessa tela silverlight pra eu gerar uma imagem.
Obrigado,
Thiago
segunda-feira, 23 de agosto de 2010 21:40
Respostas
-
VinTem,
É possível criar uma instância da classe WriteableBitmap cujo construtor solicita um UIElement e com isso utilizar a propriedade Pixels dessa classe para criar uma imagem conforme o formato que deseja. Por exemplo:
var writeableBitmap = new WriteableBitmap(seuGrid, null);
O maior problema é que não existem classes no Silverlight para realizarmos a gravação da imagem em um formato conhecido tal como fazemos com o WPF (essa é a funcionalidade #1 do meu wishlist para o SL5). Felizmente existem alguns códigos open-source bem interessantes que podem lhe ajudar, tal como os dois abaixo:
JPEG - fjcore
http://code.google.com/p/fjcore/PNG - Dynamic Image Generation in Silverlight
http://blogs.msdn.com/b/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspxSe não desejar incluir todo esse código em sua aplicação Silverlight é possível ainda criar um serviço que receba o array de bytes e transforma o mesmo no formato desejado no servidor (será que vale a pena?).
Obs: Já utilizei o fjcore e funciona bem.
Espero ter ajudado.
Ari C. Raimundo
MCAD, MCTS
http://araimundo.blogspot.com- Marcado como Resposta VinTem terça-feira, 24 de agosto de 2010 18:57
terça-feira, 24 de agosto de 2010 04:33
Todas as Respostas
-
Thiago,
Com Silverlight nunca tentei, experimentar fazer assim na sua aplicação...
http://www.geekpedia.com/tutorial181_Capturing-screenshots-using-Csharp.html
http://www.forumweb.com.br/artigo/214/csharp/tirar-print-screen-da-tela-com-c
Abraço,
Ricardo Alves
www.ricardoalves.me
Se for útil, por favor marque ;)terça-feira, 24 de agosto de 2010 01:04 -
VinTem,
É possível criar uma instância da classe WriteableBitmap cujo construtor solicita um UIElement e com isso utilizar a propriedade Pixels dessa classe para criar uma imagem conforme o formato que deseja. Por exemplo:
var writeableBitmap = new WriteableBitmap(seuGrid, null);
O maior problema é que não existem classes no Silverlight para realizarmos a gravação da imagem em um formato conhecido tal como fazemos com o WPF (essa é a funcionalidade #1 do meu wishlist para o SL5). Felizmente existem alguns códigos open-source bem interessantes que podem lhe ajudar, tal como os dois abaixo:
JPEG - fjcore
http://code.google.com/p/fjcore/PNG - Dynamic Image Generation in Silverlight
http://blogs.msdn.com/b/jstegman/archive/2008/04/21/dynamic-image-generation-in-silverlight.aspxSe não desejar incluir todo esse código em sua aplicação Silverlight é possível ainda criar um serviço que receba o array de bytes e transforma o mesmo no formato desejado no servidor (será que vale a pena?).
Obs: Já utilizei o fjcore e funciona bem.
Espero ter ajudado.
Ari C. Raimundo
MCAD, MCTS
http://araimundo.blogspot.com- Marcado como Resposta VinTem terça-feira, 24 de agosto de 2010 18:57
terça-feira, 24 de agosto de 2010 04:33 -
Valeu Ari, vou fazer um teste com o fjcore.terça-feira, 24 de agosto de 2010 12:00
-
Funcionou Ari,
era exatamente isso que eu precisava.
Obrigado!
terça-feira, 24 de agosto de 2010 18:57