none
Processar Arquivos em memória RRS feed

  • Pergunta

  • Bom dia,

    Galera, é possível processar um arquivo do tipo .jpg ou .bmp  na memoria do computador ?

    Deixa eu explicar mais claramente:

    Tenho uma rotina que utiliza OCR para reconhecimento de caracteres em imagens, entretanto, é necessário fazer o download desta imagem em um determinado diretório da estação e logo apos, capturar a imagem para processamento.

    Porem me deparei numa situação em que não poderei salvar NADA de informações (no caso a imagem) em diretórios, ou seja, serei obrigado a processar a imagem na "memoria".

    Sei que é possível realizar esta façanha, porem desconheço a biblioteca para tal proeza.

    Alguém pode dar alguma dica para esta demanda? Outro detalhe, preciso que esta rotina funcione tanto para Windows Forms quando para ASP.NET.

    terça-feira, 25 de outubro de 2016 21:05

Respostas

  • Nelson,

    Você pode utilizar uma das classes que realizam request HTTP e carregar o resultado para uma MemoryStream.

    var image = new BitmapImage(new Uri(article.ImageURL));               
    image.ImageOpened += (s, e) =>
        {
            image.CreateOptions = BitmapCreateOptions.None;
            WriteableBitmap wb = new WriteableBitmap(image);
            MemoryStream ms = new MemoryStream();
            wb.SaveJpeg(ms, image.PixelWidth, image.PixelHeight, 0, 100);
            byte[] imageBytes = ms.ToArray();
        };


    Referência: http://stackoverflow.com/a/17876800/1184708


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    quarta-feira, 26 de outubro de 2016 09:41

Todas as Respostas

  • Nelson,

    Você pode utilizar uma das classes que realizam request HTTP e carregar o resultado para uma MemoryStream.

    var image = new BitmapImage(new Uri(article.ImageURL));               
    image.ImageOpened += (s, e) =>
        {
            image.CreateOptions = BitmapCreateOptions.None;
            WriteableBitmap wb = new WriteableBitmap(image);
            MemoryStream ms = new MemoryStream();
            wb.SaveJpeg(ms, image.PixelWidth, image.PixelHeight, 0, 100);
            byte[] imageBytes = ms.ToArray();
        };


    Referência: http://stackoverflow.com/a/17876800/1184708


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    quarta-feira, 26 de outubro de 2016 09:41
  • Ola, boa tarde

    Vc poderia esta usando um Handler para escrever os bytes.

    Espero ter ajudado.

    quinta-feira, 27 de outubro de 2016 16:08