estou tentando fazer um método para converter de byte[] para Image, mas quando chega numa determinada linha diz que o parametro é inválido.
quem puder me ajudar agradeço muito!
Depois do write, o ponteiro do seu Stream está no final do Stream. Assim, um novo write irá inserir dados após o último byte inserido. Para fazer a leitura, é necessário resetar esse ponteiro.
Para isso, use o comando:
V
ViniGodoy
Só um detalhe. Existe um jeito mais simples de fazer isso. O MemoryStream tem um construtor que aceita um Byte Array como parâmetro. E após a construção o ponteiro já estará na primeira posição do Stream:
O código fica resumido a isso:
public Image ByteArrayToImage(byte[] img)
{
return Image.FromStream(new MemoryStream(img));
}
O processo inverso eu faria na forma de um extension method.
MemoryStream ms = new MemoryStream(img, 0, img.Length);
ms.Write(img, 0, img.Length);
ms.Seek(0, SeekOrigin.Begin);
Image imgImagen = Image.FromStream(ms, true); – Mas quando chega aqui aparece o seguinte erro: Parâmetro inválido.