Usuário com melhor resposta
Carregar imagem no Picturebox, apartir do Array de Bytes.

Pergunta
-
seguinte
No meu bd tenho o hexadecimal da foto, mas ao recupera-lo não consigo montar a imagem para exibir no picturebox.
O problema é q meu codigo levanta uma exceção do tipo outofmemory, com a mensagem "Memória insuficiente."
SqlConnection Conexao = Form1.getConexao();
String querySeleciona = "SELECT foto FROM Alunos WHERE id = '" + ID + "'";
SqlCommand Commando12 = new SqlCommand(querySeleciona, Conexao);
byte[] array = (byte[])Commando12.ExecuteScalar();
string strfn = Convert.ToString(DateTime.Now.ToFileTime());
FileStream fs = new FileStream(strfn, FileMode.CreateNew, FileAccess.Write);
fs.Write(array, 0, array.Length);
fs.Flush();
fs.Close();
pictureBoxFoto.Image = Image.FromFile(strfn); // Neste ponto ocorre a exceção..
Alguem pode dar um help ai de porq esta levantando exceção neste ponto?- Tipo Alterado AndreAlvesLimaModerator terça-feira, 16 de março de 2010 16:51
Respostas
-
Prezado,
Veja se alguma coisa deste link te ajuda:
http://stackoverflow.com/questions/676072/image-fromstream-method-returns-invalid-argument-exception
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima- Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 25 de junho de 2010 16:14
- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 2 de julho de 2010 00:21
Todas as Respostas
-
A sua imagem pode ser muito grande e esta faltando memoria.
Tente abrir a imagem deste jeito, consome menos memoria e eh emais rapido.
System.IO.Stream stream = System.IO.File.Open("", System.IO.FileMode.Open, System.IO.FileAccess.Read);
Image imagem = Image.FromStream(stream, false, false);
Se sua pergunta foi respondida por favor marque a resposta como certa. -
A sua imagem pode ser muito grande e esta faltando memoria.
Olá, fiz como você disse, ficou assim:
Tente abrir a imagem deste jeito, consome menos memoria e eh emais rapido.
System.IO.Stream stream = System.IO.File.Open("", System.IO.FileMode.Open, System.IO.FileAccess.Read);
Image imagem = Image.FromStream(stream, false, false);
Se sua pergunta foi respondida por favor marque a resposta como certa.
O problema é que o método FromStream não está aceitando os parametros que passei, apesar de parecerem estar corretos. Veja o ponto comentado
byte[] array = (byte[])Commando12.ExecuteScalar();
string strfn = Convert.ToString(DateTime.Now.ToFileTime());
FileStream fs = new FileStream(strfn, FileMode.CreateNew, FileAccess.Write);
fs.Write(array, 0, array.Length);
fs.Flush();
fs.Close();
System.IO.Stream stream = System.IO.File.Open(strfn, System.IO.FileMode.Open, System.IO.FileAccess.Read);
Image imagem = Image.FromStream(stream, false, false); // Neste ponto ocorre agora uma execção do tipo argument exception.
pictureBoxFoto.Image = imagem;
Já tentei com todas as combinaçoes de booleano possiveis mas não funcionou. O que pode ser neste caso?
Abraço!! -
Prezado,
Alguma novidade quanto a essa sua dúvida?
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima -
Quando ocorre exceções do tipo argument exception é por q a imagem pode estar corrompida.
Tente abrir uma imagem normal apartir deste método e vai verificar que vai abrir normalmente.
Se sua pergunta foi respondida por favor marque a resposta como certa.- Sugerido como Resposta AndreAlvesLimaModerator quarta-feira, 17 de março de 2010 11:50
-
Quando ocorre exceções do tipo argument exception é por q a imagem pode estar corrompida.
Olá,
Tente abrir uma imagem normal apartir deste método e vai verificar que vai abrir normalmente.
Se sua pergunta foi respondida por favor marque a resposta como certa.
Mesmo assim não funciona! Já tentei todas as formas possiveis, mas nao deu.
A exceção argumentexception continua sendo levantada. Tentei varias imagens..
Abraço!! -
Prezado,
Alguma novidade quanto a essa sua dúvida?
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima
Não! O código ainda está levantando exceção ao atribuir a imagem ao picturebox, como postei no códiigo acima..
Abraço!! -
Prezado,
Sei que já faz bastante tempo, mas, conseguiu resolver sua dúvida?
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima -
Prezado,
Veja se alguma coisa deste link te ajuda:
http://stackoverflow.com/questions/676072/image-fromstream-method-returns-invalid-argument-exception
André Alves de Lima
Visite o meu site: http://andrealveslima.spaces.live.com
Me siga no Twitter: @andrealveslima- Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 25 de junho de 2010 16:14
- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 2 de julho de 2010 00:21