none
Salvar Arquivo jpg em processamento no servidor (bll) RRS feed

  • Pergunta

  • Prezados

    Em uma das rotinas de nossa aplicação SILVERLIGHT efetuamos captura de imagem pela WEB CAM.
    Utilizamos no lado do cliente o WritableBitmap e geramos o byte[]; passamos tudo em uma instância de uma classe para o WCF e ele faz as operações na BLL, no caso grava a informação no banco inclusive a imagem. Até ai tudo bem, consigo recuperar a imagem fazendo o processo inverso e tudo funciona.

    Agora, identificamos a necessidade de gravar esta imagem em uma pasta no servidor. Entendo que como tenho o byte[] o mais coerente é eu na minha bll fazer tal processamento gravando o arquivo na pasta do próprio servidor.

    Fiz vários testes de várias formas, e ocorre um erro "Parâmetro Inválido" qdo converto Image.FromStrem passando o MemoryStream.

    Alguém tem alguma ideia?
    Segue os códigos:

    WriteableBitmap bmpImagemPessoa = new WriteableBitmap(tmpImage, null);
    
    //Faz a conversão e atribui a instância
    objPessoaInternaNEW.Imagem = fotoPessoaInternaImage.Source != null ? bmpImagemPessoa.ToByteArray() : null;  
    

    Depois isso ele chama o assync passando o objeto cai na bll...

    Aqui a classe que faz a conversão:

    public static byte[] ToByteArray(this WriteableBitmap bmp)
            {
                int[] p = bmp.Pixels;
                int len = p.Length * 4;
                byte[] result = new byte[len];          // ARGB
                Buffer.BlockCopy(p, 0, result, 0, len);
                return result;                          
            }
    Agora na BLL ou seja em um processo de servidor, como salvar esse byte[] em jpg em uma pasta no servidor?

    Grato


    Eduardo Agostinho Analista Programador - C# Developer

    quinta-feira, 3 de abril de 2014 21:01

Todas as Respostas

  • Segue um exemplo


    byte[] bitmap = GetYourImage();

    using(Image image = Image.FromStream(new MemoryStream(bitmap)))
    {
        image.Save("output.jpg", ImageFormat.Jpeg);  // Or Png
    }


    Junior Santana

    quarta-feira, 4 de junho de 2014 21:18