none
Erro em armazenar imagem. RRS feed

  • Pergunta

  • Ola pessoal, estou novamente com problemas... Parece que eles nunca acabam. Bem vamos ao que interessa :).

    Estava querendo saber como se faz pra armazenar um imagem sem um banco de dados e encontrei esse exemplo nesse link: http://www.macoratti.net/08/08/net_gibd.htm 

    O meu código esta exatamente igual ao do link, porém ele da um erro: Value of type 1-dimensional array of byte cannot be converted to byte. A aplicação que baixei do site funciona normal, só que a minha esta dando esse erro.

    A aplicação acho que foi desenvolvida no Visual Basic 2008 e eu uso o 2010, não sei se tem alguma coisa a ver com compatibilidade porque quando eu abri a aplicação ele no vb ele entrou com o wizard de conversão.

    Esse é o código:

    Private Sub btnDefineImagem_Click(sender As Object, e As System.EventArgs) Handles btnDefineImagem.Click

            flagForm = True

            Dim caminhoArquivoImagem As String = String.Empty

            Dim OpenFileDialog1 As New OpenFileDialog
            OpenFileDialog1.Title = "Abrir Arquivo Imagens"
            OpenFileDialog1.Filter = "JPEG Documents (*.jpg)|*.jpg|Gif Files|*.gif"

            If OpenFileDialog1.ShowDialog = System.Windows.Forms.DialogResult.Cancel Then
                Return
            End If

            caminhoArquivoImagem = OpenFileDialog1.FileName

            If String.IsNullOrEmpty(caminhoArquivoImagem) Then
                Return
            End If

            If File.Exists(caminhoArquivoImagem) = False Then
                Return
            End If

            Try
                ' converte imagem para um byte array e salva
                Dim fsImagem As FileStream = Nothing
                fsImagem = File.Open(caminhoArquivoImagem, FileMode.Open, FileAccess.Read)
                Dim bArrImage(fsImagem.Length) As Byte
                fsImagem.Read(bArrImage, 0, Convert.ToInt32(fsImagem.Length))
                fsImagem.Close()

                '' carroAtual representa um carro definido na classe Carros
                '' Imagem e NomeImagem são membros de Carros
                carrosAtual.Imagem = bArrImage --> o erro se da nessa linha
                carrosAtual.NomeImagem = caminhoArquivoImagem

                Dim ms As New MemoryStream(bArrImage)
                picFoto.Image = Image.FromStream(ms)
                ms.Dispose()

            Catch ex As Exception

                MessageBox.Show(ex.Message, "Erro ao armazenar imagem")

            End Try

        End Sub
    Desde ja obrigado.

    Programdor .Net iniciante.

    segunda-feira, 1 de outubro de 2012 22:38

Respostas

  • Pessoal a resolvi o problema.
    Na linha q da o problema é só eu colocar 0 entre parentes

    Incorreto:
    carrosAtual.Imagem = bArrImage


    Correta:
    carrosAtual.Imagem = bArrImage(0)

    Programdor .Net iniciante.

    • Marcado como Resposta Marcos Aurelio C terça-feira, 2 de outubro de 2012 00:04
    terça-feira, 2 de outubro de 2012 00:04