Usuário com melhor resposta
Processar Arquivos em memória

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.
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".
- Sugerido como Resposta SammuelMiranda quarta-feira, 26 de outubro de 2016 10:37
- Marcado como Resposta Robson William SilvaModerator quinta-feira, 27 de outubro de 2016 12:04
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".
- Sugerido como Resposta SammuelMiranda quarta-feira, 26 de outubro de 2016 10:37
- Marcado como Resposta Robson William SilvaModerator quinta-feira, 27 de outubro de 2016 12:04
-