none
Como colocar uma imagem dentro da outra em C#? RRS feed

  • Pergunta

  • Eu tenho uma capa de uma foto para colocar informações, e tenho um espaço para colocar a imagem do usuário, eu queria saber como coloco a imagem do usuário dentro da capa.

    Obrigado a quem ajudar.

    segunda-feira, 23 de julho de 2018 00:05

Respostas

  • Aqui uso uma função para juntar uma ou mais imagens. 

    Espero que ela te ajude.

    //esta função pode juntar várias imagen
    public static System.Drawing.Bitmap CombineBitmap(string[] files)
    {
        //leia todas as imagens
        List<System.Drawing.Bitmap> images = new List<System.Drawing.Bitmap>();
        System.Drawing.Bitmap finalImage = null;

        try
        {
            int width = 0;
            int height = 0;

            foreach (string image in files)
            {
                //criar um bitmap do arquivo e adicioná-lo à lista
                System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(image);

                //atualizar o tamanho do bitmap final
                width += bitmap.Width;
                height = bitmap.Height > height ? bitmap.Height : height;

                images.Add(bitmap);
            }

            //cria um bitmap para manter a imagem combinada
            finalImage = new System.Drawing.Bitmap(width, height);

            //obter um objeto gráfico da imagem para que possamos desenhar nele
            using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(finalImage))
            {
                //definir cor de fundo
                g.Clear(System.Drawing.Color.Black);

                //passar por cada imagem e desenhar na imagem final
                int offset = 0;
                foreach (System.Drawing.Bitmap image in images)
                {
                    g.DrawImage(image,
                      new System.Drawing.Rectangle(offset, 0, image.Width, image.Height));
                    offset += image.Width;
                }
            }

            return finalImage;
        }
        catch (Exception ex)
        {
            if (finalImage != null)
                finalImage.Dispose();

            throw ex;
        }
        finally
        {
            //limpar memoria se quiser pode chamar o garbage aqui também
            foreach (System.Drawing.Bitmap image in images)
            {
                image.Dispose();
            }
        }
    }


    segunda-feira, 23 de julho de 2018 17:53
  • Boa tarde,

    Por falta de retorno essa thread está encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 3 de agosto de 2018 19:07
    Moderador

Todas as Respostas

  • Aqui uso uma função para juntar uma ou mais imagens. 

    Espero que ela te ajude.

    //esta função pode juntar várias imagen
    public static System.Drawing.Bitmap CombineBitmap(string[] files)
    {
        //leia todas as imagens
        List<System.Drawing.Bitmap> images = new List<System.Drawing.Bitmap>();
        System.Drawing.Bitmap finalImage = null;

        try
        {
            int width = 0;
            int height = 0;

            foreach (string image in files)
            {
                //criar um bitmap do arquivo e adicioná-lo à lista
                System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(image);

                //atualizar o tamanho do bitmap final
                width += bitmap.Width;
                height = bitmap.Height > height ? bitmap.Height : height;

                images.Add(bitmap);
            }

            //cria um bitmap para manter a imagem combinada
            finalImage = new System.Drawing.Bitmap(width, height);

            //obter um objeto gráfico da imagem para que possamos desenhar nele
            using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(finalImage))
            {
                //definir cor de fundo
                g.Clear(System.Drawing.Color.Black);

                //passar por cada imagem e desenhar na imagem final
                int offset = 0;
                foreach (System.Drawing.Bitmap image in images)
                {
                    g.DrawImage(image,
                      new System.Drawing.Rectangle(offset, 0, image.Width, image.Height));
                    offset += image.Width;
                }
            }

            return finalImage;
        }
        catch (Exception ex)
        {
            if (finalImage != null)
                finalImage.Dispose();

            throw ex;
        }
        finally
        {
            //limpar memoria se quiser pode chamar o garbage aqui também
            foreach (System.Drawing.Bitmap image in images)
            {
                image.Dispose();
            }
        }
    }


    segunda-feira, 23 de julho de 2018 17:53
  • Boa tarde,

    Por falta de retorno essa thread está encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 3 de agosto de 2018 19:07
    Moderador