Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

PhoEniXFirE

Operações aritmétricas com Imagens

Recommended Posts

Boa pessoal

 

Estou preparando um trabalho multimídia com operações aritmétricas com Imagens, estou postanfo aqui pra saber se vcs tem alguma dica sobre o assunto, o que estou precisando fazer:

 

Adicionar imagem em outra (E também com marca dagua)

Subtrair imagem da outra

 

Realmente parece ser simples, mas vou fazer isso passando por todos os bits da imagem.

 

Alguém já fez algo deste tipo?

 

Grato pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não seria trabalhar com opacity ???

 

Na verdade nao programo em C#, nao conheço este método, você tem mais alguma informações sobre o mesmo?

 

Consegui fazer o Adicionar imagem:

        private void btnAdicionar_Click(object sender, EventArgs e)
        {
            bmpImg11 = new Bitmap(imagem1);
            bmpImg22 = new Bitmap(imagem2);
            
            int largura;
            if (bmpImg11.Width < bmpImg22.Width)
                largura = bmpImg11.Width;
            else
                largura = bmpImg22.Width;

            int altura;
            if (bmpImg11.Height<bmpImg22.Height)
                altura= bmpImg11.Height;
            else
                altura = bmpImg22.Height;
            
            
            Bitmap bmpImg1 = new Bitmap(bmpImg11, largura, altura);
            Bitmap bmpImg2 = new Bitmap(bmpImg22, largura, altura);

            bmp = new Bitmap(bmpImg1.Width, bmpImg1.Height);
            int r, g, b;

            
            for (int x = 0; x < bmpImg1.Width; x++)
            {
                for (int y = 0; y < bmpImg1.Height; y++)
                {
                    r = (int)(bmpImg1.GetPixel(x, y).R + bmpImg2.GetPixel(x, y).R);
                    if (r > 255)                            
                    {
                        r = 255;
                    }
                    g = (int)(bmpImg1.GetPixel(x, y).G + bmpImg2.GetPixel(x, y).G);
                    if (g > 255)                                               
                    {
                        g = 255;
                    }
                    b = (int)(bmpImg1.GetPixel(x, y).B + bmpImg2.GetPixel(x, y).B); 
                    if (b > 255)                                                 
                    {
                        b = 255;
                    }
                    bmp.SetPixel(x, y, Color.FromArgb(r, g, B)); 
                }
            }
            desenha(bmp);    
        }

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.