none
Cadastro de Imagens C# - Windows Forms RRS feed

  • Pergunta

  • Olá a todos,

    A minha dúvida é a seguinte:

    tenho um form para cadastro de 6 imagens simultâneas, até aqui tudo bem.

    Porem tenho um form de alteração destas imagens depois de cadastradas, caso o usuario queira adicionar mais alguma ou trocar a q ele colocou.

    Nao estou conseguindo fazer com que quando o usuario ao entrar no form de alteração de imagens, carregar as imagens disponiveis daquele cliente nos picturebox e assim ele conseguir alterar elas.

    Preciso carregar as imagens de acordo com o ID do cliente especificado..

    Obrigado a todos.

    sexta-feira, 19 de julho de 2013 03:05

Respostas

  • Rodolfo me desculpe rapaz estava desenvolvendo aqui e a acabei por ficar ocupado, então vamos lá, você precisa carregar as fotos referente ao usuário ou produto, então é simples quando você passar o codigo do cliente para o outro formulário

       int codCliente = 123;

                // caminho onde será salvo a imagem
                string imagem = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + codCliente + "_1"+".jpg";


                   if (File.Exists(imagem))
                   {
                      Bitmap bit = new Bitmap(imagem);

                       pictureBox1.Image = bit;
                   }

    Esta ai Amigo, se precisar de Mais alguma coisa, só falar. Se a Resposta foi Útil, por favor, qualificar, Obrigado.


    Paulo Caleffi

    sexta-feira, 19 de julho de 2013 19:30
  • Paulo, eu fiz esse código para copiar a imagem para uma pasta e renomear ela, está funcionando perfeitamente.

    Porem não sei como pegar somente o novo nome da imagem e salvar no BD.

    Segue o Código:

                        

     private void btnP1_Click(object sender, EventArgs e)
            {
                if (txtMatrPaciente.Text == "")
                {
                    MessageBox.Show("Entre com a matrícula do paciente.", "Advertência", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    txtMatrPaciente.Focus();
                }
                else
                {

                    int segundos = DateTime.Now.Second;
                    int dia = DateTime.Now.Day;

                    if (openFileDialog1.ShowDialog() == DialogResult.OK)
                    {
                        this.pictureBox1.ImageLocation = openFileDialog1.FileName;

                        // caminho onde será salvo a imagem
                        String Imagem = Application.StartupPath + @"\imagens\" + txtMatrPaciente.Text + "_" + dia.ToString() + segundos.ToString() + Path.GetExtension(openFileDialog1.FileName);

                        if (File.Exists(Imagem))
                        {
                            MessageBox.Show("Imagem já existente, Por Favor Tente Novamente!");
                        }
                        else
                        {
                        // aqui ele pega a sua imagem e copia
                            File.Copy(openFileDialog1.FileName, Imagem);

                        }
                    }

                }
            }

    Obrigado pela Ajuda.

    • Marcado como Resposta Rodolfocds sábado, 20 de julho de 2013 00:25
    sexta-feira, 19 de julho de 2013 21:44

Todas as Respostas

  •      Olá...

    segue um exempo.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    using System.Data.SqlClient;
    namespace Camera
    {
        public partial class Alterando : Form
        {

            private String strconn;
            private SqlConnection conn;

    public Alterando()

            {
                InitializeComponent();
                // strconn = @"Server =.\SQLEXPRESS;Initial Catalog=banco;User ID=sa;Password=**** ";
                //conn = new SqlConnection(strconn);


            }

               //item abaixo serve para recuperar a imagem do banco de dados
                SqlConnection conn = new SqlConnection(strconn);
                SqlCommand comand = new SqlCommand("Select foto from Membros where id ="+label20.Text,conn);//desde que o id seja igual
                conn.Open();
                SqlDataReader reader = comand.ExecuteReader(); // isso traz o resultado do meu select
                Image imagem = null;
                if (reader.Read())
                {
                    byte[]foto = (byte[]) reader["foto"];
                    MemoryStream ms = new MemoryStream(foto);
                    imagem = Image.FromStream(ms);

                }

                pictureBox1.Image = imagem; // aqui vc coloca a imagem armazenada do banco no picturebox
                conn.Close();
               

                        Se for útil não esqueça de marcar como resposta

    Grande abraço !


    Jimi Anderson

    sexta-feira, 19 de julho de 2013 03:29
  • Obrigado pela resposta Jimi,

    mas como que eu faço para carregar 6 imagens do BD em 6 picturebox ao mesmo tempo?

    obrigado pela atenção!

    Grande Abraço!

    sexta-feira, 19 de julho de 2013 04:18
  • Bom dia Rodolfo, Desenvolvi um sistema para escanear imagem e também documentos, aconselho você armazenar essas imagens em pastas, isso deixa o carregamento bem mais rápido.

    Paulo Caleffi

    sexta-feira, 19 de julho de 2013 11:34
  • Bom Dia Paulo,

    obrigado por responder.

    Você teria como me mostrar como você fez? Eu preciso copiar a imagem pra pasta do sistema, salvar o nome dela no BD e mostrar no picturebox de acordo com o id selecionado.

    sexta-feira, 19 de julho de 2013 13:02
  • Ok, então vamos por partes, quando você armazena um cliente no banco você tem um Id deste cliente  ou produto.

    vocÊ precisa gravar imagens que corresponde as este cliente ou produto, correto?, na hora de gravar você precisa carregar o picturebox com uma imagem correto?


    Paulo Caleffi

    sexta-feira, 19 de julho de 2013 13:16
  • então paulo, tenho um cadastro de clientes, e tenho um id dele, e tenho um outro form com 6 picturebox para o usuário cadastrar até 6 imagens para este cliente, pois estou fazendo um sistema de clinica médica onde os médicos precisam acessar o raio-x do paciente.

    e tenho outro form para atualização destas imagens, também com 6 picturebox, e neste form eu preciso carregar as imagens cadastradas deste cliente nos picturebox's para o usuário ver quais foram cadastradas e analisar qual delas ele vai alterar.

    Obrigado pela atenção Paulo.

    sexta-feira, 19 de julho de 2013 13:22
  • Perfeito, então vamos lá.

    Eu fiz dessa forma e funcionou muito bem, transfiro as imagens para 7 filiais que estão espalhadas na região

    1º ao Abrir o form onde irá cadastrar as imagens já deverá contar o código do cliente vindo de uma variável ou sobrecarga de método.

    você carrega as imagens no picture box, atraves de uma caixa de Dialog?


    Paulo Caleffi

    sexta-feira, 19 de julho de 2013 14:03
  • sim, eu tenho 2 textbox que ao carregar o form já carregão o id e o nome do cliente, e as imagens eu carrego pela caixa de dialog.
    sexta-feira, 19 de julho de 2013 14:37
  • blz então perfeito faça dessa forma 

               

        int codCliente = 123;

                // caminho onde será salvo a imagem
                string imagem = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + codCliente + "_1"+".jpg";


                // aqui ele pega a sua imagem que esta no picturebox, então substitua o caminho por "picturebox1.image"
                Bitmap imagemdopicturebox = new Bitmap(@"C:\\nn.JPG");

                pictureBox1.Image = imagemdopicturebox;

                pictureBox1.Image.Save(imagem);

    isso se você tiver um botão salvar para cada picturebox, é dessa forma que esta fazendo, digo um botão salvar para cada image?


    Paulo Caleffi

    sexta-feira, 19 de julho de 2013 15:07
  • perfeito Paulo,

    na verdade eu tenho um botão salvar para todos os picturebox's, como que ficaria desta forma? ou é melhor colocar um botão para cada picturebox?

    sexta-feira, 19 de julho de 2013 15:23
  • só mais uma duvida paulo, você me mostrou para cadastrar, mas como que eu faço para mostrar as imagens no outro form nos picturebox?
    sexta-feira, 19 de julho de 2013 16:46
  • Rodolfo me desculpe rapaz estava desenvolvendo aqui e a acabei por ficar ocupado, então vamos lá, você precisa carregar as fotos referente ao usuário ou produto, então é simples quando você passar o codigo do cliente para o outro formulário

       int codCliente = 123;

                // caminho onde será salvo a imagem
                string imagem = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + codCliente + "_1"+".jpg";


                   if (File.Exists(imagem))
                   {
                      Bitmap bit = new Bitmap(imagem);

                       pictureBox1.Image = bit;
                   }

    Esta ai Amigo, se precisar de Mais alguma coisa, só falar. Se a Resposta foi Útil, por favor, qualificar, Obrigado.


    Paulo Caleffi

    sexta-feira, 19 de julho de 2013 19:30
  • Paulo, muito obrigado pela atenção.

    só tenho mais um dúvida:

    Como que eu faço para pegar o nome da imagem e salvar no banco de dados?

    Desde já, agradeço a paciência e a ajuda.

    sexta-feira, 19 de julho de 2013 21:34
  • Paulo, eu fiz esse código para copiar a imagem para uma pasta e renomear ela, está funcionando perfeitamente.

    Porem não sei como pegar somente o novo nome da imagem e salvar no BD.

    Segue o Código:

                        

     private void btnP1_Click(object sender, EventArgs e)
            {
                if (txtMatrPaciente.Text == "")
                {
                    MessageBox.Show("Entre com a matrícula do paciente.", "Advertência", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    txtMatrPaciente.Focus();
                }
                else
                {

                    int segundos = DateTime.Now.Second;
                    int dia = DateTime.Now.Day;

                    if (openFileDialog1.ShowDialog() == DialogResult.OK)
                    {
                        this.pictureBox1.ImageLocation = openFileDialog1.FileName;

                        // caminho onde será salvo a imagem
                        String Imagem = Application.StartupPath + @"\imagens\" + txtMatrPaciente.Text + "_" + dia.ToString() + segundos.ToString() + Path.GetExtension(openFileDialog1.FileName);

                        if (File.Exists(Imagem))
                        {
                            MessageBox.Show("Imagem já existente, Por Favor Tente Novamente!");
                        }
                        else
                        {
                        // aqui ele pega a sua imagem e copia
                            File.Copy(openFileDialog1.FileName, Imagem);

                        }
                    }

                }
            }

    Obrigado pela Ajuda.

    • Marcado como Resposta Rodolfocds sábado, 20 de julho de 2013 00:25
    sexta-feira, 19 de julho de 2013 21:44
  • Legal, Rodolfo Parabéns, quando precisar de ajudar em suas duvidas, o pessoal do fórum é  muito bacana e também compartilhe conhecimento, isso fortalece a equipe, abraço meu amigo.

    Paulo Caleffi

    sábado, 20 de julho de 2013 10:10